規則が左側に、非終端記号の右側に 1 つ (または複数) の終端記号を持つことを許可する、文脈自由文法への次の拡張を検討してください。つまり、次の形式の規則です。
A b -> ...
右辺は、文脈自由文法のように、何でもかまいません。特に、右側が最後にまったく同じ終端記号を持つ必要はありません。その場合、この拡張機能は状況依存になります。しかし、端末は単なるコンテキストではありません。時々、この端末は「プッシュバック」と呼ばれます。
明らかに、これはもはや CFG (タイプ 2) ではありません。1型を含みます。しかし、それは何ですか?本当にもう0型?
この特定の拡張は、Prologの Definite Clause Grammars dcgで許可されています。(誤解を避けるために、ここでは Prolog の完全な拡張を考慮しません。つまり、端子は有限のアルファベットに由来し、恣意的な項ではないと仮定します。また、DCG で許可されている Prolog の追加の引数も考慮しません。すでに 0 です。)
編集: 拡張機能を説明する簡単な方法を次に示します: フォームの CFG ルールに追加します。
A b -> <epsilon>