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

发布于 2024-08-12 03:46:47 字数 649 浏览 4 评论 0原文

使用 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  

在查看此代码的示例时,似乎一切都很好,但是在运行时我收到此行的语法错误

<前><代码>测试 = """\ ^

我不明白。如果有任何帮助,我将不胜感激

Using pyparser, I am trying to create a very simple parser for the S-Expression language. I have written a very small grammar.
Here is my code:

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  

While looking at examples of this code it seems that everything is fine, however when running i get a syntax error for this line

tests = """\
    ^

I don't understand it. I would be grateful for any help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如梦亦如幻 2024-08-19 03:46:47

前一行的括号未闭合。

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

需要更多)的

parentheses on a previous line are not closed.

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

Needs more )'s

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文