gpt4 book ai didi

Python PLY 零次或多次出现的解析项

转载 作者:行者123 更新时间:2023-11-28 17:54:30 29 4
gpt4 key购买 nike

我正在使用 Python 和 PLY 来解析类似 LISP 的 S 表达式,并且在解析函数调用时可以有零个或多个参数。我怎样才能将它放入 yacc 代码中。到目前为止,这是我的功能:

def p_EXPR(p):
'''EXPR : NUMBER
| STRING
| LPAREN funcname [EXPR] RPAREN'''
if len(p) == 2:
p[0] = p[1]
else:
p[0] = ("Call", p[2], p[3:-1])

我需要用允许零个或多个 EXPR 的东西替换“[EXPR]”。我该怎么做?

最佳答案

这个怎么样:

EXPR : NUMBER
| STRING
| LPAREN funcname EXPR_REPEAT RPAREN
EXPR_REPEAT: /*nothing*/
| EXPR EXPR_REPEAT

关于Python PLY 零次或多次出现的解析项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2794762/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com