2

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

我不明白。我将不胜感激

4

1 回答 1

4

前一行的括号不闭合。

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

需要更多)的

于 2009-11-24T16:41:06.317 回答