代码之家  ›  专栏  ›  技术社区  ›  ssingh3 Dror Helper

什么是^和!在ANTLR语法中代表

  •  5
  • ssingh3 Dror Helper  · 技术社区  · 15 年前

    我很难搞清楚什么是^和!在ANTLR语法术语中代表。

    1 回复  |  直到 15 年前
        1
  •  8
  •   Troy    15 年前

    看一看这个 ANTLR Cheat Sheet :

    !
    ^ 生成AST根节点

    以及 ... -> ^( ... ) . 例如,以下两个解析器规则是等效的:

    expression
      :  A '+'^ A ';'!
      ;
    

    以及:

    expression
      :  A '+' A ';' -> ^('+' A A)
      ;
    

    两者都创建以下AST:

      +
     / \
    A   A
    

    换言之:the + 作为根,两个 A 它的孩子,还有 ;

    推荐文章