使用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 = """\ ^
我不明白。我将不胜感激任何帮助
答案 0 :(得分:4)
前一行的括号未关闭。
sexp << ( alphaword | integer | ( LPAREN + ZeroOrMore(sexp) + RPAREN)
需要更多)