模組 Stdlib.Parsing

module Parsing: Parsing

val symbol_start : unit -> int

symbol_startParsing.symbol_end 只能在文法規則的動作部分中呼叫。它們會傳回符合規則左側的字串偏移量:symbol_start() 會傳回第一個字元的偏移量;symbol_end() 會傳回最後一個字元之後的偏移量。檔案中的第一個字元的偏移量為 0。

val symbol_end : unit -> int

請參閱 Parsing.symbol_start

val rhs_start : int -> int

Parsing.symbol_startParsing.symbol_end 相同,但會傳回符合規則右側第 n 個項目的字串偏移量,其中 nrhs_startrhs_end 的整數參數。n 為 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

清空剖析器堆疊。在剖析函式傳回後立即呼叫它,以移除剖析器堆疊中所有指向在剖析期間由語意動作建立的結構的指標。這是可選的,但可以降低程式的記憶體需求。

exception Parse_error

當剖析器遇到語法錯誤時會引發此錯誤。也可以從文法規則的動作部分引發,以啟動錯誤恢復。

val set_trace : bool -> bool

控制為 ocamlyacc 產生的剖析器提供的除錯支援。在 Parsing.set_trace true 之後,執行剖析器的下推自動機會在標準輸出上列印其動作的追蹤 (讀取權杖、移位狀態、依規則縮減)。Parsing.set_trace false 會關閉此除錯追蹤。傳回的布林值是追蹤旗標的先前狀態。