Я действительно новичок в Antlr4.Я пытаюсь сделать парсер для BGP-сообществ.Мой первый ввод может быть таким:
[Action] NO_EXPORT SET
[Action] NO_EXPORT RUN
Вот мой код
grammar AUX;
start : configSections;
configSections: configSection+
EOF;
configSection: defined_actions
| undefined_actions
;
undefined_actions: 'NOT KNOWN'
;
defined_actions: '[Action]'
action_define*;
action_define: no_export | local_preference | as_padding;
no_export: 'NO_EXPORT'
verbs_no_export*;
local_preference: '[Verbs LOCAL_PREFERENCE]'
verbs_local_preference*;
as_padding: '[Verbs AS_PADDING]'
verbs_as_padding*;
verbs_no_export: ('DO NOT'|'SET'|'RUN')+;
Остальной код можно игнорировать.Это вывод моего дерева:
(start (configSections (configSection (defined_actions [Action] (action_define (no_export NO_EXPORT (verbs_no_export SET))))) (configSection (defined_actions [Action] (action_define (no_export NO_EXPORT (verbs_no_export RUN))))) <EOF>))
Проблема в том, что я хочу, чтобы для этого ввода было только одно дерево только с двумя разными листьями, глаголы (SET, RUN)
Спасибо