임 내가 yacc에를 구축했다도움말/충돌을 감소 - 모델 시도 (XA) * (XB) *
("declare" "namespace" ";")* ("declare" "variable" ";")*
EBNF 식을 모델링하기 위해 노력하고, 문법 (임 MPPG 사용)하는 것 같다 이것을 나타낼 수는 있지만 테스트 표현과 일치하지 않습니다.
내가 일치하도록 노력하고있어 테스트 케이스/갈등을 줄일 수 렉서에서 토큰 스트림 문법 구문 분석은 "시프트가 말한다
KW_Declare
KW_Variable
Separator
입니다
declare variable;
입니다 상태 (6) 에 KW_Declare ". "% left PrologHeaderList PrologBodyList"를 사용하여이 문제를 해결하려고 시도했지만 어느 솔루션도 작동하지 않습니다. ";"
Program : Prolog;
Prolog : PrologHeaderList PrologBodyList;
PrologHeaderList : /*EMPTY*/
| PrologHeaderList PrologHeader;
PrologHeader : KW_Declare KW_Namespace Separator;
PrologBodyList : /*EMPTY*/
| PrologBodyList PrologBody;
PrologBody : KW_Declare KW_Variable Separator;
KW_Declare KW_Namespace KW_Variable 세퍼레이터, "naemsapce"를 "선언", "가변"값을 가진 모든 토큰이다.
이것이 결국 채택한 접근 방식입니다. 나는 코드에서 검증을 할 수 있다고 생각한다. – Sprotty