Python: неверный синтаксис с тестовыми данными с использованием pyparser

StackOverflow https://stackoverflow.com/questions/1791269

Вопрос

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

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 = """\
    ^

Я этого не понимаю. Я был бы благодарен за любую помощь

Это было полезно?

Решение

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

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

Нужно больше)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top