Skip subtree in Listener ANTLR4 -


is there way skip parsing of specific block while using listener in antlr4 using enter or exit method. have read link here unable make work. thank you!

by time you're using listener pattern own listener class, input correctly lexed , parsed. therefore, answer question no. when you're using listener you're typically walking tree post-parse.

does mean lost though? of course not. have not code enter or exit events constructs want "ignore." it's easy.

as if-else statements, i've implemented them using visitor pattern this:

as how program if statement, i'll give peek @ way implement them:

    public override muvalue visitifstmt(lisbasicparser.ifstmtcontext context)     {         lisbasicparser.condition_blockcontext[] conditions = context.condition_block();         bool evaluatedblock = false;         foreach (lisbasicparser.condition_blockcontext condition in conditions)         {             muvalue evaluated = visit(condition.expr());             if (evaluated.asboolean())             {                 evaluatedblock = true;                 visit(condition.stmt_block());                 break;             }         }         if (!evaluatedblock && context.stmt_block() != null)         {             visit(context.stmt_block());         }         return muvalue.void;     } 

granted, doesn't make sense out of context, rest assured works. see in full context, please visit bart kiers excellent example of grammar , implementation .


Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -