我有一个文件,行中有pythonStyleComments,例如:
def foo(): # declare
# Simple function
a = 0 # TODO: add random
return a
所以,我想在pyparsing中添加.ignore(pythonStyleComments),但要处理任何meta(比如TODO:)。我知道所有的元单词,所以我怎么能排除这些评论而不被忽视呢?在
也许将comment声明为“#”+Regex(),其中Regex是exclude meta words?或者pyparsing有更优雅的方法?在
我建议用多次传球来处理这个问题。首先,为TODO注释定义一个模式,并使用scanString定位所有这些实例。然后使用解析器运行第二个过程,并将TODO与您所定位的元素的位置进行匹配。在
或者(这是完全未测试的),尝试将一个解析操作附加到pythonStyleComment,然后像平常一样执行并调用分析器.忽略(Python评论)。如果有一个匹配,并且它与您的TODO格式匹配,则将关于该注释及其位置的信息保存到旁边。(我不确定被忽略的表达式是否能运行它们的解析操作,因此您可能不得不使用2次传递方法。)
我刚刚宣布
comment = Literal('#').suppress() + Optional(restOfLine)
然后将它作为可选的(注释)添加到每个语句的末尾,它可能出现在那里。 然后加上
所以它对我来说是完美的。在
相关问题 更多 >
编程相关推荐