Я пытался выучить ANTLR в течение некоторого времени и, наконец, получил в руки справочник The Definitive ANTLR.
Ну, я попробовал следующее в ANTLRWorks 1.4
grammar Test;
INT : '0'..'9'+
;
WS : ( ' '
| '\t'
| '\r'
| '\n'
) {$channel=HIDDEN;}
;
expression
: INT ('+'^ INT)*;
Когда я передаю 2 + 4 и обрабатываю выражение, я не получаю дерево с + в качестве корня и 2 и 4 в качестве дочерних узлов. Скорее, я получаю выражение как корень, а 2, + и 4 как дочерние узлы на одном уровне.
Не могу понять, что я делаю неправильно. Нужна помощь отчаянно.
Кстати, как я могу получить эти графические описания?