123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343(*
Copyright 2012-2020 Codinuum Software Lab <https://codinuum.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*)(* token.ml *)openTokens_modulePB=Langs_common.Parserlib_basemodulePosition=Langs_common.Positiontypet=T.tokenPB.tokenletrawtoken_to_string=function|STMT_->"STMT"|BLOCK_STMT_->"BLOCK_STMT"|ERROR_STMTs->"ERROR_STMT:"^s|ERROR_MODs->"ERROR_MOD:"^s|ERRORs->"ERROR:"^s|MARKERs->"MARKER:"^s|GT_7->"GT_7"|EOP->"EOP"|EXPORTS_->"EXPORTS"|MODULE_->"MODULE"|NON_SEALED_->"NON_SEALED"|OPEN_->"OPEN"|OPENS_->"OPENS"|PERMITS_->"PERMITS"|PROVIDES_->"PROVIDES"|RECORD_->"RECORD"|REQUIRES_->"REQUIRES"|SEALED_->"SEALED"|TO_->"TO"|TRANSITIVE_->"TRANSITIVE"|USES_->"USES"|VAR_->"VAR"|WITH__->"WITH_"|YIELD_->"YIELD"|IDENTIFIER(_,s)->"IDENTIFIER:"^s|INTEGER_LITERALi->"INTEGER_LITERAL:"^i|FLOATING_POINT_LITERALf->"FLOATING_POINT_LITERAL:"^f|CHARACTER_LITERALc->"CHARACTER_LITERAL:"^c|STRING_LITERALs->"STRING_LITERAL:"^s|TEXT_BLOCKs->"TEXT_BLOCK:"^s|TRUE->"TRUE"|FALSE->"FALSE"|NULL->"NULL"|LPAREN_->"LPAREN"|LPAREN__LAMBDA_->"LPAREN__LAMBDA"|RPAREN_->"RPAREN"|LBRACE->"LBRACE"|RBRACE->"RBRACE"|LBRACKET->"LBRACKET"|RBRACKET->"RBRACKET"|SEMICOLON->"SEMICOLON"|COMMA->"COMMA"|DOT->"DOT"|ELLIPSIS->"ELLIPSIS"|COLON_COLON->"COLON_COLON"|AT_->"AT"|AT__INTERFACE_->"AT__INTERFACE"|EQ->"EQ"|GT->"GT"|LT_->"LT"|EXCLAM->"EXCLAM"|TILDE->"TILDE"|QUESTION->"QUESTION"|COLON->"COLON"|EQ_EQ->"EQ_EQ"|LT_EQ->"LT_EQ"|GT_EQ->"GT_EQ"|EXCLAM_EQ->"EXCLAM_EQ"|AND_AND->"AND_AND"|OR_OR->"OR_OR"|PLUS_PLUS->"PLUS_PLUS"|MINUS_MINUS->"MINUS_MINUS"|PLUS->"PLUS"|MINUS->"MINUS"|STAR->"STAR"|SLASH->"SLASH"|AND->"AND"|OR->"OR"|HAT->"HAT"|PERCENT->"PERCENT"|LT_LT->"LT_LT"|GT_GT->"GT_GT"|GT_GT_GT->"GT_GT_GT"|PLUS_EQ->"PLUS_EQ"|MINUS_EQ->"MINUS_EQ"|MINUS_GT->"MINUS_GT"|MINUS_GT__CASE->"MINUS_GT__CASE"|STAR_EQ->"STAR_EQ"|SLASH_EQ->"SLASH_EQ"|AND_EQ->"AND_EQ"|OR_EQ->"OR_EQ"|HAT_EQ->"HAT_EQ"|PERCENT_EQ->"PERCENT_EQ"|LT_LT_EQ->"LT_LT_EQ"|GT_GT_EQ->"GT_GT_EQ"|GT_GT_GT_EQ->"GT_GT_GT_EQ"(* keywords *)|ABSTRACT_->"ABSTRACT"|ASSERT_->"ASSERT"|BOOLEAN_->"BOOLEAN"|BREAK_->"BREAK"|BYTE_->"BYTE"|CASE_->"CASE"|CATCH_->"CATCH"|CHAR_->"CHAR"|CLASS_->"CLASS"|CONST_->"CONST"|CONTINUE_->"CONTINUE"|DEFAULT_->"DEFAULT"|DEFAULT__COLON_->"DEFAULT__COLON"|DO_->"DO"|DOUBLE_->"DOUBLE"|ELSE_->"ELSE"|ENUM_->"ENUM"|EXTENDS_->"EXTENDS"|FINAL_->"FINAL"|FINALLY_->"FINALLY"|FLOAT_->"FLOAT"|FOR_->"FOR"|GOTO_->"GOTO"|IF_->"IF"|IMPLEMENTS_->"IMPLEMENTS"|IMPORT_->"IMPORT"|INSTANCEOF_->"INSTANCEOF"|INT_->"INT"|INTERFACE_->"INTERFACE"|LONG_->"LONG"|NATIVE_->"NATIVE"|NEW_->"NEW"|PACKAGE_->"PACKAGE"|PRIVATE_->"PRIVATE"|PROTECTED_->"PROTECTED"|PUBLIC_->"PUBLIC"|RETURN_->"RETURN"|SHORT_->"SHORT"|STATIC_->"STATIC"|STRICTFP_->"STRICTFP"|SUPER_->"SUPER"|SWITCH_->"SWITCH"|SYNCHRONIZED_->"SYNCHRONIZED"|THIS_->"THIS"|THROW_->"THROW"|THROWS_->"THROWS"|TRANSIENT_->"TRANSIENT"|TRY_->"TRY"|VOLATILE_->"VOLATILE"|VOID_->"VOID"|WHILE_->"WHILE"|EOF->"EOF"|ASPECT_->"ASPECT"|POINTCUT_->"POINTCUT"|WITHIN_->"WITHIN"|DECLARE_->"DECLARE"|DOT_DOT->"DOT_DOT"letrawtoken_to_orig=function|STMT_->"<stmt>"|BLOCK_STMT_->"<block-stmt>"|ERROR_STMTs->s|ERROR_MODs->s|ERRORs->s|MARKERs->s|GT_7->">>>>>>>"|EOP->""|EXPORTS_->"exports"|MODULE_->"module"|NON_SEALED_->"non-sealed"|OPEN_->"open"|OPENS_->"opens"|PERMITS_->"permits"|PROVIDES_->"provides"|RECORD_->"record"|REQUIRES_->"requires"|SEALED_->"sealed"|TO_->"to"|TRANSITIVE_->"transitive"|USES_->"uses"|VAR_->"var"|WITH__->"with"|YIELD_->"yield"|IDENTIFIER(_,s)->s|INTEGER_LITERALi->i|FLOATING_POINT_LITERALf->f|CHARACTER_LITERALc->c|STRING_LITERALs->s|TEXT_BLOCKs->s|TRUE->"true"|FALSE->"false"|NULL->"null"|LPAREN_->"("|LPAREN__LAMBDA_->"("|RPAREN_->")"|LBRACE->"{"|RBRACE->"}"|LBRACKET->"["|RBRACKET->"]"|SEMICOLON->";"|COMMA->","|DOT->"."|ELLIPSIS->"..."|COLON_COLON->"::"|AT_->"@"|AT__INTERFACE_->"@"|EQ->"="|GT->">"|LT_->"<"|EXCLAM->"!"|TILDE->"~"|QUESTION->"?"|COLON->":"|EQ_EQ->"=="|LT_EQ->"<="|GT_EQ->">="|EXCLAM_EQ->"!="|AND_AND->"&&"|OR_OR->"||"|PLUS_PLUS->"++"|MINUS_MINUS->"--"|PLUS->"+"|MINUS->"-"|STAR->"*"|SLASH->"/"|AND->"&"|OR->"|"|HAT->"^"|PERCENT->"%"|LT_LT->"<<"|GT_GT->">>"|GT_GT_GT->">>>"|PLUS_EQ->"+="|MINUS_EQ->"-="|MINUS_GT->"->"|MINUS_GT__CASE->"->"|STAR_EQ->"*="|SLASH_EQ->"/="|AND_EQ->"&="|OR_EQ->"|="|HAT_EQ->"^="|PERCENT_EQ->"%="|LT_LT_EQ->"<<="|GT_GT_EQ->">>="|GT_GT_GT_EQ->">>>="(* keywords *)|ABSTRACT_->"abstract"|ASSERT_->"assert"|BOOLEAN_->"boolean"|BREAK_->"break"|BYTE_->"byte"|CASE_->"case"|CATCH_->"catch"|CHAR_->"char"|CLASS_->"class"|CONST_->"const"|CONTINUE_->"continue"|DEFAULT_->"default"|DEFAULT__COLON_->"default"|DO_->"do"|DOUBLE_->"double"|ELSE_->"else"|ENUM_->"enum"|EXTENDS_->"extends"|FINAL_->"final"|FINALLY_->"finally"|FLOAT_->"float"|FOR_->"for"|GOTO_->"goto"|IF_->"if"|IMPLEMENTS_->"implements"|IMPORT_->"import"|INSTANCEOF_->"instanceof"|INT_->"int"|INTERFACE_->"interface"|LONG_->"long"|NATIVE_->"native"|NEW_->"new"|PACKAGE_->"package"|PRIVATE_->"private"|PROTECTED_->"protected"|PUBLIC_->"public"|RETURN_->"return"|SHORT_->"short"|STATIC_->"static"|STRICTFP_->"strictfp"|SUPER_->"super"|SWITCH_->"switch"|SYNCHRONIZED_->"synchronized"|THIS_->"this"|THROW_->"throw"|THROWS_->"throws"|TRANSIENT_->"transient"|TRY_->"try"|VOLATILE_->"volatile"|VOID_->"void"|WHILE_->"while"|EOF->""|ASPECT_->"aspect"|POINTCUT_->"pointcut"|WITHIN_->"within"|DECLARE_->"declare"|DOT_DOT->".."letto_string(tok,st,ed)=letloc=Ast.Loc.of_lexpossstedinPrintf.sprintf"%s[%s]"(rawtoken_to_stringtok)(Ast.Loc.to_string~short:trueloc)letto_rawtoken=PB.token_to_rawtokenletto_lexposs=PB.token_to_lexpossletdecompose=PB.decompose_tokenletcreate=PB.make_tokenletto_origt=rawtoken_to_orig(to_rawtokent)