3

PEGペーパーでは、2つのセマンティック述語解析式について説明しています。

  1. そして述語&e
  2. 述語ではありません!e

pyparsingはAnd述語をサポートしていますか?それとも、シーケンス解析式の同義語ですか?Andその場合、それはクラスと同等である必要があります。正しい?

NotNotAny述語を表しますか?

具体的には、仕様の動作に準拠していますか?

解析式foo&(bar)は、テキスト「foo」と一致して消費しますが、その後にテキスト「bar」が続く場合に限ります。解析式foo!(bar)は、テキスト「foo」と一致しますが、その後にテキスト「bar」が続かない場合に限ります。式!(a + b)aは、単一の「a」に一致しますが、これは、aの後にbが続く任意の長さのシーケンスの最初ではない場合に限ります。

4

1 に答える 1

3

PEG&と!述語は消費しない先読みであり、pyparsingのFollowedByとNotAnyに対応します。&は、「a + b」が入力文字列からa式とb式の両方の式のテキストを消費するという点でシーケンスとは異なりますが、「a&b」は「bが後に続く場合にのみaに一致しますが、bを消費しない」ことを意味します。

于 2011-04-27T14:56:15.777 に答える