2009-11-24 3 views
2

Используя pyparser, я пытаюсь создать очень простой синтаксический анализатор для языка S-Expression. Я написал очень маленькую грамматику. Вот мой код:Python: Недопустимый синтаксис с данными теста с использованием Pyparser

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 

Хотя глядя на примеры этого кода, кажется, что все нормально, но при запуске я получаю ошибку синтаксиса для этой линии

tests = """\ 
    ^

I не понимаю. Буду Вам благодарен за любую помощь

ответ

4

круглые скобки на предыдущей строке не закрыты.

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

нуждается больше) 's