AKA“添加根据解析器.parseAction到父解析树“
我尝试使用PyParsing(规则IMHO)解析PHP文件,其中函数定义用JavaDoc样式的注释进行了注释。原因是我想以一种可以用来生成客户机存根代码的方式存储类型信息。在
例如:/*
* @vo{$user=UserAccount}
*/
public function blah($user){ ......
现在,我已经能够编写一个解析器了,使用PyParser非常简单。但是,PyParser附带了一个内置的javaStyleComment令牌,我想重用它。因此,我解析了代码,然后尝试附加一个parseAction,这个操作将剥离出这些垃圾并运行一个子解析器(抱歉,不确定术语),并将结果附加到父解析树。在
我不知道怎么做。代码附在下面。顺便说一句,我可以很容易地编写我自己的javaStyleComment,但我想知道,是否可以将解析结果链接起来?在
再次抱歉,如果我的问题不简洁,我只是个新手。在
^{pr2}$
===更新
例如,我发现ParseResults有一个方法insert,它允许您扩充解析树,但仍然无法确定如何动态地进行。在
例如:title = oneOf("Mr Miss Sir Dr Madame")
aname = title + Group(Word(alphas) + Word(alphas))
res=aname.parseString("Mr Dave Young")
res
(['Mr', (['Dave', 'Young'], {})], {})
res.insert(3,3)
res
(['Mr', (['Dave', 'Young'], {}), 3], {})