3

PEG论文描述了两种语义谓词解析表达式:

  1. 和谓词&e
  2. 非谓词!e

pyparsing 是否支持 And 谓词?或者这只是排序解析表达式的同义词?在这种情况下,它应该等同于And类。正确的?

是否NotAny代表 Not 谓词?

具体来说,它们是否符合规范的行为:

解析表达式 foo &(bar) 匹配并使用文本“foo”,但前提是它后面跟着文本“bar”。解析表达式 foo !(bar) 匹配文本“foo”,但前提是它后面没有文本“bar”。表达式 !(a+ b) a 匹配单个“a”,但前提是它不是 a 后跟 a b 的任意长序列中的第一个。

4

1 回答 1

3

PEG & 和 ! 谓词是不消耗的前瞻,对应于 pyparsing 的 FollowedBy 和 NotAny。& 与序列的不同之处在于“a + b”同时使用输入字符串中的 a 和 b 表达式的文本,但“a & b”表示“仅当 a 后跟 b 时才匹配,但不要使用 b”。

于 2011-04-27T14:56:15.777 回答