Python:使用Pyparser测试数据的语法无效

时间:2009-11-24 16:36:59

标签: python syntax syntax-error pyparsing

使用pyparser,我正在尝试为S-Expression语言创建一个非常简单的解析器。我写了一个非常小的语法。 这是我的代码:

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

我不明白。我将不胜感激任何帮助

1 个答案:

答案 0 :(得分:4)

前一行的括号未关闭。

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

需要更多)