What does ^ and ! stand for in ANTLR grammar
问题 I was having difficulty figuring out what does ^ and ! stand for in ANTLR grammar terminology. 回答1: Have a look at the ANTLR Cheat Sheet: ! don't include in AST ^ make AST root node And ^ can also be used in rewrite rules: ... -> ^( ... ) . For example, the following two parser rules are equivalent: expression : A '+'^ A ';'! ; and: expression : A '+' A ';' -> ^('+' A A) ; Both create the following AST: + / \ A A In other words: the + is made as root, the two A 's its children, and the ; is