Реализация действия IF в ANTLR4/JS
Пытаясь адаптировать приложение 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 действие было таким простым, как
stat( $c.getNextSibling().getFirstChild() );
else
stat( $c.getNextSibling().getNextSibling() );
Но я все еще не понимаю, как это сделать в ANTLR4/JS (в прямом действии, посетитель, слушатель или что-то еще).
Спасибо!