module Parsing:sig
..end
由 ocamlyacc
產生的解析器之執行時期函式庫。
val symbol_start : unit -> int
symbol_start
和 Parsing.symbol_end
只能在文法規則的動作部分中呼叫。它們會回傳符合規則左側字串的偏移量:symbol_start()
會回傳第一個字元的偏移量;symbol_end()
會回傳最後一個字元之後的偏移量。檔案中的第一個字元的偏移量為 0。
val symbol_end : unit -> int
請參閱 Parsing.symbol_start
。
val rhs_start : int -> int
與 Parsing.symbol_start
和 Parsing.symbol_end
相同,但會回傳符合規則右側第 n
個項目的字串偏移量,其中 n
是 rhs_start
和 rhs_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
會關閉此偵錯追蹤。回傳的布林值是追蹤旗標的先前狀態。