Python PLY 多条规则

标签 python ply

简而言之,我们如何区分使用了哪个规则 -

例子:- ''' p : a b | c | d ''' 所以假设我们需要为不同的规则编写不同的代码。那么有什么优雅的方法可以做到这一点。手册中给出的一种方法是使用规则和标记的组合,但我发现并不总是点击。

最佳答案

只需将表达式分解为多个规则,每个不同的代码使用一个规则。

例如(来自http://www.dabeaz.com/ply/ply.html#ply_nn25)

def p_expression(p):
    '''expression : expression PLUS term
              | expression MINUS term'''
    if p[2] == '+':
        p[0] = p[1] + p[3]
    elif p[2] == '-':
        p[0] = p[1] - p[3]

也可以写成

def p_expression_plus(p):
    'expression : expression PLUS term'
    p[0] = p[1] + p[3]

def p_expression_minus(t):
    'expression : expression MINUS term'
    p[0] = p[1] - p[3]

关于Python PLY 多条规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846412/

相关文章:

python - 如何设置yacc of ply的优先级

python - 在 Python 中使用 PLY 的两个单词标记

python - 如何在 python 中调用 sas 脚本?

python - 如何将 %d 添加到 argparse 帮助文本

python - PyUSB:没有可用的后端

python - 安装 python-telegram-bot 时出现错误 "No package ' libffi' found

python - md5模块错误

Python PLY Lex 歧义

python - 在 Windows 上下文菜单中添加子菜单