Python PLY解析项目出现零次或多次 [英] Python PLY zero or more occurrences of a parsing item

查看:113
本文介绍了Python PLY解析项目出现零次或多次的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将Python与PLY一起使用来解析类似LISP的S表达式,并且在解析函数调用时可以有零个或多个参数.如何将其放入yacc代码中.到目前为止,这是我的功能:

I am using Python with PLY to parse LISP-like S-Expressions and when parsing a function call there can be zero or more arguments. How can I put this into the yacc code. This is my function so far:

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]".我该怎么办?

I need to replace "[EXPR]" with something that allows zero or more EXPR's. How can I do this?

推荐答案

这是怎么回事:

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

这篇关于Python PLY解析项目出现零次或多次的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆