Module Surface.Parser_state

Our parser crosses the bounds of LR parsing for two features:

for these purposes we maintain a little bit of state and contained side-effects.

type t
val with_state : (Sedlexing.lexbuf -> 'a) -> Sedlexing.lexbuf -> 'a

Mandatory wrapper around parser calls

val new_heading : (string * string option * bool * int) -> (Stdlib.Lexing.position * Stdlib.Lexing.position) -> Ast.law_heading
val get_current_heading : unit -> string list