C 대상에서 antlr3과 트리 문법에 대해 몇 가지 질문이 있습니다.C 타겟에서 antlr3을 사용하여 특정 구문을 구문 분석
나는 거의 (확인 함수, 변수, 부울 수학 식) 내 해석기를 수행하고 난 끝에 가장 어려운 문장 (같은 경우, 스위치 등)을 유지 한1) 내가 좋아하는 것 나는 나무 워커 (매크로 마크 여기 만 주제()/되감기 (m) + @Init/@After하지만 작동하지 않습니다에 대한 많은 예제하지만 아무것도 본 적이
repeat: ^(REPEAT DIGIT stmt);
: 간단한 루프 문을 해석 (나는 antlr 오류 : "예기치 않은 노드에서 오프셋 0")). C에서이 문장을 어떻게 해석 할 수 있습니까?
2) 간단한 if 문에 같은 질문 :
는if: ^(IF condition stmt elseifstmt* elsestmt?);
문제는 조건이 거짓 인 경우 문을 건너 뛰고 다른 ELSEIF/다른 문을 테스트하는 것입니다.
3) 스크립트를 중단시킬 수있는 명령문이 있습니다 (예 : "break"또는 "exit"). 트리 워커를 방해하고 다음 토큰을 건너 뛸 수 있습니까?
4) 렉서 또는 파서 오류가 감지되면 antlr이 오류를 반환합니다. 그러나 나는 직접 만든 오류 메시지를 만들고 싶습니다. 파서가 추락 한 곳의 라인 번호를 어떻게 알 수 있습니까?
자세한 내용은 저에게 문의하십시오. 당신이 아주 많이 반복 문에 대한
이 질문에 대한 답변을 찾으셨습니까? – greydet