diff options
Diffstat (limited to 'plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/parser/AbstractXpand3NodeParser.java')
-rw-r--r-- | plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/parser/AbstractXpand3NodeParser.java | 105 |
1 files changed, 100 insertions, 5 deletions
diff --git a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/parser/AbstractXpand3NodeParser.java b/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/parser/AbstractXpand3NodeParser.java index e7786635..37c6e610 100644 --- a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/parser/AbstractXpand3NodeParser.java +++ b/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/parser/AbstractXpand3NodeParser.java @@ -4,7 +4,9 @@ import java.util.Set; import org.antlr.runtime.CommonToken; import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.Token; import org.antlr.runtime.TokenStream; +import org.antlr.runtime.tree.TreeAdaptor; import org.eclipse.xpand3.node.CompositeNode; import org.eclipse.xpand3.node.LeafNode; import org.eclipse.xpand3.node.LexedToken; @@ -18,6 +20,96 @@ public abstract class AbstractXpand3NodeParser extends Xpand3Parser { public AbstractXpand3NodeParser(TokenStream input) { super(input); + setTreeAdaptor(new TreeAdaptor(){ + + public void addChild(Object t, Object child) { + } + + public Object becomeRoot(Object newRoot, Object oldRoot) { + return null; + } + + public Object becomeRoot(Token newRoot, Object oldRoot) { + return null; + } + + public Object create(Token payload) { + return null; + } + + public Object create(int tokenType, Token fromToken) { + return null; + } + + public Object create(int tokenType, Token fromToken, String text) { + return null; + } + + public Object create(int tokenType, String text) { + return null; + } + + public Object dupNode(Object treeNode) { + return null; + } + + public Object dupTree(Object tree) { + return null; + } + + public Object getChild(Object t, int i) { + return null; + } + + public int getChildCount(Object t) { + return 0; + } + + public String getText(Object t) { + return null; + } + + public Token getToken(Object t) { + return null; + } + + public int getTokenStartIndex(Object t) { + return 0; + } + + public int getTokenStopIndex(Object t) { + return 0; + } + + public int getType(Object t) { + return 0; + } + + public int getUniqueID(Object node) { + return 0; + } + + public boolean isNil(Object tree) { + return false; + } + + public Object nil() { + return null; + } + + public Object rulePostProcessing(Object root) { + return null; + } + + public void setText(Object t, String text) { + } + + public void setTokenBoundaries(Object t, Token startToken, + Token stopToken) { + } + + public void setType(Object t, int type) { + }}); } protected abstract Set<String> normalizableRules(); @@ -26,6 +118,8 @@ public abstract class AbstractXpand3NodeParser extends Xpand3Parser { public void ruleEntered(String rulename) { CompositeNode newOne = NodeFactory.eINSTANCE.createCompositeNode(); newOne.setRule(rulename); + newOne.setAlias(next); + next=null; if (current != null) { current.getChildren().add(newOne); } else { @@ -33,7 +127,13 @@ public abstract class AbstractXpand3NodeParser extends Xpand3Parser { } current = newOne; } + private String next=null; + @Override + protected void assignNextNodeTo(String alias) { + this.next = alias; + } + @Override public void ruleLeft(String ruleName) { CompositeNode parent = (CompositeNode) current.eContainer(); @@ -77,9 +177,4 @@ public abstract class AbstractXpand3NodeParser extends Xpand3Parser { return rootNode; } - @Override - protected void assignNextNodeTo(String alias) { - // TODO Auto-generated method stub - } - }
\ No newline at end of file |