2014-02-13 5 views
1

학교 과제를위한 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

+1

이것은 단일 문장에 대한 문법입니다. 왜 그것이 여러 문장으로 작동 할 것이라고 기대합니까? 여러 문장이 합법적 인 입력임을 나타내는 제작이 없습니다. – rici

+0

실제로 그것이 문제였습니다. 포인터를 주셔서 감사합니다 –

답변

1

@rici 쓴 :

하나의 명령문에 대한 문법의

. 왜 그것이 여러 문장으로 작동 할 것이라고 기대합니까? 여러 문장이 합법적 인 입력임을 나타내는 제작이 없습니다.

는 영업 이익이 쓴 :

는 사실이이 문제였다. 포인터 주셔서 감사합니다

+0

([댓글에 응답하고 커뮤니티 위키로 변환했습니다.] (http://meta.stackoverflow.com/questions/251597/question-with-no-answers-butissues-solved-in- the-comments)) –