作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用ply构建一个简单的编译器。我正确地构建了算术和逻辑表达式,但是如果条件运行则出现一些错误。例如,当我输入if(5> 2)作为程序输入时,我得到了AttributeError: 'str' object has no attribute 'type'
我的代码示例:
def t_IF(t):
r'if'
return t.value
def p_statement_expr(t):
'''statement : expression
| comparison
| if_statement'''
print(t[1])
def p_IF(t):
'''if_statement : IF LPARENTHESES comparison RPARENTHESES'''
t[0] = t[3]
def p_expression_comparison(t):
'''comparison : expression GTH expression
| expression LTH expression
| expression GTHOREQUAL expression
| expression LTHOREQUAL expression
| expression EQUALEQUAL expression
| expression NOTEQUAL expression'''
if t[2] == '>':
if t[1] > t[3]:
t[0] = True
else:
t[0] = False
elif t[2] == '<':
if t[1] < t[3]:
t[0] = True
else:
t[0] = False
elif t[2] == '>=':
if t[1] >= t[3]:
t[0] = True
else:
t[0] = False
elif t[2] == '<=':
if t[1] <= t[3]:
t[0] = True
else:
t[0] = False
elif t[2] == '==':
if t[1] == t[3]:
t[0] = True
else:
t[0] = False
elif t[2] == '!=':
if t[1] != t[3]:
t[0] = True
else:
t[0] = False
最佳答案
在Ply中,词法分析器函数必须始终返回 token 对象。
但是在这里,您返回一个字符串:
def t_IF(t):
r'if'
return t.value
def t_IF(t):
r'if'
return t
关于python - 如果使用铺层条件如何 build ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61030869/
我是一名优秀的程序员,十分优秀!