MenhirSdk.Cmly_formattype attributes = attribute listtype terminal_def = {t_name : string;t_kind : [ `EOF | `ERROR | `PSEUDO | `REGULAR ];t_type : ocamltype option;t_attributes : attributes;}type nonterminal_def = {n_name : string;n_kind : [ `REGULAR | `START ];n_mangled_name : string;n_type : ocamltype option;n_positions : range list;n_nullable : bool;n_first : terminal list;n_attributes : attributes;}type producer_def = symbol * identifier * attributestype production_def = {p_kind : [ `REGULAR | `START ];p_lhs : nonterminal;p_rhs : producer_def array;p_positions : range list;p_action : action option;p_attributes : attributes;}type lr1_state_def = {lr1_lr0 : lr0;lr1_transitions : (symbol * lr1) list;lr1_reductions : (terminal * production) list;lr1_default_reduction : production option;}type grammar = {g_basename : string;g_preludes : string list;g_postludes : string list;g_terminals : terminal_def array;g_nonterminals : nonterminal_def array;g_productions : production_def array;g_lr0_states : lr0_state_def array;g_lr1_states : lr1_state_def array;g_entry_points : (nonterminal * production * lr1) list;g_attributes : attributes;g_parameters : string list;}