模組函式 (TT : TableFormat.TABLES)
(IT : sig
type 'a 終端符號
type 'a 非終端符號
type 'a 符號 =
T : 'a 終端符號 -> 'a 符號
| N : 'a 非終端符號 -> 'a 符號
type xsymbol = X : 'a 符號 -> xsymbol
type 'a lr1狀態 = int
val 終端符號 : int -> xsymbol
val 非終端符號 : int -> xsymbol
val rhs : PackedIntArray.t * PackedIntArray.t
val lr0_核心 : PackedIntArray.t
val lr0_項目 : PackedIntArray.t * PackedIntArray.t
val lr0_進入 : PackedIntArray.t
val 可為空值 : string
val first : int * string
end)
(ET : sig
type 狀態
val 編號 : 狀態 -> int
type 語彙單元
type 終端符號 = int
type 非終端符號 = int
type 語意值 = Obj.t
val 語彙單元轉終端符號 : 語彙單元 -> 終端符號
val 語彙單元轉值 : 語彙單元 -> 語意值
val 錯誤終端符號 : 終端符號
val 錯誤值 : 語意值
val 對每個終端符號執行 : (終端符號 -> 'a -> 'a) -> 'a -> 'a
type 產生式
val 產生式索引 : 產生式 -> int
val 尋找產生式 : int -> 產生式
val 預設歸約
狀態 ->
('env -> 產生式 -> 'answer) ->
('env -> 'answer) -> 'env -> 'answer
val 動作
狀態 ->
終端符號 ->
語意值 ->
('env -> bool -> 終端符號 -> 語意值 -> 狀態 -> 'answer) ->
('env -> 產生式 -> 'answer) ->
('env -> 'answer) -> 'env -> 'answer
val goto_nt : 狀態 -> 非終端符號 -> 狀態
val goto_prod : 狀態 -> 產生式 -> 狀態
val maybe_goto_nt : 狀態 -> 非終端符號 -> 狀態 選項
val 是開始符號 : 產生式 -> bool
exception 錯誤
type 語意動作 =
(狀態, 語意值, 語彙單元) EngineTypes.env ->
(狀態, 語意值) EngineTypes.stack
val 語意動作 : 產生式 -> 語意動作
val 可能歸約 : 狀態 -> 產生式 -> bool
val 日誌記錄 : bool
模組 Log
sig
val 狀態 : 狀態 -> unit
val 移位 : 終端符號 -> 狀態 -> unit
val 歸約或接受 : 產生式 -> unit
val 前瞻語彙單元
終端符號 -> Lexing.position -> Lexing.position -> unit
val 啟動錯誤處理 : unit -> unit
val 恢復錯誤處理 : unit -> unit
val 處理錯誤 : 狀態 -> unit
end
end)
(E : sig
type 'a 環境 =
(ET.狀態, ET.語意值, ET.語彙單元)
CamlinternalMenhirLib.EngineTypes.env
end)
->
sig
type 'a 符號 =
T : 'a IT.終端符號 -> 'a 符號
| N : 'a IT.非終端符號 -> 'a 符號
type xsymbol = X : 'a 符號 -> xsymbol
type 項目 = int * int
val 比較終端符號 : 'a IT.終端符號 -> 'b IT.終端符號 -> int
val 比較非終端符號 : 'a IT.非終端符號 -> 'b IT.非終端符號 -> int
val 比較符號 : xsymbol -> xsymbol -> int
val 比較產生式 : int -> int -> int
val 比較項目 : 項目 -> 項目 -> int
val 進入符號 : 'a IT.lr1狀態 -> 'a 符號
val 項目 : 'a IT.lr1狀態 -> 項目 list
val lhs : int -> xsymbol
val rhs : int -> xsymbol list
val 可為空值 : 'a IT.非終端符號 -> bool
val first : 'a IT.非終端符號 -> 'b IT.終端符號 -> bool
val xfirst : xsymbol -> 'a IT.終端符號 -> bool
val 對每個終端符號執行 : (xsymbol -> 'a -> 'a) -> 'a -> 'a
val 對每個終端符號執行,但錯誤除外 : (xsymbol -> 'a -> 'a) -> 'a -> 'a
val 提供
'a 符號 ->
IncrementalEngine.position ->
'a -> IncrementalEngine.position -> 'b E.環境 -> 'b E.環境
end