PyParsing:如何解析函数调用并将其作为字符串返回

PyParsing: how to parse a function call and returning it as string

来自 here 我有这段代码来解析函数调用:

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

但是,调用时:

result = functionBody.parseString('function(param1,param2,param3)')

我得到了这个结果:

['function', '(', 'param1', 'param2', 'param3', ')']

有没有办法得到这个结果:

['function(param1, param2, param3)']

也就是说:解析函数调用写的很好,但是没有用Pythonjoin句,而是以字符串的形式返回,而不是以数组的形式返回?

我感谢 PaulMcG 先生,因为他在评论中给出了三个可能的答案,但我正在为可能也需要它的人发布一个解决方案。 originalTextFor 对我有用:

functionName = Word(alphanums + '_')
functionBody = Forward()
functionBody <<= originalTextFor(functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")")))

现在返回:

['function(param1,param2,param3)']