Parsing

このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

last mod. 2009-09-10 (木) 17:52:07

Chapter 20 標準ライブラリ

module Parsing: sig  end

ocamlyacc によって生成された構文解析器のランタイムライブラリです。


val symbol_start : unit -> int

symbol_start と Parsing.symbol_end は文法ルールの action で呼びます。 ルールにマッチした文字列全体の位置を返します。symbol_start() は先頭文字の位置を、symbol_end() は終端文字の位置に 1 足した位置を返します。ファイルの最初の文字は 0 です。

val symbol_end : unit -> int

Parsing.symbol_start を見てください。

val rhs_start : int -> int

Parsing.symbol_start と Parsing.symbol_end に同じですが、n 番目のルールにマッチした文字列の位置を返します。n は lhs_start や lhs_end の整数パラメータで、1 のとき最も左の項目になります。

val rhs_end : int -> int

Parsing.rhs_start を見てください。

val symbol_start_pos : unit -> Lexing.position

symbol_startと同じですが、オフセットの代わりpositionを返します。

val symbol_end_pos : unit -> Lexing.position

symbol_endと同じですが、オフセットの代わりにpositionを返します。

val rhs_start_pos : int -> Lexing.position

rhs_startと同じですが、オフセットの代わりにpositionを返します。

val rhs_end_pos : int -> Lexing.position

rhs_endと同じですが、オフセットの代わりにpositionを返します。

val clear_parser : unit -> unit

構文解析器のスタックを空にします。構文解析関数が帰ってきたあとで呼ぶと、構文解析中 action が生成した構造へのポインタを構文解析スタックから取り除きます。これは行わなくてもいいですが、行うとプログラムが必要とするメモリが減ります。

exception Parse_error

構文解析器が文法エラーを発見したら発生する例外です。文法ルールの action 部から発生してエラー回復を初期化することもできます。

val set_trace : bool -> bool

ocamlyaccの生成したパーサのデバッグ機能を操作します。Parsing.set_trace trueした後ではパーサを実行するプッシュダウンオートマトンがアクション(トークンの読み込み、状態のシフト、ルールのリデュース)を標準出力に出力します。Parsing.set_trace falseはデバッグトレースをオフにします。前回の状態が返されます。

新規 編集 添付