尝试将ANTLR3应用程序(在C ++中)改编成ANTLR4(在JS中),我仍然不了解如何用我的语言实现IF THEN ELSE ENDIF。 最好使用嵌入式操作,因为我的应用程序很简单,但我接受任何替代方案作为提示(因为我已经被困了好几周,尽管有这本书)。请帮忙 !
典型背景:
stat: cmd SEPARATOR
| SEPARATOR
;
cmd: ...
| 'if' c=e 'then' y=stat ( el='else' n=stat )? 'endif'
{ *ACTION* }
;
注意:在ANTLR3中, ACTION 过去就像
一样简单 stat( $c.getNextSibling().getFirstChild() );
else
stat( $c.getNextSibling().getNextSibling() );
但我仍然不了解如何在ANTLR4 / JS中做到这一点(直接行动,访客,听众或其他)。
谢谢!