PEG论文描述了两种语义谓词解析表达式:
&e
!e
pyparsing是否支持And谓词?或者这只是序列解析表达式的同义词?在这种情况下,它应该等同于And
类。正确的吗?
NotAny
是否代表Not谓词?
具体来说,它们符合规范的行为:
解析表达式foo&(bar)匹配并使用文本“foo”,但前后只有文本“bar”。解析表达式foo!(bar)匹配文本“foo”,但前提是它后面没有文本“bar”。表达式!(a + b)a匹配单个“a”,但前提是它不是a的任意长序列中的第一个,后跟b。
答案 0 :(得分:3)
PEG&而且!谓词是非消费的前瞻,对应于pyparsing的FollowedBy和NotAny。 &安培;不同于“a + b”从输入字符串中消耗a和b表达式文本的顺序,但是“a& b”表示“仅匹配a后跟b,BUT DO NOT CONSUME b”。