parser.rb


Parserクラス

Raccの生成するパーサはすべてParserクラスを継承しています。 Parserクラスにはパース中に使用するメソッドがいくつかあり、 そのようなメソッドをオーバーロードすると、パーサの初期化などができます。

逆に言えば、これらのメソッドを変に再定義すると挙動がおかしく なりますので注意してください。

ファイル

racc/parser.rb

スーパークラス

Object

メソッド

next_token (abstract)
パーサが次のトークンを読みこむ時に使います。[トークンシンボル,その値] の形式の配列を返してください。トークンシンボルの値は、デフォルトでは です。これを変更する方法については、 文法リファレンスを参照してください。

また、もう送るシンボルがなくなったときには、[false,false] を返すように してください。これを忘れるとわけのわからないパースエラーになります。

また、このメソッドは抽象メソッドなので、必ず下位クラスで再定義する 必要があります。定義しないままパースを始めると例外が発生します。

on_error( err_simbol, err_value, _tokens, _values, _states )
パースエラーが起きたとき、よびだされます。 適切にエラー処理するなり、例外を発生するなりしてください。 このメソッドからもどったあとは、パーサは何事もなかったように パースを継続します。
引数は、err_simbol がパースエラーをおこしたシンボルトークン、 err_value がその値、残りはアクションで渡されるものと同じです。

デフォルトでは、例外ParseErrorを発生します。

定数

以下にあげる定数はパーサの予約定数です。 これらの定数は使わないでください。パース不可能になります。
LR_action_table
LALR行動表
LR_goto_table
LALR遷移表
Shift
シフトアクション
Accept
受理を示すアクション
Default
先読みのデフォルトトークン

Copyright(c) 1998-1999 Minero Aoki <aamine@dp.u-netsurf.ne.jp>