gpt4 book ai didi

python - 使用 PyParsing 解析函数调用

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:17 24 4
gpt4 key购买 nike

我正在尝试解析一种简单的语言。麻烦来自解析函数调用。我试图告诉它函数调用是一个表达式,后跟左括号、参数列表和右括号。我有这样的东西:

expr = Forward()
iden = Word(alphas+'_', alphanums+'_')
integer = Word(nums)
binop = operatorPrecedence(expr, ...) # irrevelant
call = expr + Literal('(') + delimitedList(expr) + Literal(')')
expr << call | integer | iden

问题很明显:expr 是左递归的。但是,我不知道该怎么做才能解决这个问题。我对右递归式语法(又名 PLY、Yacc 等)很有经验,但我仍在尝试找出左递归语法。

最佳答案

Functionname = Word(alphanums + '_')
functionbody = Forward()
functionbody <<= Functionname + (Literal("(") +
Optional( delimitedList ( functionbody | Word(alphanums + '_') | "''"),'')
+ Literal(")"))

关于python - 使用 PyParsing 解析函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899845/

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