需要确认PEG在pyparsing中的语义谓词

时间:2011-04-27 14:01:33

标签: pyparsing peg

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

  1. 谓词&e
  2. 不是谓词!e
  3. pyparsing是否支持And谓词?或者这只是序列解析表达式的同义词?在这种情况下,它应该等同于And类。正确的吗?

    NotAny是否代表Not谓词?

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

      

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

1 个答案:

答案 0 :(得分:3)

PEG&而且!谓词是非消费的前瞻,对应于pyparsing的FollowedBy和NotAny。 &安培;不同于“a + b”从输入字符串中消耗a和b表达式文本的顺序,但是“a& b”表示“仅匹配a后跟b,BUT DO NOT CONSUME b”。

相关问题