Parser.MenhirInterpreterSourceinclude MenhirLib.IncrementalEngine.INCREMENTAL_ENGINE with type token = tokentype token = tokenval offer :
'a checkpoint ->
(token
* MenhirLib__IncrementalEngine.position
* MenhirLib__IncrementalEngine.position) ->
'a checkpointval resume : ?strategy:??? -> 'a checkpoint -> 'a checkpointtype supplier =
unit ->
token
* MenhirLib__IncrementalEngine.position
* MenhirLib__IncrementalEngine.positionval loop : ?strategy:??? -> supplier -> 'a checkpoint -> 'aval loop_handle :
('a -> 'answer) ->
('a checkpoint -> 'answer) ->
supplier ->
'a checkpoint ->
'answerval loop_handle_undo :
('a -> 'answer) ->
('a checkpoint -> 'a checkpoint -> 'answer) ->
supplier ->
'a checkpoint ->
'answerval shifts : 'a checkpoint -> 'a env optionval acceptable :
'a checkpoint ->
token ->
MenhirLib__IncrementalEngine.position ->
boolval number : 'a lr1state -> intval production_index : production -> intval find_production : int -> productionval current_state_number : 'a env -> intval positions :
'a env ->
MenhirLib__IncrementalEngine.position * MenhirLib__IncrementalEngine.positionval env_has_default_reduction : 'a env -> boolval state_has_default_reduction : 'a lr1state -> boolval force_reduction : production -> 'a env -> 'a envval input_needed : 'a env -> 'a checkpointtype _ terminal = | T_error : unit terminal| T_VOID : unit terminal| T_VARBIT : unit terminal| T_VALUE_SET : unit terminal| T_UNEXPECTED_TOKEN : Lang.Il.value terminal| T_TYPENAME : unit terminal| T_TYPEDEF : unit terminal| T_TYPE : unit terminal| T_TUPLE : unit terminal| T_TRUE : unit terminal| T_TRANSITION : unit terminal| T_THIS : unit terminal| T_TABLE : unit terminal| T_SWITCH : unit terminal| T_STRUCT : unit terminal| T_STRING_LITERAL : Lang.Il.value terminal| T_STRING : unit terminal| T_STATE : unit terminal| T_SHR_ASSIGN : unit terminal| T_SHL_ASSIGN : unit terminal| T_SHL : unit terminal| T_SEMICOLON : unit terminal| T_SELECT : unit terminal| T_R_PAREN : unit terminal| T_R_BRACKET : unit terminal| T_R_BRACE : unit terminal| T_R_ANGLE_SHIFT : unit terminal| T_R_ANGLE : unit terminal| T_RETURN : unit terminal| T_RANGE : unit terminal| T_QUESTION : unit terminal| T_PRIORITY : unit terminal| T_PRAGMA_END : unit terminal| T_PRAGMA : unit terminal| T_PLUS_SAT_ASSIGN : unit terminal| T_PLUS_SAT : unit terminal| T_PLUS_ASSIGN : unit terminal| T_PLUSPLUS : unit terminal| T_PLUSCOLON : unit terminal| T_PLUS : unit terminal| T_PARSER : unit terminal| T_PACKAGE : unit terminal| T_OUT : unit terminal| T_OR : unit terminal| T_NUMBER_INT : (Lang.Il.value * string) terminal| T_NUMBER : (Lang.Il.value * string) terminal| T_NOT : unit terminal| T_NE : unit terminal| T_NAME : Lang.Il.value terminal| T_MUL_ASSIGN : unit terminal| T_MUL : unit terminal| T_MOD_ASSIGN : unit terminal| T_MOD : unit terminal| T_MINUS_SAT_ASSIGN : unit terminal| T_MINUS_SAT : unit terminal| T_MINUS_ASSIGN : unit terminal| T_MINUS : unit terminal| T_MATCH_KIND : unit terminal| T_MASK : unit terminal| T_L_PAREN : unit terminal| T_L_BRACKET : unit terminal| T_L_BRACE : unit terminal| T_L_ANGLE_ARGS : unit terminal| T_L_ANGLE : unit terminal| T_LIST : unit terminal| T_LE : unit terminal| T_KEY : unit terminal| T_INVALID : unit terminal| T_INT : unit terminal| T_INOUT : unit terminal| T_IN : unit terminal| T_IF : unit terminal| T_IDENTIFIER : unit terminal| T_HEADER_UNION : unit terminal| T_HEADER : unit terminal| T_GE : unit terminal| T_FOR : unit terminal| T_FALSE : unit terminal| T_EXTERN : unit terminal| T_EXIT : unit terminal| T_ERROR : unit terminal| T_EQ : unit terminal| T_ENUM : unit terminal| T_ENTRIES : unit terminal| T_END : unit terminal| T_ELSE : unit terminal| T_DOTS : unit terminal| T_DOT : unit terminal| T_DONTCARE : unit terminal| T_DIV_ASSIGN : unit terminal| T_DIV : unit terminal| T_DEFAULT : unit terminal| T_CONTROL : unit terminal| T_CONTINUE : unit terminal| T_CONST : unit terminal| T_COMPLEMENT : unit terminal| T_COMMA : unit terminal| T_COLON : unit terminal| T_BREAK : unit terminal| T_BOOL : unit terminal| T_BIT_XOR_ASSIGN : unit terminal| T_BIT_XOR : unit terminal| T_BIT_OR_ASSIGN : unit terminal| T_BIT_OR : unit terminal| T_BIT_AND_ASSIGN : unit terminal| T_BIT_AND : unit terminal| T_BIT : unit terminal| T_AT : unit terminal| T_ASSIGN : unit terminal| T_APPLY : unit terminal| T_AND : unit terminal| T_ACTIONS : unit terminal| T_ACTION : unit terminal| T_ABSTRACT : unit terminaltype _ nonterminal = | N_variableDeclaration : Value.t nonterminal| N_valueSetType : Value.t nonterminal| N_valueSetDeclaration : Value.t nonterminal| N_typedefDeclaration : Value.t nonterminal| N_typedef : Value.t nonterminal| N_typeRef : Value.t nonterminal| N_typeParameterListOpt : Value.t nonterminal| N_typeParameterList : Value.t nonterminal| N_typeParameter : Value.t nonterminal| N_typeOrVoid : Value.t nonterminal| N_typeName : Value.t nonterminal| N_typeIdentifier : Value.t nonterminal| N_typeFieldList : Value.t nonterminal| N_typeField : Value.t nonterminal| N_typeDeclaration : Value.t nonterminal| N_typeArgumentList : Value.t nonterminal| N_typeArgument : Value.t nonterminal| N_tupleType : Value.t nonterminal| N_tupleKeysetExpression : Value.t nonterminal| N_transitionStatement : Value.t nonterminal| N_trailingCommaOpt : Value.t nonterminal| N_tablePropertyList : Value.t nonterminal| N_tableProperty : Value.t nonterminal| N_tableKeyList : Value.t nonterminal| N_tableKey : Value.t nonterminal| N_tableEntryPriority : Value.t nonterminal| N_tableEntryList : Value.t nonterminal| N_tableEntry : Value.t nonterminal| N_tableDeclaration : Value.t nonterminal| N_tableCustomName : Value.t nonterminal| N_tableActionReference : Value.t nonterminal| N_tableActionList : Value.t nonterminal| N_tableAction : Value.t nonterminal| N_switchStatement : Value.t nonterminal| N_switchLabel : Value.t nonterminal| N_switchCaseList : Value.t nonterminal| N_switchCase : Value.t nonterminal| N_structuredAnnotationBody : Value.t nonterminal| N_structTypeDeclaration : Value.t nonterminal| N_stringLiteral : Value.t nonterminal| N_statement : Value.t nonterminal| N_stateExpression : Value.t nonterminal| N_specializedType : Value.t nonterminal| N_simpleKeysetExpressionList : Value.t nonterminal| N_simpleKeysetExpression : Value.t nonterminal| N_set_parent_namespace : unit nonterminal| N_selectExpression : Value.t nonterminal| N_selectCaseList : Value.t nonterminal| N_selectCase : Value.t nonterminal| N_returnStatement : Value.t nonterminal| N_realTypeArgumentList : Value.t nonterminal| N_realTypeArgument : Value.t nonterminal| N_push_scope : unit nonterminal| N_push_name : Value.t nonterminal| N_push_externName : Value.t nonterminal| N_prefixedTypeName : Value.t nonterminal| N_prefixedNonTypeName : Value.t nonterminal| N_pop_scope : Context.namespace nonterminal| N_parserTypeDeclaration : Value.t nonterminal| N_parserStatement : Value.t nonterminal| N_parserStateList : Value.t nonterminal| N_parserState : Value.t nonterminal| N_parserLocalDeclarationList : Value.t nonterminal| N_parserLocalDeclaration : Value.t nonterminal| N_parserDeclaration : Value.t nonterminal| N_parserConditionalStatement : Value.t nonterminal| N_parserBlockStatement : Value.t nonterminal| N_parserBlockElementStatementList : Value.t nonterminal| N_parserBlockElementStatement : Value.t nonterminal| N_parameterList : Value.t nonterminal| N_parameter : Value.t nonterminal| N_packageTypeDeclaration : Value.t nonterminal| N_p4program : Value.t nonterminal| N_objectInitializer : Value.t nonterminal| N_objectDeclarationList : Value.t nonterminal| N_objectDeclaration : Value.t nonterminal| N_nonTypeName : Value.t nonterminal| N_nonEmptyParameterList : Value.t nonterminal| N_namedType : Value.t nonterminal| N_namedExpressionList : Value.t nonterminal| N_namedExpression : Value.t nonterminal| N_nameList : Value.t nonterminal| N_name : Value.t nonterminal| N_member : Value.t nonterminal| N_matchKindDeclaration : Value.t nonterminal| N_lvalue : Value.t nonterminal| N_listType : Value.t nonterminal| N_keysetExpression : Value.t nonterminal| N_integerLiteral : Value.t nonterminal| N_int : Value.t nonterminal| N_instantiation : Value.t nonterminal| N_initializerOpt : Value.t nonterminal| N_initialValue : Value.t nonterminal| N_identifier : Value.t nonterminal| N_headerUnionTypeDeclaration : Value.t nonterminal| N_headerTypeDeclaration : Value.t nonterminal| N_go_toplevel : unit nonterminal| N_go_local : unit nonterminal| N_functionPrototype : Value.t nonterminal| N_functionDeclaration : Value.t nonterminal| N_forUpdateStatementListNonEmpty : Value.t nonterminal| N_forUpdateStatementList : Value.t nonterminal| N_forUpdateStatement : Value.t nonterminal| N_forStatement : Value.t nonterminal| N_forInitStatementListNonEmpty : Value.t nonterminal| N_forInitStatementList : Value.t nonterminal| N_forInitStatement : Value.t nonterminal| N_forCollectionExpression : Value.t nonterminal| N_externObjectDeclaration : Value.t nonterminal| N_externName : Value.t nonterminal| N_externFunctionDeclaration : Value.t nonterminal| N_externDeclaration : Value.t nonterminal| N_externConstructorOrMethodPrototypeList : Value.t nonterminal| N_externConstructorOrMethodPrototype : Value.t nonterminal| N_expressionNonBrace : Value.t nonterminal| N_expressionList : Value.t nonterminal| N_expression : Value.t nonterminal| N_exitStatement : Value.t nonterminal| N_errorDeclaration : Value.t nonterminal| N_enumTypeDeclaration : Value.t nonterminal| N_emptyStatement : Value.t nonterminal| N_direction : Value.t nonterminal| N_directApplicationStatement : Value.t nonterminal| N_derivedTypeDeclaration : Value.t nonterminal| N_declarationList : Value.t nonterminal| N_declaration : Value.t nonterminal| N_controlTypeDeclaration : Value.t nonterminal| N_controlLocalDeclarationList : Value.t nonterminal| N_controlLocalDeclaration : Value.t nonterminal| N_controlDeclaration : Value.t nonterminal| N_controlBody : Value.t nonterminal| N_continueStatement : Value.t nonterminal| N_constructorParameterListOpt : Value.t nonterminal| N_constantDeclaration : Value.t nonterminal| N_constOpt : Value.t nonterminal| N_conditionalStatement : Value.t nonterminal| N_clear_parent_namespace : unit nonterminal| N_callStatement : Value.t nonterminal| N_breakStatement : Value.t nonterminal| N_blockStatement : Value.t nonterminal| N_blockElementStatementList : Value.t nonterminal| N_blockElementStatement : Value.t nonterminal| N_baseType : Value.t nonterminal| N_assignop : Value.t nonterminal| N_assignmentStatement : Value.t nonterminal| N_arrayType : Value.t nonterminal| N_argumentListNonEmpty : Value.t nonterminal| N_argumentList : Value.t nonterminal| N_argument : Value.t nonterminal| N_annotationToken : Value.t nonterminal| N_annotationListNonEmpty : Value.t nonterminal| N_annotationBody : Value.t nonterminal| N_annotation : Value.t nonterminal| N_actionDeclaration : Value.t nonterminalinclude 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 envtype item = production * intval compare_nonterminals : 'a nonterminal -> 'b nonterminal -> intval compare_productions : production -> production -> intval lhs : production -> xsymbolval rhs : production -> xsymbol listval nullable : 'a nonterminal -> boolval first : 'a nonterminal -> 'b terminal -> boolval foreach_terminal : (xsymbol -> 'a -> 'a) -> 'a -> 'aval foreach_terminal_but_error : (xsymbol -> 'a -> 'a) -> 'a -> 'a