Реализация действия 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 (в прямом действии, посетитель, слушатель или что-то еще).

Спасибо!

0 ответов

Другие вопросы по тегам