...
Code Block |
---|
/** An adaptor that tells ANTLR to build CymbalAST nodes */ public static TreeAdaptor cymbalAdaptor = new CommonTreeAdaptor() { public Object create(Token token) { return new CymbalAST(token); } public Object dupNode(Object t) { if ( t==null ) { return null; } return create(((CymbalAST)t).token); } public Object errorNode(TokenStream input, Token start, Token stop, RecognitionException e) { CymbalErrorNode t = new CymbalErrorNode(input, start, stop, e); return t; } }; |
Here's a suitable error node:
Code Block |
---|
/** A node representing erroneous token range in token stream */
public class CymbolErrorNode extends CymbolAST {
org.antlr.runtime.tree.CommonErrorNode delegate;
public CymbolErrorNode(TokenStream input, Token start, Token stop,
RecognitionException e)
{
delegate = new CommonErrorNode(input,start,stop,e);
}
public boolean isNil() { return delegate.isNil(); }
public int getType() { return delegate.getType(); }
public String getText() { return delegate.getText(); }
public String toString() { return delegate.toString(); }
}
|
Error Node Insertion Upon Syntax Error
...