내 문법은 다음과 같습니다 : 나는 (GRUN을 통해) 그것을 다음과 같은 입력 데이터를 공급하기 위해 노력하고있어내 ANTLR 문법이 어떻게 일치하지 않습니까?
grammar BirdGrammar;
lines: (init '\n')*;
init : lineCode
| continuation;
sep : ' '
| '-'
;
lineCode : interfaceList
| protocolList
| interfaceAddress
| interfaceFlags
;
interfaceList : '1001' sep INTERFACENAME ' ' interfaceStatus ' (index=' index ')';
protocolList : '1002';
interfaceAddress : '1003';
interfaceFlags : '1004';
continuation : ' ';
interfaceStatus : 'up'
| 'DOWN';
index : INDEX;
INTERFACENAME : [a-zA-Z0-9]+;
INDEX : [0-9]+;
:
1001-eth0 up (index=110)
1001-ip6gre0 DOWN (index=113)
내가 할 때, 나는 다음과 같은 오류 얻을 :
을line 1:20 mismatched input '110' expecting INDEX
line 2:25 mismatched input '113' expecting INDEX
이제 INDEX (규칙)는 [0-9] + 반복을 찾으면서 110 및 113과 일치해야합니다. 누군가 문법이나 입력에 명백한 문제를 발견합니까?
그럼 어떻게 해결할 수 있습니까? 문법에 근본적인 "버그"가 있습니까? 어떻게 접근 했습니까? –