Switching Antlr lexer modes from parser
Asked Answered
O

1

7

How to control switching Antlr lexer modes from parser actions? I extended the generated Parser and Lexer so I can call pushMode and popMode from parser witch in turn call suitable pushMode and popMode of lexer but with no effect. Is there any thing I can do to activate this functionality?

Orsa answered 25/9, 2013 at 6:43 Comment(1)
I suspect by the time the parser-rules are being hit, the lexer has already gone to work making tokens past the point where you want the switch-over to occur... Is it possible to determine the switch-over points using only lexer rules? If not, perhaps there is some way to re-wind the lexer's token stream and discard the tokens you don't trust.Branscum
M
8

Your lexer should be written such that the input can be completely tokenized before the parser is even created. Even though the token stream is lazily filled, ANTLR 4 is not guaranteed to correctly parse the input if your lexer does not meet this requirement.

Malamute answered 25/9, 2013 at 23:19 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.