部分適用の無いHOPEG(高階PEG)の表現力はFOPEG(一階PEG)と同じ?
- 規則の数は有限である。
- 規則の各パラメタについて、それが規則を受け取るのかどうかは決定可能。
例:
Foo(f, x) = f(x); Bar(g, x) = Foo(g, x)
ならfとgはルールでないといけない。 - よって、全てのルールを展開すればルールを受け取るパラメタを消せる。
例:
Foo(f, x) = 'd' f(f, x); Bar(f, x) = 'c' / 'a' Foo(f, 'a' x) Foo(f, 'b' x);