123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282(**************************************************************************)(* *)(* 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|COMMA(* Start of comment from code *)|COMMENT(* Start of inline code section within comment: "{[" *)|OCAMLDOC_CODE(* Start of verbatim section within comment: "{v" *)|OCAMLDOC_VERB(* Continuation of comment after a closed ocamldoc code or verb section *)|COMMENTCONT|CONSTRAINT|DO|DONE|DOT|DOTDOT|DOWNTO|ELSE|END|EOF|EQUAL|EXCEPTION|EXTERNAL|FALSE|FLOATof(string)|FOR|FUN|FUNCTION|FUNCTOR|GREATER|GREATERRBRACE|GREATERRBRACKET|IF|ILLEGAL_CHARof(char)|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|QUOTATIONof(string)|QUOTE|RBRACE|RBRACKET|REC|RPAREN|SEMI|SEMISEMI|SHARP|SIG|STAR|STRINGof(string)|STRUCT|THEN|TILDE|TO|TRUE|TRY|TYPE|UIDENTof(string)|UNDERSCORE|VAL|VIRTUAL|WHEN|WHILE|WITH|EOL|SPACESletto_string=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"|COMMA->"COMMA"(* Start of comment from code *)|COMMENT->"COMMENT"(* Start of inline code section within comment: "{[" *)|OCAMLDOC_CODE->"OCAMLDOC_CODE"(* Start of verbatim section within comment: "{v" *)|OCAMLDOC_VERB->"OCAMLDOC_VERB"(* Continuation of comment after a closed ocamldoc code or verb section *)|COMMENTCONT->"COMMENTCONT"|CONSTRAINT->"CONSTRAINT"|DO->"DO"|DONE->"DONE"|DOT->"DOT"|DOTDOT->"DOTDOT"|DOWNTO->"DOWNTO"|ELSE->"ELSE"|END->"END"|EOF->"EOF"|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"|ILLEGAL_CHAR_->"ILLEGAL_CHAR"|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"|LBRACKETBAR->"LBRACKETBAR"|LBRACKETLESS->"LBRACKETLESS"|LBRACKETGREATER->"LBRACKETGREATER"|LBRACKETPERCENT->"LBRACKETPERCENT"|LBRACKETPERCENTPERCENT->"LBRACKETPERCENTPERCENT"|LBRACKETAT->"LBRACKETAT"|LBRACKETATAT->"LBRACKETATAT"|LBRACKETATATAT->"LBRACKETATATAT"|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"|QUOTATION_->"QUOTATION"|QUOTE->"QUOTE"|RBRACE->"RBRACE"|RBRACKET->"RBRACKET"|REC->"REC"|RPAREN->"RPAREN"|SEMI->"SEMI"|SEMISEMI->"SEMISEMI"|SHARP->"SHARP"|SIG->"SIG"|STAR->"STAR"|STRING_->"STRING"|STRUCT->"STRUCT"|THEN->"THEN"|TILDE->"TILDE"|TO->"TO"|TRUE->"TRUE"|TRY->"TRY"|TYPE->"TYPE"|UIDENT_->"UIDENT"|UNDERSCORE->"UNDERSCORE"|VAL->"VAL"|VIRTUAL->"VIRTUAL"|WHEN->"WHEN"|WHILE->"WHILE"|WITH->"WITH"|EOL->"EOL"|SPACES->"SPACES"