Как сделать так, чтобы строки имели одного и того же родителя? - PullRequest
0 голосов
/ 15 июня 2019

Я действительно новичок в 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)

Спасибо

...