내가 형태의 입력 ::ANTLR4 : 일치하지 않는 입력
다음commit a1b2c3
Author: Michael <[email protected]>
commit d3g4
Author: David <[email protected]>
내가 쓴 문법입니다 일치하고 싶습니다 :
이grammar commit;
file : commitinfo+;
commitinfo : commitdesc authordesc;
commitdesc : 'commit' COMMITHASH NEWLINE;
authordesc : 'Author:' AUTHORNAME '<' EMAIL '>' NEWLINE;
COMMITHASH : [a-z0-9]+;
AUTHORNAME : [a-zA-Z]+;
EMAIL : [[email protected]]+;
NEWLINE : '\r'?'\n';
WHITESPACE : [ \t]->skip;
위 파서의 문제가 있다는 것입니다을, 위의 입력에 대해 완벽하게 일치합니다. 그러나 입력에 변경하는 경우 : AUTHORNAME를 기대 8 일치하지 않는 입력 '마이클'
라인 2 :
commit c1d2
Author: michael <[email protected]>
이 같은 오류가 발생합니다.
토큰을 인쇄 할 때 'michael'문자열이 AUTHORNAME 대신 COMMITHASH 토큰과 일치하는 것으로 보입니다.
위의 사례를 수정하는 방법은 무엇입니까?
안녕하세요, Rishabh, 감사합니다. 나는 렉시 컬 모드를 사용하여 그것을 해결했다. – Ramg