问题
I have this code :
varDeclaration
: type ID ('=' expression)? ';'
;
So, not always ('=' expression) exist. But, sometimes, I want to process this part, but don't know it exist or not in this context. I'm using ANTLR 4 (and often using Listener), how can I know this.
Thanks :)
回答1:
In your listener (exitVarDeclaration) or visitor (visitVarDeclaration) check whether ctx.expression() == null. If null, then ('=' expression) didn't exist. If non-null, then it did exist.
来源:https://stackoverflow.com/questions/16392152/antlr-4-how-to-know-the-existence-of-subpart-in-rule