シェブロテインは、ユーザーのパーザークラスのコンストラクタ内での自己分析実行関数呼び出しにより、GAST〈Grammar AST | ガスト〉を作る。ガストを作るときに、パーザー関数を呼び出す。この作業工程をレコーディングフェーズと呼ぶ。
レコーディングフェーズでは副作用や例外が出るとダメなので、パーザー関数でゴチャゴチャしているときは、フラグ this.RECORDING_PHASE を見て調整する。
// ... public calc = this.RULE("calc", () => { this.SUBRULE(this.expr); if (! this.RECORDING_PHASE) { // 計算器の初期化処理 } }); // ...