루프 잠시 안녕을 위해,ANTLR 문법이
가 나는 동안 루프를 구문 분석을위한 C 문법이 필요합니다. 예를 들어, 다음 코드를 구문 분석해야한다고 가정 해보십시오.
A = 20
B = 1
WHILE(A < 30)
//function call
A = A + B
ENDWHILE
표현식을 구문 분석하고 평가해야합니다. 나는 몇몇 단계를 따라하고 문법을 썼지 만, 그것은 내가 원하는 결과물을 얻지 못하고있다. 위의 코드에 따라 루프 내부의 함수는 조건 검사 후 10 번 호출되어야합니다.
첫째, 나는 (참조 : ANTLR_HASH_TABLE 구조체) 해시 테이블에서 A와 B의 값을 저장하고있어 그동안 규칙은 다음과 같이 보입니다 :
whileStatement : 'WHILE' condExpr 'ENDWHILE'
;
내가 저장하고 얻을 수 있어요을 값을 해시 테이블에서하지만, 전화를 걸거나 그 많은 번호를 인쇄 할 함수 호출이 붙어 있어요. 그 번호의 함수를 호출/인쇄하려면 어떤 단계를 따라야하는지 알고 싶습니다.
이것이 어떻게 달성되어야하는지에 대한 아이디어는 큰 도움이 될 것입니다.
안녕하세요. 위의 문법은 입력 파일에서 이러한 루프를 허용합니다. while 루프는 조건이 실패 할 때까지 구문 분석해야합니다. 즉, while 규칙을 다시 호출해야합니다. 이 작업을 수행하는 방법? 내가 맞으면 재귀 적 파싱 메서드를 구현해야합니까? –