我会遇到这个问题:我给出了这个规则
expr: (NUM -> NUM) ( a=NUM -> ^(PLUS $expr $a ))* ;
NUM : '0'..'9'+;
WS : ( ' ' | '\t' | '\r' | '\n' ) {$channel=HIDDEN;};
解析输入“1 2 3 4”如下:
(PLUS (PLUS (PLUS 1 2) 3) 4)
我的问题是如何使用“模板”或文件“.stg”来获取输出
1+2+3+4
错误的字符串模板规则
expr :^(plus a=multi b=NUM ) ->template(f1={$a.st},f2={$b.st})"<f1>+<f2>"
谢谢你,巴特基尔斯!!!