123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317(**************************************************************************)(* *)(* TypeRex OCaml Studio *)(* Thomas Gazagnaire, Fabrice Le Fessant, Louis Gesbert *)(* *)(* OCaml *)(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)(* *)(* Copyright 2011-2013 OCamlPro *)(* Copyright 1996-2011 INRIA. *)(* All rights reserved. This file is distributed under the terms of *)(* the Q Public License version 1.0. *)(* *)(**************************************************************************)(* ADMIN: fabrice *)(* Instead of raising an error when a CHAR, INT, INT32, INT64 or NATIVEINT
overflows, we just changed the returned value to take that into account. *)type'aoverflow=|InRangeof'a|Overflowofstringtypetoken=|AMPERAMPER|AMPERSAND|AND|AS|ASSERT|BACKQUOTE|BANG|BAR|BARBAR|BARRBRACKET|BEGIN|CHARof(charoverflow)|CLASS|COLON|COLONCOLON|COLONEQUAL|COLONGREATER|CONSTRAINT|DO|DONE|DOT|DOTDOT|DOWNTO|ELSE|END|EOF|EQUAL|EXCEPTION|EXTERNAL|FALSE|FLOATof(string)|FOR|FUN|FUNCTION|FUNCTOR|GREATER|GREATERRBRACE|GREATERRBRACKET|IF|IN|INCLUDE|INFIXOP0of(string)|INFIXOP1of(string)|INFIXOP2of(string)|INFIXOP3of(string)|INFIXOP4of(string)|INHERIT|INITIALIZER|INTof(intoverflow)|INT32of(int32overflow)|INT64of(int64overflow)|LABELof(string)|LAZY|LBRACE|LBRACELESS|LBRACKET|LBRACKETBAR|LBRACKETLESS|LBRACKETGREATER|LBRACKETPERCENT|LBRACKETPERCENTPERCENT|LBRACKETAT|LBRACKETATAT|LBRACKETATATAT|LESS|LESSMINUS|LET|LIDENTof(string)|LINE_DIRECTIVE|LPAREN|MATCH|METHOD|MINUS|MINUSDOT|MINUSGREATER|MODULE|MUTABLE|NATIVEINTof(nativeintoverflow)|NEW|OBJECT|OF|OPEN|OPTLABELof(string)|OR|PLUS|PLUSDOT|PREFIXOPof(string)|PRIVATE|QUESTION|QUESTIONQUESTION|QUOTE|RBRACE|RBRACKET|REC|RPAREN|SEMI|SEMISEMI|SHARP|SIG|STAR|STRUCT|THEN|TILDE|TO|TRUE|TRY|TYPE|TYPEVAR|UIDENTof(string)|UNDERSCORE|VAL|VIRTUAL|WHEN|WHILE|WITH|ESCAPED_EOL|EOL|SPACES|ILLEGAL_CHARof(char)|COMMA|COMMENT_OPEN_EOL|COMMENT_OPEN|COMMENT_OPEN_CLOSE|COMMENT_VERB_OPEN|COMMENT_CODE_OPEN|COMMENT_CONTENT|COMMENT_CLOSE|COMMENT_VERB_CLOSE|COMMENT_CODE_CLOSE|STRING_OPEN|STRING_CONTENT|STRING_CLOSE|PPX_QUOTATION_OPEN|PPX_QUOTATION_CONTENT|PPX_QUOTATION_CLOSE|P4_QUOTATION_OPEN|P4_QUOTATION_CONTENT|P4_QUOTATION_CLOSEletstring_of_tok=function|AMPERAMPER->"AMPERAMPER"|AMPERSAND->"AMPERSAND"|AND->"AND"|AS->"AS"|ASSERT->"ASSERT"|BACKQUOTE->"BACKQUOTE"|BANG->"BANG"|BAR->"BAR"|BARBAR->"BARBAR"|BARRBRACKET->"BARRBRACKET"|BEGIN->"BEGIN"|CHAR_->"CHAR"|CLASS->"CLASS"|COLON->"COLON"|COLONCOLON->"COLONCOLON"|COLONEQUAL->"COLONEQUAL"|COLONGREATER->"COLONGREATER"|CONSTRAINT->"CONSTRAINT"|DO->"DO"|DONE->"DONE"|DOT->"DOT"|DOTDOT->"DOTDOT"|DOWNTO->"DOWNTO"|ELSE->""|END->"END"|EQUAL->"EQUAL"|EXCEPTION->"EXCEPTION"|EXTERNAL->"EXTERNAL"|FALSE->"FALSE"|FLOAT_->"FLOAT"|FOR->"FOR"|FUN->"FUN"|FUNCTION->"FUNCTION"|FUNCTOR->"FUNCTOR"|GREATER->"GREATER"|GREATERRBRACE->"GREATERRBRACE"|GREATERRBRACKET->"GREATERRBRACKET"|IF->"IF"|IN->"IN"|INCLUDE->"INCLUDE"|INFIXOP0_->"INFIXOP0"|INFIXOP1_->"INFIXOP1"|INFIXOP2_->"INFIXOP2"|INFIXOP3_->"INFIXOP3"|INFIXOP4_->"INFIXOP4"|INHERIT->"INHERIT"|INITIALIZER->"INITIALIZER"|INT_->"INT"|INT32_->"INT32"|INT64_->"INT64"|LABEL_->"LABEL"|LAZY->"LAZY"|LBRACE->"LBRACE"|LBRACELESS->"LBRACELESS"|LBRACKET->"LBRACKET"|LBRACKETAT->"LBRACKETAT"|LBRACKETATAT->"LBRACKETATAT"|LBRACKETATATAT->"LBRACKETATATAT"|LBRACKETBAR->"LBRACKETBAR"|LBRACKETLESS->"LBRACKETLESS"|LBRACKETGREATER->"LBRACKETGREATER"|LBRACKETPERCENT->"LBRACKETPERCENT"|LBRACKETPERCENTPERCENT->"LBRACKETPERCENTPERCENT"|LESS->"LESS"|LESSMINUS->"LESSMINUS"|LET->"LET"|LIDENT_->"LIDENT"|LINE_DIRECTIVE->"LINE_DIRECTIVE"|LPAREN->"LPAREN"|MATCH->"MATCH"|METHOD->"METHOD"|MINUS->"MINUS"|MINUSDOT->"MINUSDOT"|MINUSGREATER->"MINUSGREATER"|MODULE->"MODULE"|MUTABLE->"MUTABLE"|NATIVEINT_->"NATIVEINT"|NEW->"NEW"|OBJECT->"OBJECT"|OF->"OF"|OPEN->"OPEN"|OPTLABEL_->"OPTLABEL"|OR->"OR"|PLUS->"PLUS"|PLUSDOT->"PLUSDOT"|PREFIXOP_->"PREFIXOP"|PRIVATE->"PRIVATE"|QUESTION->"QUESTION"|QUESTIONQUESTION->"QUESTIONQUESTION"|QUOTE->"QUOTE"|RBRACE->"RBRACE"|RBRACKET->"RBRACKET"|REC->"REC"|RPAREN->"RPAREN"|SEMI->"SEMI"|SEMISEMI->"SEMISEMI"|SHARP->"SHARP"|SIG->"SIG"|STAR->"STAR"|STRUCT->"STRUCT"|THEN->"THEN"|TILDE->"TILDE"|TO->"TO"|TRUE->"TRUE"|TRY->"TRY"|TYPE->"TYPE"|TYPEVAR->"TYPEVAR"|UIDENT_->"UIDENT"|UNDERSCORE->"UNDERSCORE"|VAL->"VAL"|VIRTUAL->"VIRTUAL"|WHEN->"WHEN"|WHILE->"WHILE"|WITH->""|EOF->"EOF"|ESCAPED_EOL->"ESCAPED_EOL"|EOL->"EOL"|SPACES->"SPACES"|ILLEGAL_CHAR_->"ILLEGAL_CHAR"|COMMA->"COMMA"|COMMENT_OPEN->"COMMENT_OPEN"|COMMENT_OPEN_CLOSE->"COMMENT_OPEN_CLOSE"|COMMENT_OPEN_EOL->"COMMENT_OPEN_EOL"|COMMENT_VERB_OPEN->"COMMENT_VERB_OPEN "|COMMENT_CODE_OPEN->"COMMENT_CODE_OPEN"|COMMENT_CONTENT->"COMMENT_CONTENT"|COMMENT_CLOSE->"COMMENT_CLOSE"|COMMENT_VERB_CLOSE->"COMMENT_VERB_CLOSE"|COMMENT_CODE_CLOSE->"COMMENT_CODE_CLOSE"|STRING_OPEN->"STRING_OPEN"|STRING_CONTENT->"STRING_CONTENT"|STRING_CLOSE->"STRING_CLOSE"|PPX_QUOTATION_OPEN->"PPX_QUOTATION_OPEN"|PPX_QUOTATION_CONTENT->"PPX_QUOTATION_CONTENT"|PPX_QUOTATION_CLOSE->"PPX_QUOTATION_CLOSE"|P4_QUOTATION_OPEN->"P4_QUOTATION_OPEN"|P4_QUOTATION_CONTENT->"P4_QUOTATION_CONTENT"|P4_QUOTATION_CLOSE->"P4_QUOTATION_CLOSE"