gpt4 book ai didi

python - 使用 PLY Python 词法求和运算符和有符号整数

转载 作者:行者123 更新时间:2023-12-04 06:07:03 25 4
gpt4 key购买 nike

如何构建原始表达式以区分和运算符和有符号整数?我正在使用 PLY Python。

不幸的是,这不起作用:

t_sum=r'\+'
def t_integer(token):
r'[-+]?\d+'

最佳答案

考虑这一点的一种方法是,而不是试图区分 + 的目的。在词法分析上,是等到解析(我们确定含义的地方)。所以保持:

t_PLUS  = r'\+'
t_MINUS = r'\-'
def t_INTEGER(token):
r'\d+'
return int(token)

并定义一个语法:
number -> number PLUS number          #sum, binary operator
number -> number MINUS number
number -> PLUS number #signed integer, unary operator
number -> MINUS number
number -> INTEGER

#By writing each as a parse functions like...
def p_number_ADD(p):
"number : number PLUS number"
p[0] = p[1]+p[2]

注意:这确实允许以下行为 +-+2 = +(-(+2)) = -2 (如在 Python 中所见)。

关于python - 使用 PLY Python 词法求和运算符和有符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8235320/

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