학교 과제를위한 VBA (응용 프로그램의 시각적 기본) 코드를 검사하고 구문 분석하려고합니다.VBA의 문맥없는 문법
저는 Python PLY lex 및 yacc 모듈을 사용하고 있습니다. 지금은 변수 선언과 할당을 개념 증명으로 사용하려고합니다. 나의 예비 문법은 변수 선언 또는 할당을 이해합니다. 마침내 거기에 개행 문자 (\ n)를 넣고 다른 명령문을 추가하면 아무 것도 이해하지 못합니다. ie : 요지의 코드에서 92 행의 문자열에서 "a = 3"을 제거하면 올바르게 작동하고 식별자 목록에 식별자를 삽입합니다.
저는 스캐너에서 줄 바꿈 문자를 처리하므로 문법 정의에 문제가 있다고 생각하지만 해결할 수는 없습니다. 식별자 할당은 부울, DOUBLE가 INT DIM, 및 AS TYPE 모든 토큰이 렉스 모듈에 정의되어
statement : declaration
| assignment
declaration : DIM IDENTIFIER AS TYPE
assignment : IDENTIFIER ASSIGN BOOLEAN
| IDENTIFIER ASSIGN DOUBLE
| IDENTIFIER ASSIGN INT
참고
문법이 기본적이다.
제작 한에있는 gist with the code : https://gist.github.com/clsk/22c386695dd1ddb7ca75
이것은 단일 문장에 대한 문법입니다. 왜 그것이 여러 문장으로 작동 할 것이라고 기대합니까? 여러 문장이 합법적 인 입력임을 나타내는 제작이 없습니다. – rici
실제로 그것이 문제였습니다. 포인터를 주셔서 감사합니다 –