2009-11-24 5 views
2

pyparser를 사용하여 S- 표현식 언어에 대한 매우 간단한 구문 분석기를 만들려고합니다. 나는 아주 작은 문법을 썼다. 그러나,이 모든 것이 좋은 것 같다이 코드의 예를 보면서 내가이 줄Python : Pyparser를 사용하여 테스트 데이터가 잘못된 구문

tests = """\ 
    ^

I에 대한 구문 오류가 실행할 때

from pyparsing import * 
alphaword = Word(alphas) 
integer = Word(nums) 
sexp = Forward() 
LPAREN = Suppress("(") 
RPAREN = Suppress(")") 
sexp << (alphaword | integer | (LPAREN + ZeroOrMore(sexp) + RPAREN) 
tests = """\ 
    red 
    100 
    (red 100 blue) 
    (green ((1 2) mauve) plaid()) """.splitlines() 
for t in tests: 
    print t 
    print sexp.parseString(t) 
    print 

: 다음은 내 코드입니다 이해하지 못해. 어떤 도움을 주셔서 감사합니다

답변

4

이전 줄의 괄호는 닫히지 않았습니다.

sexp << (alphaword | integer | (LPAREN + ZeroOrMore(sexp) + RPAREN) 

은의

) 더 필요