java语法 predicate +树运算符

yc0p9oo0  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(339)

我在函数\调用\表达式规则中有语法 predicate 。请参见下面的规则定义:

function_call_expression
 :
  (atom_sub (DOT identifier_name)) => atom_sub (DOT identifier_name (LPAREN expression_list? RPAREN))+
  | atom_sub_call
    ->
      ^('functioncall' atom_sub_call)
  ;

我想修改语法,为下面的每个函数调用引入新的树节点

atom_sub (DOT identifier_name (LPAREN expression_list? RPAREN))+ 
-> 
 ^ ( 'functioncall' atom_sub (DOT identifier_name (LPAREN expression_list? RPAREN))+ )

我不知道如何做,如果有symantic predicate 规则替代。请帮我做同样的事。

gmxoilav

gmxoilav1#

句法 predicate 在树重写中不起作用。就像没有 predicate 一样添加重写代码。predictate只用于指导解析器(类似于本地回溯)。

相关问题