コンテキスト
このライブラリにおいては、PEG_IContextを実装したクラスのインスタンスを指す。
コンテキストオブジェクトは、パースのための対象や、対象の現在の位置、キャッシュ等を保持する。また、PEG_Tokenパーサの動きを規定する。
予め用意されているPEG_IContextの実装クラスは以下の二種類。
- PEG_StringContext - 文字列を対象としたコンテキスト。多くの場合このコンテキストを使う。
- PEG_ArrayContext - 配列を対象としたコンテキスト。
これらのコンテキストは、各々のコンストラクタを利用する以外に、PEG::context()メソッドで生成できる。
<?php
PEG::context('abc') instanceof PEG_StringContext; // => true
PEG::context(array('a', 'b', 'c')) instanceof PEG_ArrayContext; // => true