module Parsing: Parsing
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
會關閉此除錯追蹤。傳回的布林值是追蹤旗標的先前狀態。