package diffast-langs-java-parsing

  1. Overview
  2. Docs
include MenhirLib.IncrementalEngine.INCREMENTAL_ENGINE with type token = token
type token = token
type production
type 'a env
type 'a checkpoint = private
  1. | InputNeeded of 'a env
  2. | Shifting of 'a env * 'a env * bool
  3. | AboutToReduce of 'a env * production
  4. | HandlingError of 'a env
  5. | Accepted of 'a
  6. | Rejected
type strategy = [
  1. | `Legacy
  2. | `Simplified
]
val resume : ?strategy:strategy -> 'a checkpoint -> 'a checkpoint
val lexer_lexbuf_to_supplier : (Lexing.lexbuf -> token) -> Lexing.lexbuf -> supplier
val loop : ?strategy:strategy -> supplier -> 'a checkpoint -> 'a
val loop_handle : ('a -> 'answer) -> ('a checkpoint -> 'answer) -> supplier -> 'a checkpoint -> 'answer
val loop_handle_undo : ('a -> 'answer) -> ('a checkpoint -> 'a checkpoint -> 'answer) -> supplier -> 'a checkpoint -> 'answer
val shifts : 'a checkpoint -> 'a env option
val acceptable : 'a checkpoint -> token -> MenhirLib.IncrementalEngine.position -> bool
type 'a lr1state
val number : _ lr1state -> int
val production_index : production -> int
val find_production : int -> production
val stack : 'a env -> stack
val top : 'a env -> element option
val pop_many : int -> 'a env -> 'a env option
val get : int -> 'a env -> element option
val current_state_number : 'a env -> int
val equal : 'a env -> 'a env -> bool
val env_has_default_reduction : 'a env -> bool
val state_has_default_reduction : _ lr1state -> bool
val pop : 'a env -> 'a env option
val force_reduction : production -> 'a env -> 'a env
val input_needed : 'a env -> 'a checkpoint
type _ nonterminal =
  1. | N_yield_statement : Ast.statement nonterminal
  2. | N_wildcard_3 : (Ast.wildcard * Lexing.position) nonterminal
  3. | N_wildcard_2 : (Ast.wildcard * Lexing.position) nonterminal
  4. | N_wildcard_1 : (Ast.wildcard * Lexing.position) nonterminal
  5. | N_wildcard : Ast.wildcard nonterminal
  6. | N_while_statement_no_short_if : Ast.statement nonterminal
  7. | N_while_statement : Ast.statement nonterminal
  8. | N_void : Ast.javatype nonterminal
  9. | N_variable_modifier : Ast.modifier nonterminal
  10. | N_variable_initializers : Ast.variable_initializer list nonterminal
  11. | N_variable_initializer : Ast.variable_initializer nonterminal
  12. | N_variable_declarator_id : Ast.variable_declarator_id nonterminal
  13. | N_variable_declarator : Ast.variable_declarator nonterminal
  14. | N_unary_pointcut_expr : Ast.pointcut_expr nonterminal
  15. | N_unary_expression_not_plus_minus_or_lambda_expression : Ast.left_hand_side nonterminal
  16. | N_unary_expression_not_plus_minus_nn : Ast.left_hand_side nonterminal
  17. | N_unary_expression_not_plus_minus : Ast.left_hand_side nonterminal
  18. | N_unary_expression_nn : Ast.left_hand_side nonterminal
  19. | N_unary_expression : Ast.left_hand_side nonterminal
  20. | N_unary_classname_pattern_expr : Ast.classname_pattern_expr nonterminal
  21. | N_unann_type : Ast.javatype nonterminal
  22. | N_unann_reference_type : Ast.javatype nonterminal
  23. | N_unann_primitive_type : Ast.javatype nonterminal
  24. | N_unann_class_or_interface_type_spec : (Ast.type_spec list * Ast.annotations * Ast.name) nonterminal
  25. | N_unann_class_or_interface_type : Ast.javatype nonterminal
  26. | N_unann_array_type : Ast.javatype nonterminal
  27. | N_type_variable : (Ast.annotations * string) nonterminal
  28. | N_type_parameters : Ast.type_parameters nonterminal
  29. | N_type_parameter_list_1 : Ast.type_parameter list nonterminal
  30. | N_type_parameter_list : Ast.type_parameter list nonterminal
  31. | N_type_parameter_1 : Ast.type_parameter nonterminal
  32. | N_type_parameter : Ast.type_parameter nonterminal
  33. | N_type_import_on_demand_declaration : Ast.import_declaration nonterminal
  34. | N_type_declaration : Ast.type_declaration nonterminal
  35. | N_type_bound_1 : Ast.type_bound nonterminal
  36. | N_type_bound : Ast.type_bound nonterminal
  37. | N_type_arguments : Ast.type_arguments nonterminal
  38. | N_type_argument_list_3 : Ast.type_argument list nonterminal
  39. | N_type_argument_list_2 : Ast.type_argument list nonterminal
  40. | N_type_argument_list_1 : Ast.type_argument list nonterminal
  41. | N_type_argument_list : Ast.type_argument list nonterminal
  42. | N_type_argument_3 : Ast.type_argument nonterminal
  43. | N_type_argument_2 : Ast.type_argument nonterminal
  44. | N_type_argument_1 : Ast.type_argument nonterminal
  45. | N_type_argument : Ast.type_argument nonterminal
  46. | N_try_statement : Ast.statement nonterminal
  47. | N_try_head : unit nonterminal
  48. | N_try_block : (Ast.resource_spec option * Ast.block) nonterminal
  49. | N_throws : Ast.throws nonterminal
  50. | N_throw_statement : Ast.statement nonterminal
  51. | N_this : Ast.loc nonterminal
  52. | N_synchronized_statement : Ast.statement nonterminal
  53. | N_switch_statement : Ast.statement nonterminal
  54. | N_switch_rules : Ast.switch_rule list nonterminal
  55. | N_switch_rule_label : Ast.switch_rule_label nonterminal
  56. | N_switch_rule : Ast.switch_rule nonterminal
  57. | N_switch_label : Ast.switch_label nonterminal
  58. | N_switch_expression : Ast.left_hand_side nonterminal
  59. | N_switch_block_statement_groups : Ast.switch_block_stmt_grp list nonterminal
  60. | N_switch_block_statement_group : Ast.switch_block_stmt_grp nonterminal
  61. | N_switch_block : Ast.switch_block nonterminal
  62. | N_super_ext : Ast.extends_class nonterminal
  63. | N_super : Ast.loc nonterminal
  64. | N_static_type_import_on_demand_declaration : Ast.import_declaration nonterminal
  65. | N_static_single_type_import_declaration : Ast.import_declaration nonterminal
  66. | N_static_initializer : Ast.class_body_declaration nonterminal
  67. | N_statement_without_trailing_substatement : Ast.statement nonterminal
  68. | N_statement_no_short_if : Ast.statement nonterminal
  69. | N_statement_expression : Ast.statement_expression nonterminal
  70. | N_statement : Ast.statement nonterminal
  71. | N_single_type_import_declaration : Ast.import_declaration nonterminal
  72. | N_single_element_annotation_body : Ast.annotation_desc nonterminal
  73. | N_simple_name_pattern : string nonterminal
  74. | N_simple_name : string nonterminal
  75. | N_shift_expression_nn : Ast.left_hand_side nonterminal
  76. | N_shift_expression : Ast.left_hand_side nonterminal
  77. | N_separated_nonempty_list_COMMA_variable_declarator_ : Ast.variable_declarators nonterminal
  78. | N_separated_nonempty_list_COMMA_statement_expression_ : Ast.statement_expression list nonterminal
  79. | N_separated_nonempty_list_COMMA_name_ : Ast.name list nonterminal
  80. | N_separated_nonempty_list_COMMA_module_name_ : Ast.module_name list nonterminal
  81. | N_separated_nonempty_list_COMMA_interface_type_ : Ast.javatype list nonterminal
  82. | N_separated_nonempty_list_COMMA_identifier_ : (Ast.loc * string) list nonterminal
  83. | N_separated_nonempty_list_COMMA_formal_parameter_ : Ast.formal_parameter list nonterminal
  84. | N_separated_nonempty_list_COMMA_expr_or_err_ : Ast.left_hand_side list nonterminal
  85. | N_separated_nonempty_list_COMMA_element_value_pair_ : Ast.element_value_pair list nonterminal
  86. | N_separated_nonempty_list_COMMA_element_value_ : Ast.element_value list nonterminal
  87. | N_separated_nonempty_list_COMMA_constant_expression_ : Ast.left_hand_side list nonterminal
  88. | N_separated_nonempty_list_COMMA_class_type_ : Ast.javatype list nonterminal
  89. | N_return_statement : Ast.statement nonterminal
  90. | N_resource_spec : Ast.resource_spec nonterminal
  91. | N_resource_list : Ast.resource list nonterminal
  92. | N_resource : Ast.resource nonterminal
  93. | N_reserved : unit nonterminal
  94. | N_requires_modifier : Ast.modifier nonterminal
  95. | N_relational_expression_nn : Ast.left_hand_side nonterminal
  96. | N_relational_expression : Ast.left_hand_side nonterminal
  97. | N_reference_type_3 : Ast.javatype nonterminal
  98. | N_reference_type_2 : Ast.javatype nonterminal
  99. | N_reference_type_1 : Ast.javatype nonterminal
  100. | N_record_header : Ast.formal_parameter list nonterminal
  101. | N_record_declaration_head1 : ((Ast.modifiers option * (Ast.loc * string)) * Ast.type_parameters option) nonterminal
  102. | N_record_declaration_head0 : (Ast.modifiers option * (Ast.loc * string)) nonterminal
  103. | N_record_declaration_head : Ast.record_declaration_head nonterminal
  104. | N_record_declaration : Ast.class_declaration nonterminal
  105. | N_record_body_declaration : Ast.record_body_declaration nonterminal
  106. | N_record_body : Ast.record_body nonterminal
  107. | N_primary_no_new_array : Ast.primary nonterminal
  108. | N_primary : Ast.primary nonterminal
  109. | N_pre_increment_expression : Ast.left_hand_side nonterminal
  110. | N_pre_decrement_expression : Ast.left_hand_side nonterminal
  111. | N_postfix_expression_nn : Ast.left_hand_side nonterminal
  112. | N_postfix_expression : Ast.left_hand_side nonterminal
  113. | N_post_increment_expression : Ast.left_hand_side nonterminal
  114. | N_post_decrement_expression : Ast.left_hand_side nonterminal
  115. | N_pointcut_expr : Ast.pointcut_expr nonterminal
  116. | N_pointcut_declaration : Ast.pointcut_declaration nonterminal
  117. | N_permits : Ast.permits nonterminal
  118. | N_pattern : Ast.local_variable_declaration nonterminal
  119. | N_partial_block_statement : Ast.block_statement nonterminal
  120. | N_partial_assert_statement : Ast.statement nonterminal
  121. | N_package_declaration : Ast.package_declaration nonterminal
  122. | N_or_pointcut_expr : Ast.pointcut_expr nonterminal
  123. | N_numeric_type : Ast.javatype nonterminal
  124. | N_normal_interface_declaration_head1 : ((Ast.modifiers option * string) * Ast.type_parameters option) nonterminal
  125. | N_normal_interface_declaration_head0 : (Ast.modifiers option * string) nonterminal
  126. | N_normal_interface_declaration_head : Ast.interface_declaration_head nonterminal
  127. | N_normal_interface_declaration : Ast.interface_declaration nonterminal
  128. | N_normal_annotation_body : Ast.annotation_desc nonterminal
  129. | N_nonempty_list_variable_modifier_ : Ast.modifier list nonterminal
  130. | N_nonempty_list_switch_label_ : Ast.switch_label list nonterminal
  131. | N_nonempty_list_element_value_comma_ : Ast.element_value list nonterminal
  132. | N_nonempty_list_catch_clause_ : Ast.catches nonterminal
  133. | N_nonempty_list_block_statement_ : Ast.block_statement list nonterminal
  134. | N_nonempty_list_annotation_or_modifier_ : Ast.modifier list nonterminal
  135. | N_nonempty_list_annotation_ : Ast.annotations nonterminal
  136. | N_nonempty_list_ann_dim_ : Ast.annot_dim list nonterminal
  137. | N_nonempty_list_additional_bound_ : Ast.additional_bound list nonterminal
  138. | N_name_pattern : string nonterminal
  139. | N_name : Ast.name nonterminal
  140. | N_multiplicative_expression_nn : Ast.left_hand_side nonterminal
  141. | N_multiplicative_expression : Ast.left_hand_side nonterminal
  142. | N_module_name : Ast.module_name nonterminal
  143. | N_module_directive : Ast.module_directive nonterminal
  144. | N_module_declaration_head : Ast.module_declaration_head nonterminal
  145. | N_module_declaration : Ast.module_declaration nonterminal
  146. | N_module_body : Ast.module_body nonterminal
  147. | N_modifiers : Ast.modifiers nonterminal
  148. | N_method_reference : Ast.method_reference nonterminal
  149. | N_method_invocation : Ast.method_invocation nonterminal
  150. | N_method_header : Ast.method_header nonterminal
  151. | N_method_declarator_head : ((Ast.loc * string) * Ast.loc) nonterminal
  152. | N_method_declarator : (((Ast.loc * string) * Ast.loc * Ast.formal_parameter list) * Ast.annot_dim list) nonterminal
  153. | N_method_declaration : Ast.class_body_declaration nonterminal
  154. | N_method_body : Ast.block option nonterminal
  155. | N_marker_annotation_body : Ast.annotation_desc nonterminal
  156. | N_main : Ast.compilation_unit nonterminal
  157. | N_loption_block_statements_ : Ast.block_statement list nonterminal
  158. | N_local_variable_declaration_statement : Ast.block_statement nonterminal
  159. | N_local_variable_declaration : Ast.local_variable_declaration nonterminal
  160. | N_literal : Ast.literal nonterminal
  161. | N_list_requires_modifier_ : Ast.modifier list nonterminal
  162. | N_list_record_body_declaration_ : Ast.record_body_declaration list nonterminal
  163. | N_list_module_directive_ : Ast.module_directive list nonterminal
  164. | N_list_interface_member_declaration_ : Ast.interface_member_declaration list nonterminal
  165. | N_list_class_body_declaration_ : Ast.class_body_declaration list nonterminal
  166. | N_list_annotation_type_member_declaration_ : Ast.annotation_type_member_declaration list nonterminal
  167. | N_lambda_parameters : Ast.lambda_params nonterminal
  168. | N_lambda_expression : Ast.left_hand_side nonterminal
  169. | N_lambda_e : Ast.left_hand_side nonterminal
  170. | N_lambda_body : Ast.lambda_body nonterminal
  171. | N_lambda_b : Ast.lambda_body nonterminal
  172. | N_labeled_statement_no_short_if : Ast.statement nonterminal
  173. | N_labeled_statement_head : string nonterminal
  174. | N_labeled_statement : Ast.statement nonterminal
  175. | N_javatype_vdid : Ast.formal_parameter nonterminal
  176. | N_interfaces : Ast.implements nonterminal
  177. | N_interface_method_declaration : Ast.interface_method_declaration nonterminal
  178. | N_interface_member_declaration : Ast.interface_member_declaration nonterminal
  179. | N_interface_declaration : Ast.interface_declaration nonterminal
  180. | N_interface_body : Ast.interface_body nonterminal
  181. | N_integral_type : Ast.primitive_type nonterminal
  182. | N_instanceof_expression_nn : Ast.left_hand_side nonterminal
  183. | N_instanceof_expression : Ast.left_hand_side nonterminal
  184. | N_instance_initializer : Ast.class_body_declaration nonterminal
  185. | N_inclusive_or_expression_nn : Ast.left_hand_side nonterminal
  186. | N_inclusive_or_expression : Ast.left_hand_side nonterminal
  187. | N_import_declaration : Ast.import_declaration nonterminal
  188. | N_if_then_statement : Ast.statement nonterminal
  189. | N_if_then_else_statement_no_short_if : Ast.statement nonterminal
  190. | N_if_then_else_statement : Ast.statement nonterminal
  191. | N_identifier : (Ast.loc * string) nonterminal
  192. | N_formal_parameter : Ast.formal_parameter nonterminal
  193. | N_for_update0 : Ast.statement_expression list nonterminal
  194. | N_for_update : Ast.statement_expression list nonterminal
  195. | N_for_statement_no_short_if : Ast.statement nonterminal
  196. | N_for_statement_head : unit nonterminal
  197. | N_for_statement : Ast.statement nonterminal
  198. | N_for_init_opt : Ast.for_init option nonterminal
  199. | N_for_init : Ast.for_init nonterminal
  200. | N_floating_point_type : Ast.primitive_type nonterminal
  201. | N_finally : Ast.finally nonterminal
  202. | N_field_declaration : Ast.field_declaration nonterminal
  203. | N_field_access : Ast.field_access nonterminal
  204. | N_extends_interfaces_opt : Ast.extends_interfaces option nonterminal
  205. | N_expression_statement : Ast.statement nonterminal
  206. | N_expression_opt : Ast.left_hand_side option nonterminal
  207. | N_expression_nn : Ast.left_hand_side nonterminal
  208. | N_expression : Ast.left_hand_side nonterminal
  209. | N_explicit_constructor_invocation : Ast.explicit_constructor_invocation nonterminal
  210. | N_exclusive_or_expression_nn : Ast.left_hand_side nonterminal
  211. | N_exclusive_or_expression : Ast.left_hand_side nonterminal
  212. | N_equality_expression_nn : Ast.left_hand_side nonterminal
  213. | N_equality_expression : Ast.left_hand_side nonterminal
  214. | N_enum_declaration_head0 : (Ast.modifiers option * (Ast.loc * string)) nonterminal
  215. | N_enum_declaration_head : Ast.class_declaration_head nonterminal
  216. | N_enum_declaration : Ast.class_declaration nonterminal
  217. | N_enum_constants : Ast.enum_constant list nonterminal
  218. | N_enum_constant_head : (Ast.loc * Ast.annotations * string * Ast.arguments option) nonterminal
  219. | N_enum_constant : Ast.enum_constant nonterminal
  220. | N_enum_body_declarations0 : Ast.class_body_declaration list nonterminal
  221. | N_enum_body : Ast.enum_body nonterminal
  222. | N_enhanced_for_statement_no_short_if : Ast.statement nonterminal
  223. | N_enhanced_for_statement : Ast.statement nonterminal
  224. | N_empty_statement : Ast.statement nonterminal
  225. | N_element_value_pair : Ast.element_value_pair nonterminal
  226. | N_element_value_array_initializer : Ast.element_value list nonterminal
  227. | N_element_value : Ast.element_value nonterminal
  228. | N_do_statement : Ast.statement nonterminal
  229. | N_dim_exprs : Ast.dim_expr list nonterminal
  230. | N_dim_expr : Ast.dim_expr nonterminal
  231. | N_default_value_opt : Ast.element_value option nonterminal
  232. | N_default_value : Ast.element_value nonterminal
  233. | N_declare_declaration : Ast.declare_declaration nonterminal
  234. | N_declarations : Ast.declaration list nonterminal
  235. | N_declaration : Ast.declaration nonterminal
  236. | N_continue_statement : Ast.statement nonterminal
  237. | N_constructor_declarator_head : (string * Ast.loc) nonterminal
  238. | N_constructor_declarator : (Ast.loc * string * Ast.loc * Ast.formal_parameter list) nonterminal
  239. | N_constructor_declaration : Ast.constructor_declaration nonterminal
  240. | N_constructor_body : Ast.constructor_body nonterminal
  241. | N_conditional_or_expression_nn : Ast.left_hand_side nonterminal
  242. | N_conditional_or_expression : Ast.left_hand_side nonterminal
  243. | N_conditional_expression_nn : Ast.left_hand_side nonterminal
  244. | N_conditional_expression : Ast.left_hand_side nonterminal
  245. | N_conditional_and_expression_nn : Ast.left_hand_side nonterminal
  246. | N_conditional_and_expression : Ast.left_hand_side nonterminal
  247. | N_compilation_unit : Ast.compilation_unit nonterminal
  248. | N_compact_constructor_declaration : Ast.compact_constructor_declaration nonterminal
  249. | N_classname_pattern_expr_list : Ast.classname_pattern_expr list nonterminal
  250. | N_classname_pattern_expr : Ast.classname_pattern_expr nonterminal
  251. | N_class_member_declaration : Ast.class_body_declaration nonterminal
  252. | N_class_instance_creation_head_qualified : (Ast.primary option * Ast.name option * Ast.type_arguments option) nonterminal
  253. | N_class_instance_creation_head : (Ast.type_arguments option * Ast.javatype) nonterminal
  254. | N_class_instance_creation_expression : Ast.class_instance_creation nonterminal
  255. | N_class_declaration_head1 : ((Ast.modifiers option * (Ast.loc * string)) * Ast.type_parameters option) nonterminal
  256. | N_class_declaration_head0 : (Ast.modifiers option * (Ast.loc * string)) nonterminal
  257. | N_class_declaration_head : Ast.class_declaration_head nonterminal
  258. | N_class_declaration : Ast.class_declaration nonterminal
  259. | N_class_body_declaration : Ast.class_body_declaration nonterminal
  260. | N_class_body : Ast.class_body nonterminal
  261. | N_catch_type : Ast.javatype list nonterminal
  262. | N_catch_formal_parameter : Ast.catch_formal_parameter nonterminal
  263. | N_catch_clause_header : unit nonterminal
  264. | N_catch_clause : Ast.catch nonterminal
  265. | N_cast_expression : Ast.left_hand_side nonterminal
  266. | N_break_statement : Ast.statement nonterminal
  267. | N_block_statement : Ast.block_statement nonterminal
  268. | N_block : Ast.block nonterminal
  269. | N_basic_pointcut_expr : Ast.pointcut_expr nonterminal
  270. | N_basic_classname_pattern_expr : Ast.classname_pattern_expr nonterminal
  271. | N_assignment_expression_nn : Ast.left_hand_side nonterminal
  272. | N_assignment_expression : Ast.left_hand_side nonterminal
  273. | N_assignment : Ast.assignment nonterminal
  274. | N_assert_statement : Ast.statement nonterminal
  275. | N_aspect_declaration_head0 : (Ast.modifiers option * (Ast.loc * string)) nonterminal
  276. | N_aspect_declaration_head : Ast.class_declaration_head nonterminal
  277. | N_aspect_declaration : Ast.class_declaration nonterminal
  278. | N_aspect_body_declarations : Ast.class_body_declaration list nonterminal
  279. | N_aspect_body_declaration : Ast.class_body_declaration nonterminal
  280. | N_aspect_body : Ast.aspect_body nonterminal
  281. | N_array_initializer : Ast.variable_initializer nonterminal
  282. | N_array_creation_noinit : Ast.array_creation_expression nonterminal
  283. | N_array_creation_init : Ast.array_creation_expression nonterminal
  284. | N_array_access : Ast.array_access nonterminal
  285. | N_annotations : Ast.annotations nonterminal
  286. | N_annotation_type_member_declaration : Ast.annotation_type_member_declaration nonterminal
  287. | N_annotation_type_declaration_head : Ast.interface_declaration_head nonterminal
  288. | N_annotation_type_declaration : Ast.interface_declaration nonterminal
  289. | N_annotation_type_body : Ast.annotation_type_body nonterminal
  290. | N_annotation_body : Ast.annotation_desc nonterminal
  291. | N_annotation : Ast.annotation nonterminal
  292. | N_ann_dims : Ast.annot_dim list nonterminal
  293. | N_ann_dim : Ast.annot_dim nonterminal
  294. | N_and_expression_nn : Ast.left_hand_side nonterminal
  295. | N_and_expression : Ast.left_hand_side nonterminal
  296. | N_and_classname_pattern_expr : Ast.classname_pattern_expr nonterminal
  297. | N_adhoc_modifier : Ast.modifier_desc nonterminal
  298. | N_additive_expression_nn : Ast.left_hand_side nonterminal
  299. | N_additive_expression : Ast.left_hand_side nonterminal
  300. | N_additional_bound_list_1 : Ast.additional_bound list nonterminal
  301. | N_additional_bound_list : Ast.additional_bound list nonterminal
  302. | N_additional_bound_1 : Ast.additional_bound nonterminal
  303. | N_additional_bound : Ast.additional_bound nonterminal
include MenhirLib.IncrementalEngine.INSPECTION with type 'a lr1state := 'a lr1state with type production := production with type 'a terminal := 'a terminal with type 'a nonterminal := 'a nonterminal with type 'a env := 'a env
include MenhirLib.IncrementalEngine.SYMBOLS with type 'a terminal := 'a terminal with type 'a nonterminal := 'a nonterminal
type 'a symbol =
  1. | T : 'a terminal -> 'a symbol
  2. | N : 'a nonterminal -> 'a symbol
type xsymbol =
  1. | X : 'a symbol -> xsymbol
type item = production * int
val compare_terminals : _ terminal -> _ terminal -> int
val compare_nonterminals : _ nonterminal -> _ nonterminal -> int
val compare_symbols : xsymbol -> xsymbol -> int
val compare_productions : production -> production -> int
val compare_items : item -> item -> int
val incoming_symbol : 'a lr1state -> 'a symbol
val items : _ lr1state -> item list
val lhs : production -> xsymbol
val rhs : production -> xsymbol list
val nullable : _ nonterminal -> bool
val first : _ nonterminal -> _ terminal -> bool
val xfirst : xsymbol -> _ terminal -> bool
val foreach_terminal : (xsymbol -> 'a -> 'a) -> 'a -> 'a
val foreach_terminal_but_error : (xsymbol -> 'a -> 'a) -> 'a -> 'a
OCaml

Innovation. Community. Security.