그 오류를 가지고 있지만하지 않습니다
$ a4 MyItems_op.g4
warning(180): MyItems_op.g4:5:13: chars "'" used multiple times in set [' ']
$ javac M*.java
$ grun MyItems_op theseItems -tokens -diagnostics input.text
[@0,0:0='V',<FIELDTEXT>,1:0]
[@1,1:1='3',<FIELDTEXT>,1:1]
[@2,2:2=' ',<' '>,1:2]
[@3,3:3='A',<FIELDTEXT>,1:3]
[@4,4:4='G',<FIELDTEXT>,1:4]
[@5,5:5='L',<FIELDTEXT>,1:5]
...
당신이 볼 수 있듯이, 규칙
FIELDTEXT : ~[' '] ;
는 단일 문자와 일치합니다.
이 시도 :
grammar MyItems;
theseItems
@init {System.out.println("MyItems last update 0030");}
: item (SPACE item)*
;
item
: FIELDTEXT
;
SPACE : ' ' ;
FIELDTEXT : ~[ \r\n]+ ;
NL : [\r\n]+ -> skip ;
실행 :
$ alias
alias a4='java -jar /usr/local/lib/antlr-4.6-complete.jar'
$ a4 MyItems.g4
$ javac M*.java
$ grun MyItems theseItems -tokens -diagnostics input.text
[@0,0:1='V3',<FIELDTEXT>,1:0]
[@1,2:2=' ',<' '>,1:2]
[@2,3:5='AGL',<FIELDTEXT>,1:3]
[@3,6:6=' ',<' '>,1:6]
[@4,7:10='V445',<FIELDTEXT>,1:7]
[@5,12:11='<EOF>',<EOF>,2:0]
MyItems last update 0030
$ hexdump -C input.text
00000000 56 33 20 41 47 4c 20 56 34 34 35 0a |V3 AGL V445.|
0000000c
안녕하세요 버나드, 귀하의 의견을 주셔서 감사합니다. 이 문법을 다른 프로젝트로 옮기더라도 내 문제는 해결되지 않았습니다. 그러므로 나는 그 오류가 셋업의 인공물이라고 추측한다. – NWS