python - Parser with ply - 解析器规则简单引用
问题描述
我正在用 ply 在 python 中开发一个解析器。但我有一个关于解析规则的问题,因为我有这样的事情:
def p_main(p):
main : PROGRAMA ID declaraciones declaracion_funcion bloque
但是我已经看到规则使用简单的引号,为什么?它是用来做什么的?
例如:
def p_expression_binop(p):
'''expression : expression PLUS expression
| expression MINUS expression
| expression TIMES expression
| expression DIVIDE expression'''
if p[2] == '+' : p[0] = p[1] + p[3]
elif p[2] == '-': p[0] = p[1] - p[3]
elif p[2] == '*': p[0] = p[1] * p[3]
elif p[2] == '/': p[0] = p[1] / p[3]
为什么是 3 个简单的引号?
解决方案
三引号(双引号或单引号)是python中的多行字符串。
https://www.digitalocean.com/community/tutorials/how-to-format-text-in-python-3#multiple-lines
推荐阅读
- mysql - 在 MySql 5 中,我可以在不锁定表的情况下向表中添加触发器吗?
- apache - 使用 .htaccess 重定向页面
- python - Pandas:处理月度数据中的缺失值
- apache-spark - 在 AWS EMR 中读取包含数十亿条记录的镶木地板文件时,Pyspark 作业失败
- python - 基于规则和等于变化值的新列(python pandas 数据框)
- elasticsearch - 如何在 Web 前端获得 syslog-ng 日志的实时视图?
- django - 未找到 Django 的反向
- charts - 如何创建按 2 个类别分组的堆积条形图
- ruby-on-rails - 如何确定 after_save 回调的更改属性
- terraform - 无法设置计算属性:org_id