Commit 722b7ce9 authored by Sebastian Pretscher's avatar Sebastian Pretscher

Commit some hightliting, and a special references project

parent 6fa2b8b7
<project name="Compiler" default ="compile" basedir=".">
<property name="cup" location="src/cup" />
<property name="jflex" location="src/jflex" />
<property name="java" location="src" />
<property name="classes" location="bin/cls" />
<property name="result" location="bin/jar" />
<property name="lib" location="lib" />
<property name="tools" location="tools" />
<taskdef name="jflex" classname="JFlex.anttask.JFlexTask" classpath="${tools}/JFlex.jar" />
<taskdef name="cup" classname="java_cup.anttask.CUPTask" classpath="${tools}/java-cup-11b.jar" />
<target name="generate">
<jflex file="${jflex}/Lexer.jflex" destdir="${java}" />
<cup srcfile="${cup}/Parser.cup" destdir="${java}"
<property name="cup" location="src/cup" />
<property name="jflex" location="src/jflex" />
<property name="java" location="src" />
<property name="classes" location="bin/cls" />
<property name="result" location="bin/jar" />
<property name="lib" location="lib" />
<property name="tools" location="tools" />
<taskdef name="jflex" classname="JFlex.anttask.JFlexTask" classpath="${tools}/JFlex.jar" />
<taskdef name="cup" classname="java_cup.anttask.CUPTask" classpath="${tools}/java-cup-11b.jar" />
<target name="generate">
<jflex file="${jflex}/Lexer.jflex" destdir="${java}" />
<cup srcfile="${cup}/Parser.cup" destdir="${java}"
parser="Parser" interface="true" locations="false" />
</target>
<path id="libraries"> <files includes="${lib}/java-cup-11b-runtime.jar" /> </path>
<target name="compile" depends="generate">
<mkdir dir="${classes}"/>
<mkdir dir="${result}"/>
<javac srcdir="${java}" destdir="${classes}">
<classpath refid="libraries" />
</javac>
<jar destfile="${result}/CupParser.jar" basedir="${classes}">
<manifest>
</manifest>
</jar>
</target>
<target name="clean">
<delete file="${java}/Parser.java" />
<delete file="${java}/sym.java" />
<delete file="${java}/Scanner.java" />
<delete dir="${classes}" />
<delete dir="${result}" />
</target>
</target>
<path id="libraries">
<files includes="${lib}/java-cup-11b-runtime.jar" />
</path>
<target name="compile" depends="generate">
<mkdir dir="${classes}"/>
<mkdir dir="${result}"/>
<javac srcdir="${java}" destdir="${classes}">
<classpath refid="libraries" />
</javac>
<jar destfile="${result}/CupParser.jar" basedir="${classes}">
<manifest>
</manifest>
</jar>
<echo>Deploy in </echo>
<copy todir="../CupReferencedLibraries/" overwrite="true">
<fileset dir="${result}/" includes="*.jar"/>
</copy>
</target>
<target name="clean">
<delete file="${java}/Parser.java" />
<delete file="${java}/sym.java" />
<delete file="${java}/Scanner.java" />
<delete dir="${classes}" />
<delete dir="${result}" />
</target>
</project>
\ No newline at end of file
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -11,7 +11,9 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.core.resources,
org.eclipse.ui.editors,
org.eclipse.ui.ide,
CupReferencedLibraries;bundle-version="1.0.0"
CupReferencedLibraries;bundle-version="1.0.0",
org.eclipse.zest.core;bundle-version="1.5.100",
org.eclipse.zest.layouts;bundle-version="1.1.100"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
......@@ -6,10 +6,11 @@ import org.eclipse.jface.text.IDocumentPartitioner;
import org.eclipse.jface.text.rules.FastPartitioner;
public class CupDocumentSetupParticipant implements IDocumentSetupParticipant {
@Override
public void setup(IDocument document) {
IDocumentPartitioner partitioner = new FastPartitioner(new CupPartionScanner(), CupPartionScanner.PARTITION_TYPES);
document.setDocumentPartitioner(partitioner);
partitioner.connect(document);
}
......
package de.tum.in.www2.cupplugin.editors;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.zest.core.widgets.Graph;
import org.eclipse.zest.core.widgets.GraphConnection;
import org.eclipse.zest.core.widgets.GraphNode;
import org.eclipse.zest.layouts.LayoutStyles;
import org.eclipse.zest.layouts.algorithms.SpringLayoutAlgorithm;
import de.tum.in.www2.cupplugin.model.CupGraphModelObserver;
import de.tum.in.www2.cupplugin.model.Model;
public class CupGraphView implements CupGraphModelObserver {
private Model parseModel;
private Composite graphComposite;
public CupGraphView(Composite parent) {
this.parseModel = Model.getInstance();
this.parseModel.registerModelObserver(this);
this.graphComposite = parent;
}
public void drawGraph() {
//this.graphComposite.
Graph g = new Graph(this.graphComposite, SWT.NONE);
GraphNode hello = new GraphNode(g, SWT.NONE, "Hello");
GraphNode world = new GraphNode(g, SWT.NONE, "World");
new GraphConnection(g, SWT.NONE, hello, world);
g.setLayoutAlgorithm(new SpringLayoutAlgorithm(LayoutStyles.NO_LAYOUT_NODE_RESIZING), true);
}
@Override
public void modelChanged(Model model) {
// TODO Auto-generated method stub
}
}
......@@ -4,10 +4,14 @@ import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.rules.EndOfLineRule;
import org.eclipse.jface.text.rules.ICharacterScanner;
import org.eclipse.jface.text.rules.IPredicateRule;
import org.eclipse.jface.text.rules.IRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.IWordDetector;
import org.eclipse.jface.text.rules.MultiLineRule;
import org.eclipse.jface.text.rules.WordRule;
import org.eclipse.jface.text.rules.RuleBasedPartitionScanner;
import org.eclipse.jface.text.rules.Token;
......@@ -16,20 +20,79 @@ public class CupPartionScanner extends RuleBasedPartitionScanner {
//public final static String CUP_CODE = "__cup_code";
public final static String JAVA_CODE = "__java_code";
public final static String MULTILINE_COMMENT = "__multiline_comment";
public final static String SINGLE_COMMENT = "__single_comment";
public final static String[] PARTITION_TYPES = new String[] {
IDocument.DEFAULT_CONTENT_TYPE, CupPartionScanner.JAVA_CODE
IDocument.DEFAULT_CONTENT_TYPE, CupPartionScanner.JAVA_CODE, CupPartionScanner.MULTILINE_COMMENT, CupPartionScanner.SINGLE_COMMENT
};
public CupPartionScanner() {
super();
//IToken cupCode = new Token(CupPartionScanner.CUP_CODE);
IToken javaCode = new Token(CupPartionScanner.JAVA_CODE);
IToken mLComment = new Token(CupPartionScanner.MULTILINE_COMMENT);
IToken sLComment = new Token(CupPartionScanner.SINGLE_COMMENT);
List<IRule> rules = new ArrayList<IRule>();
// Java Action Block
rules.add(new MultiLineRule("{:", ":}", javaCode));
// MultiLineComment
rules.add(new MultiLineRule("/*", "*/", mLComment, (char) 0, true));
// SingleLineComment
rules.add(new EndOfLineRule("//", sLComment));
// Add special case word rule.
rules.add(new WordPredicateRule(sLComment));
IPredicateRule[] result = new IPredicateRule[rules.size()];
rules.toArray(result);
setPredicateRules(result);
}
static class EmptyCommentDetector implements IWordDetector {
/* (non-Javadoc)
* Method declared on IWordDetector
*/
public boolean isWordStart(char c) {
return (c == '/');
}
/* (non-Javadoc)
* Method declared on IWordDetector
*/
public boolean isWordPart(char c) {
return (c == '*' || c == '/');
}
};
/**
*
*/
static class WordPredicateRule extends WordRule implements IPredicateRule {
private IToken fSuccessToken;
public WordPredicateRule(IToken successToken) {
super(new EmptyCommentDetector());
fSuccessToken= successToken;
addWord("/**/", fSuccessToken); //$NON-NLS-1$
}
/*
* @see org.eclipse.jface.text.rules.IPredicateRule#getSuccessToken()
*/
public IToken getSuccessToken() {
return fSuccessToken;
}
/*
* @see org.eclipse.jface.text.rules.IPredicateRule#evaluate(ICharacterScanner, boolean)
*/
@Override
public IToken evaluate(ICharacterScanner scanner, boolean resume) {
return super.evaluate(scanner);
}
};
}
......@@ -4,21 +4,22 @@ import java.io.IOException;
import java.io.StringReader;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.inject.Singleton;
import java_cup.Lexer;
import java_cup.sym;
import java_cup.runtime.ComplexSymbolFactory;
import java_cup.runtime.ComplexSymbolFactory.ComplexSymbol;
import java_cup.runtime.Symbol;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.TextAttribute;
import org.eclipse.jface.text.TextSelection;
import org.eclipse.jface.text.presentation.PresentationReconciler;
import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.ITokenScanner;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.rules.Token;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
......@@ -33,9 +34,29 @@ public class CupSourceViewerConfiguration extends SourceViewerConfiguration {
public PresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
PresentationReconciler pr = new PresentationReconciler();
CupDamagerRepairer defaultRepairer = new CupDamagerRepairer(new TokenScanner());
pr.setRepairer(defaultRepairer, IDocument.DEFAULT_CONTENT_TYPE);
pr.setDamager(defaultRepairer, IDocument.DEFAULT_CONTENT_TYPE);
CupDamagerRepairer cupDamagerRepairer = new CupDamagerRepairer(new TokenScanner());
pr.setRepairer(cupDamagerRepairer, IDocument.DEFAULT_CONTENT_TYPE);
pr.setDamager(cupDamagerRepairer, IDocument.DEFAULT_CONTENT_TYPE);
DefaultDamagerRepairer mLCommentDamagerRepairer = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(CupTextEditor.COMMENT)));
pr.setRepairer(mLCommentDamagerRepairer, CupPartionScanner.MULTILINE_COMMENT);
pr.setDamager(mLCommentDamagerRepairer, CupPartionScanner.MULTILINE_COMMENT);
DefaultDamagerRepairer sLCommentDamagerRepairer = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(CupTextEditor.COMMENT)));
pr.setRepairer(sLCommentDamagerRepairer, CupPartionScanner.SINGLE_COMMENT);
pr.setDamager(sLCommentDamagerRepairer, CupPartionScanner.SINGLE_COMMENT);
//DefaultDamagerRepairer javaCommentDamagerRepairer = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(CupTextEditor.KEYWORD)));
//pr.setRepairer(javaCommentDamagerRepairer, CupPartionScanner.JAVA_CODE);
//pr.setDamager(javaCommentDamagerRepairer, CupPartionScanner.JAVA_CODE);
//JavaColorProvider provider = new JavaColorProvider();
//DefaultDamagerRepairer javaDamagerRepairer = new DefaultDamagerRepairer(new JavaCodeScanner(provider));
//pr.setRepairer(javaDamagerRepairer, CupPartionScanner.JAVA_CODE);
//pr.setDamager(javaDamagerRepairer, CupPartionScanner.JAVA_CODE);
return pr;
}
......@@ -50,7 +71,8 @@ public class CupSourceViewerConfiguration extends SourceViewerConfiguration {
static final Token keyword = new Token(new TextAttribute(CupTextEditor.KEYWORD, null, SWT.BOLD));
static final Token literal = new Token(new TextAttribute(CupTextEditor.STRING));
private List<Integer> keywords = Arrays.asList(sym.IMPORT, sym.PACKAGE, sym.TERMINAL, sym.NONTERMINAL, sym.NON, sym.PRECEDENCE, sym.INIT, sym.CODE);
private List<Integer> keywords = Arrays.asList(sym.IMPORT, sym.PACKAGE, sym.TERMINAL, sym.NONTERMINAL,
sym.NON, sym.PRECEDENCE, sym.INIT, sym.CODE, sym.EXTENDS);
private List<Integer> constants = Arrays.asList();
@Override
......@@ -85,14 +107,24 @@ public class CupSourceViewerConfiguration extends SourceViewerConfiguration {
@Override
public int getTokenOffset() {
int mOffset = this.offset + last.xleft.getColumn() - 1;
int mOffset = this.offset + last.left;
return mOffset;
}
@Override
public int getTokenLength() {
int length = last.xright.getColumn()-last.xleft.getColumn()+1;
int length = last.right-last.left;
return length;
}
}
public class SingleTokenScanner extends RuleBasedScanner {
/**
* Creates a single token scanner.
*/
public SingleTokenScanner(TextAttribute attribute) {
setDefaultReturnToken(new Token(attribute));
}
}
}
package de.tum.in.www2.cupplugin.editors;
import java.awt.Frame;
import java.io.StringWriter;
import java.text.Collator;
import java.util.ArrayList;
......@@ -17,11 +18,14 @@ import org.eclipse.jface.text.DocumentEvent;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
......@@ -51,9 +55,9 @@ public class MultiPageEditor extends MultiPageEditorPart implements IResourceCha
/** The text editor used in page 0. */
private CupTextEditor editor;
/** The text widget used in page 2. */
private StyledText text;
/** The graph widget used in page 2. */
private CupGraphView graphView;
/**
* Creates a multi-page editor example.
*/
......@@ -84,12 +88,10 @@ public class MultiPageEditor extends MultiPageEditorPart implements IResourceCha
* which shows the sorted text.
*/
void createPage2() {
Composite composite = new Composite(getContainer(), SWT.NONE);
FillLayout layout = new FillLayout();
composite.setLayout(layout);
text = new StyledText(composite, SWT.H_SCROLL | SWT.V_SCROLL);
text.setEditable(false);
graphView = new CupGraphView(composite);
int index = addPage(composite);
setPageText(index, "Preview");
}
......@@ -155,7 +157,8 @@ public class MultiPageEditor extends MultiPageEditorPart implements IResourceCha
protected void pageChange(int newPageIndex) {
super.pageChange(newPageIndex);
if (newPageIndex == 1) {
sortWords();
//TODO: Manage page changes
graphView.drawGraph();
}
}
/**
......@@ -176,10 +179,12 @@ public class MultiPageEditor extends MultiPageEditorPart implements IResourceCha
});
}
}
/*
/**
* Sorts the words in page 0, and shows them in page 2.
*/
/*
void sortWords() {
String editorText =
......@@ -199,7 +204,7 @@ public class MultiPageEditor extends MultiPageEditorPart implements IResourceCha
displayText.write(System.getProperty("line.separator"));
}
text.setText(displayText.toString());
}
}*/
boolean addHooksToMainTextEditor(ITextEditor editor) {
......
package de.tum.in.www2.cupplugin.model;
public interface CupGraphModelObserver {
public void modelChanged(Model model);
}
package de.tum.in.www2.cupplugin.model;
import java.util.ArrayList;
import java.util.List;
public class Model {
// Static reference to the controller
static Model instance;
/*
* Static singelton getter
*/
static Model getInstance() {
if (instance != null) {
return instance;
} else {
instance = new Model();
return instance;
}
static Model instance;
// a lock, since some operations might not be threadsafe
private final Object lock = new Object();
// a list containing all observers
private List<Object> modelObservers;
/*
* Static singelton getter
*/
public static Model getInstance() {
if (instance != null) {
return instance;
} else {
instance = new Model();
return instance;
}
public Model() {
}
private Model() {
this.modelObservers = new ArrayList<Object>();
}
public void registerModelObserver(Object modelObserver) {
synchronized (lock) {
this.modelObservers.add(modelObserver);
}
}
public boolean deRegisterModelObserver(Object modelObserver) {
synchronized (lock) {
if (this.modelObservers.contains(modelObserver)) {
this.modelObservers.remove(modelObserver);
return true;
}
return false;
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="Jung/collections-generic-4.01.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/colt-1.2.0.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/concurrent-1.3.4.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/j3d-core-1.3.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/jung-3d-2.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/jung-3d-demos-2.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/jung-algorithms-2.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/jung-api-2.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/jung-graph-impl-2.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/jung-io-2.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/jung-jai-2.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/jung-visualization-2.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/stax-api-1.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/vecmath-1.3.1.jar"/>
<classpathentry exported="true" kind="lib" path="Jung/wstx-asl-3.2.6.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry exported="true" kind="lib" path=""/>
<classpathentry exported="true" kind="lib" path="java-cup-11b-runtime.jar"/>
<classpathentry exported="true" kind="lib" path="CupParser.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
......@@ -3,6 +3,129 @@ Bundle-ManifestVersion: 2
Bundle-Name: CupReferencedLibraries
Bundle-SymbolicName: CupReferencedLibraries
Bundle-Version: 1.0.0
Bundle-ClassPath: java-cup-11b-runtime.jar,
CupParser.jar,
Jung/collections-generic-4.01.jar,
Jung/colt-1.2.0.jar,
Jung/concurrent-1.3.4.jar,
Jung/j3d-core-1.3.1.jar,
Jung/jung-3d-2.0.1.jar,
Jung/jung-3d-demos-2.0.1.jar,
Jung/jung-algorithms-2.0.1.jar,
Jung/jung-api-2.0.1.jar,
Jung/jung-graph-impl-2.0.1.jar,
Jung/jung-io-2.0.1.jar,
Jung/jung-jai-2.0.1.jar,
Jung/jung-visualization-2.0.1.jar,
Jung/stax-api-1.0.1.jar,
Jung/vecmath-1.3.1.jar,
Jung/wstx-asl-3.2.6.jar
Export-Package: EDU.oswego.cs.dl.util.concurrent,
EDU.oswego.cs.dl.util.concurrent.misc,
cern.clhep,
cern.colt,
cern.colt.bitvector,
cern.colt.buffer,
cern.colt.function,
cern.colt.list,
cern.colt.list.adapter,
cern.colt.map,
cern.colt.matrix,
cern.colt.matrix.bench,
cern.colt.matrix.doublealgo,
cern.colt.matrix.impl,
cern.colt.matrix.linalg,
cern.colt.matrix.objectalgo,
cern.jet.math,
cern.jet.random,
cern.jet.random.engine,
cern.jet.random.sampling,
cern.jet.stat,
cern.jet.stat.quantile,
com.ctc.wstx.api,
com.ctc.wstx.cfg,
com.ctc.wstx.compat,
com.ctc.wstx.dom,
com.ctc.wstx.dtd,
com.ctc.wstx.ent,
com.ctc.wstx.evt,
com.ctc.wstx.exc,
com.ctc.wstx.io,
com.ctc.wstx.msv,
com.ctc.wstx.sax,
com.ctc.wstx.sr,
com.ctc.wstx.stax,
com.ctc.wstx.sw,
com.ctc.wstx.util,
corejava,
edu.uci.ics.jung.algorithms.blockmodel,
edu.uci.ics.jung.algorithms.cluster,
edu.uci.ics.jung.algorithms.filters,
edu.uci.ics.jung.algorithms.flows,
edu.uci.ics.jung.algorithms.generators,
edu.uci.ics.jung.algorithms.generators.random,
edu.uci.ics.jung.algorithms.importance,
edu.uci.ics.jung.algorithms.layout,
edu.uci.ics.jung.algorithms.layout.util,
edu.uci.ics.jung.algorithms.layout3d,
edu.uci.ics.jung.algorithms.matrix,
edu.uci.ics.jung.algorithms.metrics,
edu.uci.ics.jung.algorithms.scoring,
edu.uci.ics.jung.algorithms.scoring.util,
edu.uci.ics.jung.algorithms.shortestpath,
edu.uci.ics.jung.algorithms.transformation,
edu.uci.ics.jung.algorithms.util,
edu.uci.ics.jung.graph,
edu.uci.ics.jung.graph.event,
edu.uci.ics.jung.graph.util,
edu.uci.ics.jung.io,
edu.uci.ics.jung.io.graphml,
edu.uci.ics.jung.io.graphml.parser,
edu.uci.ics.jung.samples,
edu.uci.ics.jung.visualization,
edu.uci.ics.jung.visualization.annotations,
edu.uci.ics.jung.visualization.control,
edu.uci.ics.jung.visualization.decorators,
edu.uci.ics.jung.visualization.jai,
edu.uci.ics.jung.visualization.layout,
edu.uci.ics.jung.visualization.picking,
edu.uci.ics.jung.visualization.renderers,
edu.uci.ics.jung.visualization.subLayout,
edu.uci.ics.jung.visualization.transform,
edu.uci.ics.jung.visualization.transform.shape,
edu.uci.ics.jung.visualization.util,
edu.uci.ics.jung.visualization3d,
edu.uci.ics.jung.visualization3d.control,
edu.uci.ics.jung.visualization3d.decorators,
edu.uci.ics.jung.visualization3d.layout,
hep.aida,
hep.aida.bin,
hep.aida.ref,
java_cup,
java_cup.runtime,
javax.media.j3d,
javax.vecmath,
javax.xml,
javax.xml.namespace,
javax.xml.stream,
javax.xml.stream.events,
javax.xml.stream.util,
org.apache.commons.collections15,
org.apache.commons.collections15.bag,
org.apache.commons.collections15.bidimap,
org.apache.commons.collections15.buffer,
org.apache.commons.collections15.collection,
org.apache.commons.collections15.comparators,
org.apache.commons.collections15.functors,
org.apache.commons.collections15.iterators,
org.apache.commons.collections15.keyvalue,
org.apache.commons.collections15.list,
org.apache.commons.collections15.map,
org.apache.commons.collections15.multimap,
org.apache.commons.collections15.set,
org.codehaus.stax2,
org.codehaus.stax2.evt,
org.codehaus.stax2.io,
org.codehaus.stax2.ri,
org.codehaus.stax2.validation
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: java_cup,
java_cup.runtime
source.. = .
output.. = .
bin.includes = META-INF/,\
java_cup/
java-cup-11b-runtime.jar,\
CupParser.jar,\
Jung/collections-generic-4.01.jar,\
Jung/colt-1.2.0.jar,\
Jung/concurrent-1.3.4.jar,\
Jung/j3d-core-1.3.1.jar,\
Jung/jung-3d-2.0.1.jar,\
Jung/jung-3d-demos-2.0.1.jar,\
Jung/jung-algorithms-2.0.1.jar,\
Jung/jung-api-2.0.1.jar,\
Jung/jung-graph-impl-2.0.1.jar,\
Jung/jung-io-2.0.1.jar,\
Jung/jung-jai-2.0.1.jar,\