我正在使用 OMeta 和 Python Parsley ( http://parsley.readthedocs.org/ ) 进行解析。有没有办法访问特定规则匹配的字符串?
例如,考虑以下代码:
In [1]: import parsley
In [2]: g = parsley.makeGrammar('addr = <digit+>:num ws <anything+>:street -> {"num": num, "street": street}', {})
In [3]: g('15032 La Cuarta St.').addr()
Out[3]: {'num': '15032', 'street': 'La Cuarta St.'}
我正在寻找一种方法来引用整个匹配以返回如下内容:
{'match': '15032 La Cuarta St.', 'num': '15032', 'street': 'La Cuarta St.'}
以下代码适用于此目的:
g = parsley.makeGrammar('addr = <<digit+>:num ws <anything+>:street>:match -> {"num": num, "street": street, "match": match}', {})
但是,我有数百条规则,我想避免包装每一条。