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
val rhs_start : int -> int
与 Parsing.symbol_start
和 Parsing.symbol_end
相同,但返回与规则右侧第 n
个项目匹配的字符串的偏移量,其中 n
是 rhs_start
和 rhs_end
的整数参数。对于最左侧的项目,n
为 1。
val rhs_end : int -> int
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
关闭此调试跟踪。返回的布尔值是跟踪标志的前一个状态。