123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503openParseropenParser.MenhirInterpreterletstring_of_token=function|XOR->"XOR"|WITH->"WITH"|WITH_METADATA->"WITH_METADATA"|WHILE->"WHILE"|WHEN->"WHEN"|VIEW->"VIEW"|VARIABLE->"VARIABLE"|VAR->"VAR"|UTZn->Printf.sprintf"UTZ(%s)"n|USE->"USE"|UNPACK->"UNPACK"|UNMOVED->"UNMOVED"|UNIT->"UNIT"|UNDERSCORE->"UNDERSCORE"|TZn->Printf.sprintf"TZ(%s)"n|TYPE->"TYPE"|TRUE->"TRUE"|TRANSITION->"TRANSITION"|TRANSFER->"TRANSFER"|TO->"TO"|TICKET->"TICKET"|THEN->"THEN"|STRINGs->Printf.sprintf"STRING(%s)"s|STRING_EXTs->Printf.sprintf"STRING_EXT(%s)"s|STATES->"STATES"|STATE_IS->"STATE_IS"|SPECIFICATION->"SPECIFICATION"|SOURCED->"SOURCED"|SORTED->"SORTED"|SOME->"SOME"|SLASHPERCENT->"SLASHPERCENT"|SLASH->"SLASH"|SHADOW->"SHADOW"|SET->"SET"|SEMI_COLON->"SEMI_COLON"|SELF->"SELF"|SECURITY->"SECURITY"|SAPLING_TRANSACTION->"SAPLING_TRANSACTION"|SAPLING_STATE->"SAPLING_STATE"|RPAREN->"RPAREN"|RIGHT->"RIGHT"|RETURN->"RETURN"|REQUIRE_ENTRYPOINT->"REQUIRE_ENTRYPOINT"|REQUIRE->"REQUIRE"|REMOVED->"REMOVED"|REFUSE_TRANSFER->"REFUSE_TRANSFER"|REF->"REF"|RECORD->"RECORD"|RBRACKET->"RBRACKET"|RBRACE->"RBRACE"|PREDICATE->"PREDICATE"|POSTCONDITION->"POSTCONDITION"|PLUSEQUAL->"PLUSEQUAL"|PLUS->"PLUS"|PKEY->"PKEY"|PIPEEQUAL->"OREQUAL"|PIPE_GREATER_GREATER->"PIPE_GREATER_GREATER"|PIPE->"PIPE"|PIDENTs->Printf.sprintf"PIDENT(%s)"s|PERCENTRBRACKET->"PERCENTRBRACKET"|PERCENT_LITn->Printf.sprintf"PERCENT_LIT(%s)"n|PERCENT->"PERCENT"|PARTITION->"PARTITION"|OTHERWISE->"OTHERWISE"|OR->"OR"|OPTION->"OPTION"|ON->"ON"|NUMBERNATn->Printf.sprintf"NUMBERNAT(%s)"(Big_int.string_of_big_intn)|NUMBERINTn->Printf.sprintf"NUMBERINT(%s)"(Big_int.string_of_big_intn)|NOT->"NOT"|NONE->"NONE"|NEQUAL->"NEQUAL"|NAMESPACE->"NAMESPACE"|MULTEQUAL->"MULTEQUAL"|MULT->"MULT"|MTZn->Printf.sprintf"MTZ(%s)"n|MINUSEQUAL->"MINUSEQUAL"|MINUS->"MINUS"|MATCH->"MATCH"|MAP->"MAP"|LPAREN->"LPAREN"|LIST->"LIST"|LET->"LET"|LESSEQUAL->"LESSEQUAL"|LESS_LESS_PIPE->"LESS_LESS_PIPE"|LESS_EQUAL_GREATER->"LESS_EQUAL_GREATER"|LESS->"LESS"|LEFT->"LEFT"|LBRACKETPERCENT->"LBRACKETPERCENT"|LBRACKET->"LBRACKET"|LBRACE->"LBRACE"|LAMBDA->"LAMBDA"|LABEL->"LABEL"|ITER->"ITER"|INVARIANT->"INVARIANT"|INVALID_EXPR->"INVALID_EXPR"|INVALID_EFFECT->"INVALID_EFFECT"|INVALID_DECL->"INVALID_DECL"|INITIALIZED->"INITIALIZED"|INITIAL->"INITIAL"|IN->"IN"|IMPLY->"IMPLY"|IF->"IF"|IDENTIFIED->"IDENTIFIED"|IDENTs->Printf.sprintf"IDENT(%s)"s|GREATEREQUAL->"GREATEREQUAL"|GREATER->"GREATER"|GETTER->"GETTER"|FUNCTION->"FUNCTION"|FROM->"FROM"|FORALL->"FORALL"|FOR->"FOR"|FOLD->"FOLD"|FALSE->"FALSE"|FAILS->"FAILS"|FAILIF->"FAILIF"|FAIL->"FAIL"|EXTENSION->"EXTENSION"|EXISTS->"EXISTS"|EVENT->"EVENT"|EQUIV->"EQUIV"|EQUAL->"EQUAL"|EOF->"EOF"|EMIT->"EMIT"|EMPTYLIST->"EMPTYLIST"|ENUM->"ENUM"|ENTRYPOINT->"ENTRYPOINT"|ENTRY->"ENTRY"|END->"END"|ELSE->"ELSE"|EFFECT->"EFFECT"|DURATIONs->Printf.sprintf"DURATION(%s)"s|DOT->"DOT"|DOREQUIRE->"DOREQUIRE"|DONE->"DONE"|DOFAILIF->"DOFAILIF"|DO->"DO"|DIVEQUAL->"DIVEQUAL"|DIV->"DIV"|DEFINITION->"DEFINITION"|DECIMALs->Printf.sprintf"DECIMAL(%s)"s|DATEs->Printf.sprintf"DATE(%s)"s|CONTRACT->"CONTRACT"|CONSTANT->"CONSTANT"|CONST->"CONST"|COMMA->"COMMA"|COLONEQUAL->"COLONEQUAL"|COLONCOLON->"COLONCOLON"|COLON->"COLON"|CALLVIEW->"CALLVIEW"|CALLED->"CALLED"|CALL->"CALL"|BYTESs->Printf.sprintf"BYTES(%s)"s|BY->"BY"|BUT->"BUT"|BIG_MAP->"BIG_MAP"|BEGIN->"BEGIN"|BEFORE->"BEFORE"|AT_UPDATE->"AT_UPDATE"|AT_REMOVE->"AT_REMOVE"|AT_ADD->"AT_ADD"|AT->"AT"|ASSET->"ASSET"|ASSERT->"ASSERT"|AS->"AS"|ARCHETYPE->"ARCHETYPE"|ANY->"ANY"|AND->"AND"|AMPEQUAL->"AMPEQUAL"|AGGREGATE->"AGGREGATE"|ADDRESSs->Printf.sprintf"DURATION(%s)"s|ADDED->"ADDED"|ACCEPT_TRANSFER->"ACCEPT_TRANSFER"letstring_of_symbol=function|X(TT_XOR)->"xor"|X(TT_WITH)->"with"|X(TT_WITH_METADATA)->"with metadata"|X(TT_WHILE)->"while"|X(TT_WHEN)->"when"|X(TT_VIEW)->"view"|X(TT_VARIABLE)->"variable"|X(TT_VAR)->"var"|X(TT_UTZ)->"a utz"|X(TT_USE)->"use"|X(TT_UNPACK)->"unpack"|X(TT_UNMOVED)->"unmoved"|X(TT_UNIT)->"Unit"|X(TT_UNDERSCORE)->"_"|X(TT_TZ)->"a tz"|X(TT_TYPE)->"a type"|X(TT_TRUE)->"true"|X(TT_TRANSITION)->"transition"|X(TT_TRANSFER)->"transfer"|X(TT_TO)->"to"|X(TT_TICKET)->"ticket"|X(TT_THEN)->"then"|X(TT_STRING)->"a string"|X(TT_STRING_EXT)->"a string ext"|X(TT_STATES)->"states"|X(TT_STATE_IS)->"state is"|X(TT_SPECIFICATION)->"postcondition"|X(TT_SOURCED)->"sourced"|X(TT_SORTED)->"sorted"|X(TT_SOME)->"some"|X(TT_SLASHPERCENT)->"slashpercent"|X(TT_SLASH)->"slash"|X(TT_SHADOW)->"shadow"|X(TT_SET)->"set"|X(TT_SEMI_COLON)->";"|X(TT_SELF)->"self"|X(TT_SECURITY)->"security"|X(TT_SAPLING_TRANSACTION)->"sapling_transaction"|X(TT_SAPLING_STATE)->"sapling_state"|X(TT_RPAREN)->")"|X(TT_RIGHT)->"right"|X(TT_RETURN)->"return"|X(TT_REQUIRE)->"require"|X(TT_REQUIRE_ENTRYPOINT)->"require_entrypoint"|X(TT_REMOVED)->"removed"|X(TT_REFUSE_TRANSFER)->"refuse transfer"|X(TT_REF)->"ref"|X(TT_RECORD)->"record"|X(TT_RBRACKET)->"]"|X(TT_RBRACE)->"}"|X(TT_PREDICATE)->"predicate"|X(TT_POSTCONDITION)->"postcondition"|X(TT_PLUSEQUAL)->"+="|X(TT_PLUS)->"+"|X(TT_PKEY)->"pkey"|X(TT_PIPEEQUAL)->"|="|X(TT_PIPE)->"|"|X(TT_PIPE_GREATER_GREATER)->"|>>"|X(TT_PIDENT)->"an pident"|X(TT_PERCENTRBRACKET)->"%]"|X(TT_PERCENT)->"%"|X(TT_PERCENT_LIT)->"a literal percent"|X(TT_PARTITION)->"partition"|X(TT_OTHERWISE)->"otherwise"|X(TT_OR)->"or"|X(TT_OPTION)->"option"|X(TT_ON)->"on"|X(TT_NUMBERNAT)->"a nat number"|X(TT_NUMBERINT)->"a int number"|X(TT_NOT)->"not"|X(TT_NONE)->"none"|X(TT_NEQUAL)->"<>"|X(TT_NAMESPACE)->"namespace"|X(TT_MULTEQUAL)->"*="|X(TT_MULT)->"*"|X(TT_MTZ)->"a mtz"|X(TT_MINUSEQUAL)->"-="|X(TT_MINUS)->"-"|X(TT_MATCH)->"match"|X(TT_MAP)->"map"|X(TT_LPAREN)->"("|X(TT_LIST)->"list"|X(TT_LET)->"let"|X(TT_LESSEQUAL)->"<="|X(TT_LESS)->"<"|X(TT_LESS_LESS_PIPE)->"<<|"|X(TT_LESS_EQUAL_GREATER)->"<=>"|X(TT_LEFT)->"left"|X(TT_LBRACKETPERCENT)->"[%"|X(TT_LBRACKET)->"["|X(TT_LBRACE)->"{"|X(TT_LAMBDA)->"lambda"|X(TT_LABEL)->"label"|X(TT_ITER)->"iter"|X(TT_INVARIANT)->"invariant"|X(TT_INVALID_EXPR)->"invalid-expression"|X(TT_INVALID_EFFECT)->"invalid-effect"|X(TT_INVALID_DECL)->"invalid-declaration"|X(TT_INITIALIZED)->"initialized"|X(TT_INITIAL)->"initial"|X(TT_IN)->"in"|X(TT_IMPLY)->"->"|X(TT_IF)->"if"|X(TT_IDENTIFIED)->"identified"|X(TT_IDENT)->"an ident"|X(TT_GREATEREQUAL)->">="|X(TT_GREATER)->">"|X(TT_GETTER)->"getter"|X(TT_FUNCTION)->"function"|X(TT_FROM)->"from"|X(TT_FORALL)->"forall"|X(TT_FOR)->"for"|X(TT_FOLD)->"fold"|X(TT_FALSE)->"false"|X(TT_FAILS)->"fails"|X(TT_FAILIF)->"failif"|X(TT_FAIL)->"fail"|X(TT_EXTENSION)->"extension"|X(TT_EXISTS)->"exists"|X(TT_EVENT)->"event"|X(TT_error)->"error"|X(TT_EQUIV)->"<->"|X(TT_EQUAL)->"="|X(TT_EOF)->"end-of-file"|X(TT_ENUM)->"enum"|X(TT_ENTRYPOINT)->"entrypoint"|X(TT_ENTRY)->"entry"|X(TT_END)->"end"|X(TT_EMPTYLIST)->"emptylist"|X(TT_EMIT)->"emit"|X(TT_ELSE)->"else"|X(TT_EFFECT)->"effect"|X(TT_DURATION)->"duration"|X(TT_DOT)->"."|X(TT_DOREQUIRE)->"dorequire"|X(TT_DONE)->"done"|X(TT_DOFAILIF)->"dofailif"|X(TT_DO)->"do"|X(TT_DIVEQUAL)->"/="|X(TT_DIV)->"/"|X(TT_DEFINITION)->"definition"|X(TT_DECIMAL)->"decimal"|X(TT_DATE)->"a date"|X(TT_CONTRACT)->"contract"|X(TT_CONSTANT)->"constant"|X(TT_CONST)->"const"|X(TT_COMMA)->","|X(TT_COLONEQUAL)->":="|X(TT_COLONCOLON)->"::"|X(TT_COLON)->":"|X(TT_CALLVIEW)->"callview"|X(TT_CALLED)->"called"|X(TT_CALL)->"call"|X(TT_BYTES)->"bytes"|X(TT_BY)->"by"|X(TT_BUT)->"but"|X(TT_BIG_MAP)->"big_map"|X(TT_BEGIN)->"begin"|X(TT_BEFORE)->"before"|X(TT_AT)->"at"|X(TT_AT_UPDATE)->"@update"|X(TT_AT_REMOVE)->"@remove"|X(TT_AT_ADD)->"@add"|X(TT_ASSET)->"asset"|X(TT_ASSERT)->"assert"|X(TT_AS)->"as"|X(TT_ARCHETYPE)->"archetype"|X(TT_ANY)->"any"|X(TT_AND)->"and"|X(TT_AMPEQUAL)->"%="|X(TT_AGGREGATE)->"aggregate"|X(TT_ADDRESS)->"an address"|X(TT_ADDED)->"added"|X(TT_ACCEPT_TRANSFER)->"accept address"|X(NN_view_decl)->"a view declaration"|X(NN_vc_decl_VARIABLE_)->"a variable declaration"|X(NN_vc_decl_CONSTANT_)->"a constant declaration"|X(NN_variable)->"a variable"|X(NN_type_s_unloc)->"types"|X(NN_type_r)->"a type"|X(NN_type_decl)->"a type decl"|X(NN_transition)->"a transition"|X(NN_transition_to_item)->"a transition to item"|X(NN_start_expr)->"a start expression"|X(NN_specvariable)->"a specvariable"|X(NN_specification_fun)->"a specification function"|X(NN_specification_decl)->"a specification declaration"|X(NN_specgetter)->"a specgetter"|X(NN_specfun)->"a specfun"|X(NN_specfun_gen_GETTER_)->"a spec GETTER"|X(NN_specfun_gen_FUNCTION_)->"a spec FUNCTION"|X(NN_specfun_gen_ENTRY_)->"a spec ENTRY"|X(NN_specentry)->"a specentry"|X(NN_specasset)->"a specasset"|X(NN_spec_items)->"a list of specification item"|X(NN_sourcedby)->"a sourced by"|X(NN_snl2_OR_security_arg_)->"a non empty list of security argument separated by OR"|X(NN_snl2_COMMA_expr_)->"a non empty list of expression separated by ,"|X(NN_snl_SEMI_COLON_security_item_)->"a non empty list of security item"|X(NN_snl_SEMI_COLON_rf_WITH__)->"a list of rf with"|X(NN_snl_SEMI_COLON_rf_OTHERWISE__)->"a list of rf otherwise"|X(NN_snl_SEMI_COLON_label_expr_)->"a non empty list of label expr"|X(NN_snl_SEMI_COLON_field_)->"a non empty list of field"|X(NN_snl_COMMA_simple_expr_)->""|X(NN_snl_COMMA_security_arg_)->"a non empty list of security argument"|X(NN_snl_COMMA_parameter_)->"a non empty list of parameter"|X(NN_snl_COMMA_function_arg_)->"a non empty list of function argument"|X(NN_snl_COMMA_expr_)->""|X(NN_sl_SEMI_COLON_security_item_)->"a list of security item"|X(NN_sl_SEMI_COLON_field_)->"a list of field"|X(NN_sl_COMMA_simple_expr_)->""|X(NN_sl_COMMA_security_arg_)->"a list of security argument"|X(NN_sl_COMMA_function_arg_)->"a list of function argument"|X(NN_simple_expr_r)->"a simple expression"|X(NN_separated_nonempty_list_SEMI_COLON_recupdate_item_)->"a non empty list of record update item by ;"|X(NN_separated_nonempty_list_SEMI_COLON_record_item_)->"a non empty list of record item by ;"|X(NN_separated_nonempty_list_SEMI_COLON_record_expr_)->"a non empty list of record expression by ;"|X(NN_separated_nonempty_list_MULT_type_s_)->"a non empty *-separated list of types"|X(NN_separated_nonempty_list_COMMA_security_arg_)->"a non empty list of security arg"|X(NN_separated_nonempty_list_COMMA_ident_)->"a non empty comma-separated list of identifiers"|X(NN_security_decl)->"a security declaration"|X(NN_security_decl_unloc)->"a security declaration"|X(NN_security_arg_unloc)->"a security argument"|X(NN_rf_WITH_)->"rf with"|X(NN_rf_OTHERWISE_)->"rf otherwise"|X(NN_recupdate_item)->"a record update item"|X(NN_record)->"a record"|X(NN_record_item)->"a record item"|X(NN_pname)->"a pattern identifier"|X(NN_order_operations)->"order operations"|X(NN_order_operation)->"an order operation"|X(NN_option_with_effect_)->"a with effect option"|X(NN_option_state_is_)->"an option state is"|X(NN_option_specification_fun_)->"a specification function option"|X(NN_option_sourcedby_)->"an option sourced by"|X(NN_option_simple_expr_)->"a simple expression option"|X(NN_option_SEMI_COLON_)->""|X(NN_option_require_value_)->"a require option"|X(NN_option_require_)->"a require option"|X(NN_option_record_position_)->"an option record position"|X(NN_option_prefix_EQUAL_enum_body__)->"an optional enum body"|X(NN_option_paren_separated_nonempty_list_COMMA_ident___)->"a list of constructor arguments"|X(NN_option_parameter_init_)->"parameter initialization"|X(NN_option_on_value_)->"a on value option"|X(NN_option_ident_)->"an option ident"|X(NN_option_function_return_)->"a function return option"|X(NN_option_failif_)->"a failif option"|X(NN_option_extensions_)->"extensions option"|X(NN_option_effect_)->"an effect option"|X(NN_option_default_value_)->"a default value option"|X(NN_option_calledby_)->"a call by option"|X(NN_option_bracket_asset_operation__)->"a list of asset operation"|X(NN_option_asset_options_)->"assets option"|X(NN_option_asset_fields_)->"asset fields option"|X(NN_on_value)->"on value"|X(NN_nonempty_list_type_tuple_)->"a non empty list of type tuple"|X(NN_nonempty_list_transition_to_item_)->"a non empty list of transition to item"|X(NN_nonempty_list_spec_fail_item_)->"a list of spec fail item"|X(NN_nonempty_list_loc_pattern__)->"a non empty list of pattern"|X(NN_nonempty_list_ident_typ_q_item_)->"a non empty list of typed identifier"|X(NN_nonempty_list_ident_)->"a non empty list of identifier"|X(NN_nonempty_list_extension_)->"a non empty list of extension"|X(NN_nonempty_list_declaration_)->"a non empty list of declaration"|X(NN_nonempty_list_branch_)->"a non empty list of branch"|X(NN_nonempty_list_asset_option_)->"a non empty list of asset option"|X(NN_nonempty_list_asset_operation_enum_)->"a non empty list of asset operation enum"|X(NN_namespace)->"a namespace"|X(NN_main)->"archetype"|X(NN_loption_separated_nonempty_list_SEMI_COLON_recupdate_item__)->"a non empty list of record update item"|X(NN_loption_separated_nonempty_list_SEMI_COLON_record_item__)->"a non empty list of record item"|X(NN_loption_separated_nonempty_list_COMMA_security_arg__)->"a non empty list of security arg"|X(NN_literal)->"a literal"|X(NN_list_loc_spec_variable__)->"a list of specification variable item"|X(NN_list_loc_spec_predicate__)->"a list of specification predicate item"|X(NN_list_loc_spec_postcondition__)->"a list of specification postcondition item"|X(NN_list_loc_spec_fails__)->"a list of loc spec fails"|X(NN_list_loc_spec_effect__)->"a list of specification effect item"|X(NN_list_loc_spec_definition__)->"a list of specification definition item"|X(NN_list_loc_spec_contract_invariant__)->"a list of specification contract invariant item"|X(NN_list_loc_spec_assert__)->"a list of specification assert item"|X(NN_list_invars_)->"a list of invariants"|X(NN_list_function_item_)->"a list of item function"|X(NN_list_enum_option_)->"an optional list of enum options"|X(NN_list_enum_cdecl_)->"a list of enum constructors declarations"|X(NN_list_asset_post_option_)->"a list of asset post option"|X(NN_label_expr_unloc)->"a label expr"|X(NN_implementation_archetype)->"an archetype implementation"|X(NN_ident_typ_q)->"an item of type"|X(NN_getter_decl)->"a getter declaration"|X(NN_function_item)->"an item function"|X(NN_function_decl)->"a function declaration"|X(NN_field_r)->"a field"|X(NN_extension_r)->"an extension"|X(NN_expr_r)->"an expression"|X(NN_event)->"an event declaration"|X(NN_enum)->"an enum"|X(NN_enum_option)->"an enum option"|X(NN_enum_cdecl)->"an enum constructor declaration"|X(NN_enum_body)->"an enum body declaration"|X(NN_entry)->"an entry"|X(NN_entry_simple)->"an entry simple"|X(NN_entry_properties)->"entry properties"|X(NN_effect)->"an effect"|X(NN_dextension)->"a extension declaration"|X(NN_declaration_r)->"a declaration"|X(NN_constant)->"a constant"|X(NN_calledby)->"called by"|X(NN_branch)->"branch"|X(NN_boption_REF_)->"ref option"|X(NN_boption_CONST_)->"an optional const"|X(NN_asset)->"an asset"|X(NN_asset_post_option)->"asset post option"|X(NN_asset_option)->"an asset option"|X(NN_archetype)->"archetype"|X(NN_archetype_r)->"archetype"|X(NN_archetype_extension)->"an extension"letstring_of_item(p,i)=string_of_symbol(lhsp)^" -> "^String.concat" "(List.mapi(funjs->(ifj=ithen"."else"")^string_of_symbols)(rhsp))^(ifi=List.length(rhsp)then"."else"")