File: src/scanner.ml (return to index)



Statistics:  
kind coverage
binding 0 / 0 (-%)
sequence 4 / 8 (50%)
for 0 / 0 (-%)
if/then 0 / 0 (-%)
try 0 / 0 (-%)
while 0 / 0 (-%)
match/function 4 / 4 (100%)
kind coverage
class expression 0 / 0 (-%)
class initializer 0 / 0 (-%)
class method 0 / 0 (-%)
class value 0 / 0 (-%)
toplevel expression 0 / 0 (-%)
lazy operator 0 / 0 (-%)



Source:

fold all unfold all
000001| # 1 "src/scanner.mll"
000002|  
000003|   (** Autogenerated scanner module *)
000004|  
000005|     module P = Parser     (* tokens are defined here *)
000006|     
000007|     exception Scan of string
000008|     
000009|     let error msg pos = Error.error "Scanner error" msg pos
000010|  
000011|     let get         = Lexing.lexeme
000012|     let getchar     = Lexing.lexeme_char
000013|     let strlen      = String.length
000014|     let pos_start   = Lexing.lexeme_start
000015|     let pos_end     = Lexing.lexeme_end
000016|  
000017|     let keywords    = Hashtbl.create 27
000018|     let keyword s   = Hashtbl.find keywords s
000019|     let _ = Array.iter (fun (str,tok) -> Hashtbl.add keywords str tok)
000020|       [| ("and"         , P.AND)
000021|       ;  ("break"       , P.BREAK)
000022|       ;  ("case"        , P.CASE)
000023|       ;  ("do"          , P.DO)
000024|       ;  ("else"        , P.ELSE)
000025|       ;  ("elseif"      , P.ELSEIF)
000026|       ;  ("end"         , P.END)
000027|       ;  ("for"         , P.FOR)
000028|       ;  ("function"    , P.FUNCTION)
000029|       ;  ("globmatch"   , P.GLOBMATCH)
000030|       ;  ("goto"        , P.GOTO)
000031|       ;  ("if"          , P.IF)
000032|       ;  ("in"          , P.IN)
000033|       ;  ("local"       , P.LOCAL)
000034|       ;  ("nil"         , P.NIL)
000035|       ;  ("true"        , P.TRUE)
000036|       ;  ("false"       , P.FALSE)
000037|       ;  ("not"         , P.NOT)
000038|       ;  ("of"          , P.OF)
000039|       ;  ("or"          , P.OR)
000040|       ;  ("repeat"      , P.REPEAT)
000041|       ;  ("return"      , P.RETURN)
000042|       ;  ("then"        , P.THEN)
000043|       ;  ("until"       , P.UNTIL)
000044|       ;  ("while"       , P.WHILE) 
000045|       |]
000046|  
000047|  
000048| # 49 "src/scanner.ml"
000049| let __ocaml_lex_tables = {
000050|   Lexing.lex_base = 
000051|    "\000\000\215\255\217\255\218\255\222\255\223\255\224\255\225\255\
000052|     \063\000\230\255\231\255\232\255\233\255\234\255\018\000\237\255\
000053|     \238\255\239\255\240\255\241\255\003\000\031\000\066\000\035\000\
000054|     \083\000\095\000\117\000\192\000\253\255\006\000\146\000\255\255\
000055|     \158\000\011\001\021\001\076\001\174\000\044\001\054\001\099\001\
000056|     \109\001\084\000\131\001\153\001\163\001\173\001\247\255\246\255\
000057|     \244\255\245\255\243\255\242\255\103\001\167\000\220\255\169\000\
000058|     \092\000\221\255\216\255\096\000\242\000\252\255\097\000\254\255\
000059|     \001\000\255\255\253\255\099\000\104\001\251\255\192\000\158\001\
000060|     \051\000\100\000\255\255\254\255\101\000\253\255\221\001\249\255\
000061|     \223\001\215\001\254\255\255\255\251\255\225\001\239\001\021\002\
000062|     \253\255\044\002\252\255";
000063|   Lexing.lex_backtrk = 
000064|    "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000065|     \029\000\255\255\255\255\255\255\255\255\255\255\019\000\255\255\
000066|     \255\255\255\255\255\255\255\255\040\000\028\000\027\000\026\000\
000067|     \020\000\004\000\004\000\003\000\255\255\001\000\001\000\255\255\
000068|     \255\255\006\000\255\255\005\000\255\255\006\000\255\255\006\000\
000069|     \255\255\007\000\006\000\255\255\006\000\255\255\255\255\255\255\
000070|     \255\255\255\255\255\255\255\255\255\255\036\000\255\255\035\000\
000071|     \255\255\255\255\255\255\255\255\255\255\255\255\003\000\255\255\
000072|     \001\000\255\255\255\255\255\255\255\255\255\255\003\000\003\000\
000073|     \003\000\003\000\255\255\255\255\255\255\255\255\255\255\255\255\
000074|     \005\000\007\000\255\255\255\255\255\255\003\000\004\000\255\255\
000075|     \255\255\003\000\255\255";
000076|   Lexing.lex_default = 
000077|    "\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000078|     \255\255\000\000\000\000\000\000\000\000\000\000\255\255\000\000\
000079|     \000\000\000\000\000\000\000\000\255\255\255\255\255\255\255\255\
000080|     \255\255\255\255\255\255\255\255\000\000\255\255\255\255\000\000\
000081|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000082|     \255\255\255\255\255\255\255\255\255\255\255\255\000\000\000\000\
000083|     \000\000\000\000\000\000\000\000\053\000\053\000\000\000\053\000\
000084|     \255\255\000\000\000\000\255\255\061\000\000\000\255\255\000\000\
000085|     \255\255\000\000\000\000\255\255\070\000\000\000\070\000\070\000\
000086|     \255\255\255\255\000\000\000\000\255\255\000\000\080\000\000\000\
000087|     \080\000\084\000\000\000\000\000\000\000\255\255\255\255\255\255\
000088|     \000\000\255\255\000\000";
000089|   Lexing.lex_trans = 
000090|    "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000091|     \000\000\029\000\028\000\063\000\000\000\030\000\000\000\029\000\
000092|     \000\000\000\000\000\000\029\000\000\000\000\000\000\000\000\000\
000093|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000094|     \029\000\000\000\002\000\013\000\000\000\011\000\029\000\003\000\
000095|     \019\000\018\000\017\000\016\000\015\000\014\000\024\000\012\000\
000096|     \026\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
000097|     \025\000\025\000\010\000\009\000\023\000\022\000\021\000\052\000\
000098|     \051\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000099|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000100|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000101|     \027\000\027\000\027\000\008\000\050\000\007\000\006\000\027\000\
000102|     \047\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000103|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000104|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000105|     \027\000\027\000\027\000\005\000\059\000\004\000\020\000\049\000\
000106|     \048\000\041\000\046\000\042\000\042\000\042\000\042\000\042\000\
000107|     \042\000\042\000\042\000\042\000\042\000\033\000\077\000\025\000\
000108|     \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
000109|     \025\000\056\000\058\000\029\000\028\000\059\000\067\000\029\000\
000110|     \067\000\076\000\076\000\033\000\032\000\025\000\025\000\025\000\
000111|     \025\000\025\000\025\000\025\000\025\000\025\000\025\000\000\000\
000112|     \000\000\255\255\029\000\054\000\000\000\000\000\000\000\057\000\
000113|     \000\000\000\000\032\000\058\000\000\000\000\000\066\000\000\000\
000114|     \066\000\075\000\075\000\000\000\032\000\000\000\000\000\000\000\
000115|     \000\000\040\000\255\255\040\000\000\000\034\000\039\000\039\000\
000116|     \039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\
000117|     \000\000\038\000\032\000\038\000\000\000\000\000\037\000\037\000\
000118|     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
000119|     \000\000\000\000\000\000\000\000\000\000\034\000\000\000\000\000\
000120|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000121|     \027\000\027\000\000\000\000\000\063\000\000\000\000\000\064\000\
000122|     \031\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000123|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000124|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000125|     \027\000\027\000\027\000\255\255\000\000\255\255\000\000\027\000\
000126|     \000\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000127|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000128|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000129|     \027\000\027\000\027\000\033\000\033\000\033\000\033\000\033\000\
000130|     \033\000\033\000\033\000\033\000\033\000\035\000\035\000\035\000\
000131|     \035\000\035\000\035\000\035\000\035\000\035\000\035\000\062\000\
000132|     \036\000\000\000\000\000\000\000\000\000\000\000\035\000\035\000\
000133|     \035\000\035\000\035\000\035\000\037\000\037\000\037\000\037\000\
000134|     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
000135|     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
000136|     \036\000\054\000\069\000\000\000\055\000\071\000\035\000\035\000\
000137|     \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\
000138|     \035\000\035\000\035\000\035\000\035\000\035\000\000\000\000\000\
000139|     \000\000\000\000\000\000\000\000\000\000\035\000\035\000\035\000\
000140|     \035\000\035\000\035\000\039\000\039\000\039\000\039\000\039\000\
000141|     \039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\
000142|     \039\000\039\000\039\000\039\000\039\000\039\000\039\000\255\255\
000143|     \069\000\255\255\000\000\000\000\000\000\035\000\035\000\035\000\
000144|     \035\000\035\000\035\000\042\000\042\000\042\000\042\000\042\000\
000145|     \042\000\042\000\042\000\042\000\042\000\000\000\000\000\000\000\
000146|     \255\255\000\000\056\000\072\000\045\000\073\000\045\000\000\000\
000147|     \043\000\044\000\044\000\044\000\044\000\044\000\044\000\044\000\
000148|     \044\000\044\000\044\000\044\000\044\000\044\000\044\000\044\000\
000149|     \044\000\044\000\044\000\044\000\044\000\044\000\044\000\044\000\
000150|     \044\000\044\000\044\000\044\000\044\000\044\000\044\000\082\000\
000151|     \043\000\255\255\000\000\000\000\000\000\000\000\000\000\000\000\
000152|     \000\000\000\000\065\000\000\000\000\000\000\000\000\000\000\000\
000153|     \000\000\255\255\000\000\255\255\000\000\000\000\000\000\079\000\
000154|     \000\000\255\255\000\000\000\000\079\000\000\000\255\255\085\000\
000155|     \085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\
000156|     \085\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\
000157|     \089\000\089\000\089\000\000\000\000\000\000\000\000\000\087\000\
000158|     \087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\
000159|     \087\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000160|     \087\000\087\000\087\000\087\000\087\000\087\000\000\000\000\000\
000161|     \000\000\081\000\000\000\255\255\000\000\000\000\000\000\000\000\
000162|     \000\000\000\000\000\000\000\000\000\000\088\000\088\000\088\000\
000163|     \088\000\088\000\088\000\088\000\088\000\088\000\088\000\086\000\
000164|     \087\000\087\000\087\000\087\000\087\000\087\000\088\000\088\000\
000165|     \088\000\088\000\088\000\088\000\090\000\090\000\090\000\090\000\
000166|     \090\000\090\000\090\000\090\000\090\000\090\000\000\000\255\255\
000167|     \074\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000168|     \000\000\000\000\000\000\000\000\000\000\000\000\088\000\088\000\
000169|     \088\000\088\000\088\000\088\000\000\000\000\000\000\000\000\000\
000170|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000171|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000172|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000173|     \000\000\000\000\000\000\000\000\000\000\000\000\255\255\000\000\
000174|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000175|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000176|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000177|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000178|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000179|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000180|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\255\
000181|     \000\000\000\000\000\000\000\000\000\000\083\000\000\000\255\255\
000182|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000183|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000184|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000185|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000186|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000187|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000188|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000189|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000190|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000191|     \000\000\000\000\000\000\000\000\000\000";
000192|   Lexing.lex_check = 
000193|    "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000194|     \255\255\000\000\000\000\064\000\255\255\000\000\255\255\029\000\
000195|     \255\255\255\255\255\255\029\000\255\255\255\255\255\255\255\255\
000196|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000197|     \000\000\255\255\000\000\000\000\255\255\000\000\029\000\000\000\
000198|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000199|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000200|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\
000201|     \020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000202|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000203|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000204|     \000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\
000205|     \023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000206|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000207|     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000208|     \000\000\000\000\000\000\000\000\008\000\000\000\000\000\022\000\
000209|     \022\000\024\000\041\000\024\000\024\000\024\000\024\000\024\000\
000210|     \024\000\024\000\024\000\024\000\024\000\025\000\072\000\025\000\
000211|     \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
000212|     \025\000\056\000\008\000\030\000\030\000\059\000\062\000\030\000\
000213|     \067\000\073\000\076\000\026\000\025\000\026\000\026\000\026\000\
000214|     \026\000\026\000\026\000\026\000\026\000\026\000\026\000\255\255\
000215|     \255\255\053\000\030\000\055\000\255\255\255\255\255\255\056\000\
000216|     \255\255\255\255\026\000\059\000\255\255\255\255\062\000\255\255\
000217|     \067\000\073\000\076\000\255\255\025\000\255\255\255\255\255\255\
000218|     \255\255\032\000\070\000\032\000\255\255\026\000\032\000\032\000\
000219|     \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\
000220|     \255\255\036\000\026\000\036\000\255\255\255\255\036\000\036\000\
000221|     \036\000\036\000\036\000\036\000\036\000\036\000\036\000\036\000\
000222|     \255\255\255\255\255\255\255\255\255\255\026\000\255\255\255\255\
000223|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000224|     \027\000\027\000\255\255\255\255\060\000\255\255\255\255\060\000\
000225|     \000\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000226|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000227|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000228|     \027\000\027\000\027\000\070\000\255\255\070\000\255\255\027\000\
000229|     \255\255\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000230|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000231|     \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\
000232|     \027\000\027\000\027\000\033\000\033\000\033\000\033\000\033\000\
000233|     \033\000\033\000\033\000\033\000\033\000\034\000\034\000\034\000\
000234|     \034\000\034\000\034\000\034\000\034\000\034\000\034\000\060\000\
000235|     \033\000\255\255\255\255\255\255\255\255\255\255\034\000\034\000\
000236|     \034\000\034\000\034\000\034\000\037\000\037\000\037\000\037\000\
000237|     \037\000\037\000\037\000\037\000\037\000\037\000\038\000\038\000\
000238|     \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\
000239|     \033\000\052\000\068\000\255\255\052\000\068\000\034\000\034\000\
000240|     \034\000\034\000\034\000\034\000\035\000\035\000\035\000\035\000\
000241|     \035\000\035\000\035\000\035\000\035\000\035\000\255\255\255\255\
000242|     \255\255\255\255\255\255\255\255\255\255\035\000\035\000\035\000\
000243|     \035\000\035\000\035\000\039\000\039\000\039\000\039\000\039\000\
000244|     \039\000\039\000\039\000\039\000\039\000\040\000\040\000\040\000\
000245|     \040\000\040\000\040\000\040\000\040\000\040\000\040\000\053\000\
000246|     \071\000\055\000\255\255\255\255\255\255\035\000\035\000\035\000\
000247|     \035\000\035\000\035\000\042\000\042\000\042\000\042\000\042\000\
000248|     \042\000\042\000\042\000\042\000\042\000\255\255\255\255\255\255\
000249|     \070\000\255\255\052\000\068\000\043\000\068\000\043\000\255\255\
000250|     \042\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
000251|     \043\000\043\000\043\000\044\000\044\000\044\000\044\000\044\000\
000252|     \044\000\044\000\044\000\044\000\044\000\045\000\045\000\045\000\
000253|     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\078\000\
000254|     \042\000\080\000\255\255\255\255\255\255\255\255\255\255\255\255\
000255|     \255\255\255\255\060\000\255\255\255\255\255\255\255\255\255\255\
000256|     \255\255\071\000\255\255\071\000\255\255\255\255\255\255\078\000\
000257|     \255\255\080\000\255\255\255\255\078\000\255\255\080\000\081\000\
000258|     \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\
000259|     \081\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\
000260|     \085\000\085\000\085\000\255\255\255\255\255\255\255\255\086\000\
000261|     \086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\
000262|     \086\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000263|     \086\000\086\000\086\000\086\000\086\000\086\000\255\255\255\255\
000264|     \255\255\078\000\255\255\080\000\255\255\255\255\255\255\255\255\
000265|     \255\255\255\255\255\255\255\255\255\255\087\000\087\000\087\000\
000266|     \087\000\087\000\087\000\087\000\087\000\087\000\087\000\081\000\
000267|     \086\000\086\000\086\000\086\000\086\000\086\000\087\000\087\000\
000268|     \087\000\087\000\087\000\087\000\089\000\089\000\089\000\089\000\
000269|     \089\000\089\000\089\000\089\000\089\000\089\000\255\255\052\000\
000270|     \068\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000271|     \255\255\255\255\255\255\255\255\255\255\255\255\087\000\087\000\
000272|     \087\000\087\000\087\000\087\000\255\255\255\255\255\255\255\255\
000273|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000274|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000275|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000276|     \255\255\255\255\255\255\255\255\255\255\255\255\071\000\255\255\
000277|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000278|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000279|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000280|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000281|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000282|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000283|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\081\000\
000284|     \255\255\255\255\255\255\255\255\255\255\078\000\255\255\080\000\
000285|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000286|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000287|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000288|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000289|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000290|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000291|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000292|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000293|     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000294|     \255\255\255\255\255\255\255\255\255\255";
000295|   Lexing.lex_base_code = 
000296|    "";
000297|   Lexing.lex_backtrk_code = 
000298|    "";
000299|   Lexing.lex_default_code = 
000300|    "";
000301|   Lexing.lex_trans_code = 
000302|    "";
000303|   Lexing.lex_check_code = 
000304|    "";
000305|   Lexing.lex_code = 
000306|    "";
000307| }
000308|  
000309| let rec token lexbuf =
000310|     (*[9890]*)__ocaml_lex_token_rec lexbuf 0
000311| and __ocaml_lex_token_rec lexbuf __ocaml_lex_state =
000312|   match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
000313|       | 0 ->
000314| # 75 "src/scanner.mll"
000315|                 ( P.EOF )
000316| # 317 "src/scanner.ml"
000317|  
000318|   | 1 ->
000319| # 76 "src/scanner.mll"
000320|                 ( token lexbuf )
000321| # 322 "src/scanner.ml"
000322|  
000323|   | 2 ->
000324| # 77 "src/scanner.mll"
000325|                 ( Lexing.new_line lexbuf; token lexbuf )
000326| # 327 "src/scanner.ml"
000327|  
000328|   | 3 ->
000329| # 78 "src/scanner.mll"
000330|                 ( let s = get lexbuf in
000331|                   try keyword s with Not_found -> P.NAME s
000332|                 )
000333| # 334 "src/scanner.ml"
000334|  
000335|   | 4 ->
000336| # 81 "src/scanner.mll"
000337|                  ( let s = get lexbuf in P.NUMBER (Ast.Int (int_of_string s)) )
000338| # 339 "src/scanner.ml"
000339|  
000340|   | 5 ->
000341| # 82 "src/scanner.mll"
000342|                  ( let s = get lexbuf in P.NUMBER (Ast.Hex (int_of_string s)) )
000343| # 344 "src/scanner.ml"
000344|  
000345|   | 6 ->
000346| # 83 "src/scanner.mll"
000347|                  ( let s = get lexbuf in P.NUMBER (Ast.Float (float_of_string s)) )
000348| # 349 "src/scanner.ml"
000349|  
000350|   | 7 ->
000351| # 85 "src/scanner.mll"
000352|                 ( P.CONC  )
000353| # 354 "src/scanner.ml"
000354|  
000355|   | 8 ->
000356| # 86 "src/scanner.mll"
000357|                 ( P.DOTS  )
000358| # 359 "src/scanner.ml"
000359|  
000360|   | 9 ->
000361| # 87 "src/scanner.mll"
000362|                 ( P.LE    )
000363| # 364 "src/scanner.ml"
000364|  
000365|   | 10 ->
000366| # 88 "src/scanner.mll"
000367|                 ( P.EQ    )
000368| # 369 "src/scanner.ml"
000369|  
000370|   | 11 ->
000371| # 89 "src/scanner.mll"
000372|                 ( P.ARROW )
000373| # 374 "src/scanner.ml"
000374|  
000375|   | 12 ->
000376| # 90 "src/scanner.mll"
000377|                 ( P.GE    )
000378| # 379 "src/scanner.ml"
000379|  
000380|   | 13 ->
000381| # 91 "src/scanner.mll"
000382|                 ( P.NE    )
000383| # 384 "src/scanner.ml"
000384|  
000385|   | 14 ->
000386| # 92 "src/scanner.mll"
000387|                 ( P.LPAR  )
000388| # 389 "src/scanner.ml"
000389|  
000390|   | 15 ->
000391| # 93 "src/scanner.mll"
000392|                 ( P.RPAR  )
000393| # 394 "src/scanner.ml"
000394|  
000395|   | 16 ->
000396| # 94 "src/scanner.mll"
000397|                 ( P.STAR  )
000398| # 399 "src/scanner.ml"
000399|  
000400|   | 17 ->
000401| # 95 "src/scanner.mll"
000402|                 ( P.PLUS  )
000403| # 404 "src/scanner.ml"
000404|  
000405|   | 18 ->
000406| # 96 "src/scanner.mll"
000407|                 ( P.COMMA )
000408| # 409 "src/scanner.ml"
000409|  
000410|   | 19 ->
000411| # 97 "src/scanner.mll"
000412|                 ( P.MINUS )
000413| # 414 "src/scanner.ml"
000414|  
000415|   | 20 ->
000416| # 98 "src/scanner.mll"
000417|                 ( P.DOT   )
000418| # 419 "src/scanner.ml"
000419|  
000420|   | 21 ->
000421| # 99 "src/scanner.mll"
000422|                 ( P.HASH  )
000423| # 424 "src/scanner.ml"
000424|  
000425|   | 22 ->
000426| # 100 "src/scanner.mll"
000427|                 ( P.SLASH )
000428| # 429 "src/scanner.ml"
000429|  
000430|   | 23 ->
000431| # 101 "src/scanner.mll"
000432|                 ( P.MOD   )
000433| # 434 "src/scanner.ml"
000434|  
000435|   | 24 ->
000436| # 102 "src/scanner.mll"
000437|                 ( P.COLON )
000438| # 439 "src/scanner.ml"
000439|  
000440|   | 25 ->
000441| # 103 "src/scanner.mll"
000442|                 ( P.SEMI  )
000443| # 444 "src/scanner.ml"
000444|  
000445|   | 26 ->
000446| # 104 "src/scanner.mll"
000447|                 ( P.LT    )
000448| # 449 "src/scanner.ml"
000449|  
000450|   | 27 ->
000451| # 105 "src/scanner.mll"
000452|                 ( P.GETS  )
000453| # 454 "src/scanner.ml"
000454|  
000455|   | 28 ->
000456| # 106 "src/scanner.mll"
000457|                 ( P.GT    )
000458| # 459 "src/scanner.ml"
000459|  
000460|   | 29 ->
000461| # 107 "src/scanner.mll"
000462|                 ( P.LSQ   )
000463| # 464 "src/scanner.ml"
000464|  
000465|   | 30 ->
000466| # 108 "src/scanner.mll"
000467|                 ( P.RSQ   )
000468| # 469 "src/scanner.ml"
000469|  
000470|   | 31 ->
000471| # 109 "src/scanner.mll"
000472|                 ( P.HAT   )
000473| # 474 "src/scanner.ml"
000474|  
000475|   | 32 ->
000476| # 110 "src/scanner.mll"
000477|                 ( P.LBRA  )
000478| # 479 "src/scanner.ml"
000479|  
000480|   | 33 ->
000481| # 111 "src/scanner.mll"
000482|                 ( P.RBRA  )
000483| # 484 "src/scanner.ml"
000484|  
000485|   | 34 ->
000486| # 116 "src/scanner.mll"
000487|                                  ( let level = String.length (get lexbuf) - 4 in (* sans --[ [ *)
000488|                                    longcomment level lexbuf )
000489| # 490 "src/scanner.ml"
000490|  
000491|   | 35 ->
000492| # 118 "src/scanner.mll"
000493|                                  ( Lexing.new_line lexbuf; token lexbuf )
000494| # 495 "src/scanner.ml"
000495|  
000496|   | 36 ->
000497| # 119 "src/scanner.mll"
000498|                                  ( token lexbuf )
000499| # 500 "src/scanner.ml"
000500|  
000501|   | 37 ->
000502| # 120 "src/scanner.mll"
000503|                  ( shortstring lexbuf "'" (Buffer.create 80) )
000504| # 505 "src/scanner.ml"
000505|  
000506|   | 38 ->
000507| # 121 "src/scanner.mll"
000508|                  ( shortstring lexbuf "\"" (Buffer.create 80) )
000509| # 510 "src/scanner.ml"
000510|  
000511|   | 39 ->
000512| # 122 "src/scanner.mll"
000513|                  ( let level = String.length (get lexbuf) - 2 in (* sans [ [ *)
000514|                    longstring level lexbuf 1 (Buffer.create 160) )
000515| # 516 "src/scanner.ml"
000516|  
000517|   | 40 ->
000518| # 125 "src/scanner.mll"
000519|                  ( error "illegal character" lexbuf.Lexing.lex_start_p )
000520| # 521 "src/scanner.ml"
000521|  
000522|   | __ocaml_lex_state -> (*[347]*)lexbuf.Lexing.refill_buff lexbuf; 
000523|       (*[347]*)__ocaml_lex_token_rec lexbuf __ocaml_lex_state
000524|  
000525| and longcomment level lexbuf =
000526|     (*[93]*)__ocaml_lex_longcomment_rec level lexbuf 60
000527| and __ocaml_lex_longcomment_rec level lexbuf __ocaml_lex_state =
000528|   match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
000529|       | 0 ->
000530| # 128 "src/scanner.mll"
000531|                  ( error "end of file in long comment" lexbuf.Lexing.lex_start_p )
000532| # 533 "src/scanner.ml"
000533|  
000534|   | 1 ->
000535| # 129 "src/scanner.mll"
000536|                  ( Lexing.new_line lexbuf; longcomment level lexbuf )
000537| # 538 "src/scanner.ml"
000538|  
000539|   | 2 ->
000540| # 130 "src/scanner.mll"
000541|                  ( let exitlevel = String.length (get lexbuf) - 2 in (* sans ] ] *)
000542|                    if level = exitlevel
000543|                    then token lexbuf
000544|                    else longcomment level lexbuf )
000545| # 546 "src/scanner.ml"
000546|  
000547|   | 3 ->
000548| # 134 "src/scanner.mll"
000549|                  ( longcomment level lexbuf )
000550| # 551 "src/scanner.ml"
000551|  
000552|   | __ocaml_lex_state -> (*[0]*)lexbuf.Lexing.refill_buff lexbuf; 
000553|       (*[0]*)__ocaml_lex_longcomment_rec level lexbuf __ocaml_lex_state
000554|  
000555| and longstring level lexbuf =
000556|     (*[36]*)__ocaml_lex_longstring_rec level lexbuf 68
000557| and __ocaml_lex_longstring_rec level lexbuf __ocaml_lex_state =
000558|   match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
000559|       | 0 ->
000560| # 137 "src/scanner.mll"
000561|                  ( fun n buf -> error "end of file in long string" lexbuf.Lexing.lex_start_p )
000562| # 563 "src/scanner.ml"
000563|  
000564|   | 1 ->
000565| # 138 "src/scanner.mll"
000566|                  ( fun n buf ->
000567|                      let s = get lexbuf in
000568|                      let exitlevel = String.length s - 2 in (* sans ] ] *)
000569|                      if level = exitlevel
000570|                      then P.LONGSTRING (Ast.Long (Buffer.contents buf))
000571|                      else ( Buffer.add_string buf s;
000572|                             longstring level lexbuf (n-1) buf) )
000573| # 574 "src/scanner.ml"
000574|  
000575|   | 2 ->
000576| # 145 "src/scanner.mll"
000577|                  ( fun n buf ->
000578|                      ( Buffer.add_string buf "[["
000579|                      ; longstring level lexbuf (n+1) buf
000580|                      ) )
000581| # 582 "src/scanner.ml"
000582|  
000583|   | 3 ->
000584| # 151 "src/scanner.mll"
000585|                  ( fun n buf -> 
000586|                      let s = get lexbuf in
000587|                      ( Buffer.add_string buf s
000588|                      ; longstring level lexbuf n buf
000589|                      ) )
000590| # 591 "src/scanner.ml"
000591|  
000592|   | 4 ->
000593| # 156 "src/scanner.mll"
000594|                  ( fun n buf -> 
000595|                      ( Buffer.add_char buf '\n'
000596|                      ; Lexing.new_line lexbuf (*; nl lexbuf map*)
000597|                      ; longstring level lexbuf n buf
000598|                      ) )
000599| # 600 "src/scanner.ml"
000600|  
000601|   | __ocaml_lex_state -> (*[1]*)lexbuf.Lexing.refill_buff lexbuf; 
000602|       (*[1]*)__ocaml_lex_longstring_rec level lexbuf __ocaml_lex_state
000603|  
000604| and shortstring lexbuf =
000605|     (*[343]*)__ocaml_lex_shortstring_rec lexbuf 78
000606| and __ocaml_lex_shortstring_rec lexbuf __ocaml_lex_state =
000607|   match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
000608|       | 0 ->
000609| # 163 "src/scanner.mll"
000610|                 ( fun eos buf -> error "end of file in string" lexbuf.Lexing.lex_start_p )
000611| # 612 "src/scanner.ml"
000612|  
000613|   | 1 ->
000614| # 164 "src/scanner.mll"
000615|                 ( fun eos buf -> error "end of line in string" lexbuf.Lexing.lex_start_p )
000616| # 617 "src/scanner.ml"
000617|  
000618|   | 2 ->
000619| # 165 "src/scanner.mll"
000620|                 ( fun eos buf -> 
000621|                   let s = get lexbuf in
000622|                   let s = "0" ^ (String.sub s 1 3) in (*starting at 'x', finishing at the second hexdigit*)
000623|                   let i = int_of_string s in (* now in OCaml's 0xhh format *)
000624|                   (Buffer.add_char buf (Char.chr i);
000625|                    shortstring lexbuf eos buf)
000626|                 )
000627| # 628 "src/scanner.ml"
000628|  
000629|   | 3 ->
000630| # 172 "src/scanner.mll"
000631|                 ( fun eos buf -> 
000632|                   let s = get lexbuf in
000633|                   let s = String.sub s 1 (String.length s - 1) in
000634|                   let i = int_of_string s in
000635|                   if i <= 255
000636|                   then
000637|                     (Buffer.add_char buf (Char.chr i);
000638|                      shortstring lexbuf eos buf)
000639|                   else error "decimal escape too large" lexbuf.Lexing.lex_start_p
000640|                 )
000641| # 642 "src/scanner.ml"
000642|  
000643|   | 4 ->
000644| # 182 "src/scanner.mll"
000645|                 ( fun eos buf -> 
000646|                   let c = getchar lexbuf 1 in
000647|                   let k = match c with
000648|                       | 'a'  -> '\007' (* '\a' *)
000649|                       | 'b'  -> '\b'
000650|                       | 'f'  -> '\012' (* '\f' *)
000651|                       | 'n'  -> '\n'
000652|                       | 'r'  -> '\r'
000653|                       | 't'  -> '\t'
000654|                       | 'v'  -> '\011' (* '\v' *)
000655|                       | '\n' -> '\n'
000656|                       | '\\' -> '\\'
000657|                       | '\"' -> '\"'
000658|                       | '\'' -> '\''
000659|                       | _    -> error "illegal escape sequence in string" lexbuf.Lexing.lex_start_p
000660|                   (*also handle: [ ]*)
000661|                   in (Buffer.add_char buf k;
000662|                       shortstring lexbuf eos buf)
000663|                  )
000664| # 665 "src/scanner.ml"
000665|  
000666|   | 5 ->
000667| # 202 "src/scanner.mll"
000668|                  ( fun eos buf -> 
000669|                    let s = get lexbuf  in
000670|                      ( Buffer.add_string buf s
000671|                      ; shortstring lexbuf eos buf
000672|                      )
000673|                  )
000674| # 675 "src/scanner.ml"
000675|  
000676|   | 6 ->
000677| # 208 "src/scanner.mll"
000678|                  ( fun eos buf ->
000679|                    let s = get lexbuf in
000680|                       if s = eos then
000681|                         match s with
000682|                           | "'" -> P.STRING (Ast.Char (Buffer.contents buf))
000683|                           | _   -> P.STRING (Ast.Normal (Buffer.contents buf))
000684|                       else
000685|                         ( Buffer.add_string buf s
000686|                         ; shortstring lexbuf eos buf
000687|                         )
000688|                   )
000689| # 690 "src/scanner.ml"
000690|  
000691|   | 7 ->
000692| # 219 "src/scanner.mll"
000693|                   ( fun eos buf -> assert false )
000694| # 695 "src/scanner.ml"
000695|  
000696|   | __ocaml_lex_state -> (*[0]*)lexbuf.Lexing.refill_buff lexbuf; 
000697|       (*[0]*)__ocaml_lex_shortstring_rec lexbuf __ocaml_lex_state
000698|  
000699| ;;
000700|  
000701| # 222 "src/scanner.mll"
000702|  
000703|         let str2str s = match s with
000704|           | Ast.Normal s -> "\"" ^ s ^ "\""
000705|           | Ast.Char s   -> "'" ^ s ^ "'"
000706|           | Ast.Long s   -> "[[" ^ s ^ "]]"
000707|         let tok2str = function
000708|           | P.AND         -> "AND"
000709|           | P.ARROW       -> "ARROW"
000710|           | P.BREAK       -> "BREAK"
000711|           | P.CASE        -> "CASE"
000712|           | P.COLON       -> "COLON"
000713|           | P.COMMA       -> "COMMA"
000714|           | P.CONC        -> "CONC"
000715|           | P.DEBUG_PRAGMA n-> "DEBUG_PRAGMA" ^ (string_of_int n)
000716|           | P.DO          -> "DO"
000717|           | P.DOT         -> "DOT"
000718|           | P.DOTS        -> "DOTS"
000719|           | P.ELSE        -> "ELSE"
000720|           | P.ELSEIF      -> "ELSEIF"
000721|           | P.END         -> "END"
000722|           | P.EOF         -> "EOF"
000723|           | P.EQ          -> "EQ"
000724|           | P.FOR         -> "FOR"
000725|           | P.FUNCTION    -> "FUNCTION"
000726|           | P.GE          -> "GE"
000727|           | P.GETS        -> "GETS"
000728|           | P.GLOBMATCH   -> "GLOBMATCH"
000729|           | P.GOTO        -> "GOTO"
000730|           | P.GT          -> "GT"
000731|           | P.HAT         -> "HAT"
000732|           | P.IF          -> "IF"
000733|           | P.IN          -> "IN"
000734|           | P.LBRA        -> "LBRA"
000735|           | P.LE          -> "LE"
000736|           | P.LOCAL       -> "LOCAL"
000737|           | P.LPAR        -> "LPAR"
000738|           | P.LSQ         -> "LSQ"
000739|           | P.LT          -> "LT"
000740|           | P.MINUS       -> "MINUS"
000741|           | P.NAME x      -> "NAME("^x^")"  
000742|           | P.NE          -> "NE"
000743|           | P.NIL         -> "NIL"
000744|           | P.TRUE        -> "TRUE"
000745|           | P.FALSE       -> "FALSE"
000746|           | P.NOT         -> "NOT"
000747|           | P.HASH        -> "HASH"
000748|           | P.NUMBER _    -> "NUMBER" 
000749|           | P.OF          -> "OF"
000750|           | P.OR          -> "OR"
000751|           | P.PLUS        -> "PLUS"
000752|           | P.RBRA        -> "RBRA"
000753|           | P.REPEAT      -> "REPEAT"
000754|           | P.RETURN      -> "RETURN"
000755|           | P.RPAR        -> "RPAR"
000756|           | P.RSQ         -> "RSQ"
000757|           | P.SEMI        -> "SEMI"
000758|           | P.SLASH       -> "SLASH"
000759|           | P.MOD         -> "MOD"
000760|           | P.STAR        -> "STAR"
000761|           | P.STRING x    -> "STRING("^(str2str x)^")" 
000762|           | P.LONGSTRING x -> "LONGSTRING("^(str2str x)^")" 
000763|           | P.THEN        -> "THEN"
000764|           | P.UNARY       -> "UNARY"
000765|           | P.UNTIL       -> "UNTIL"
000766|           | P.WHILE       -> "WHILE"
000767|           | P.WRONGTOKEN  -> "WRONGTOKEN"
000768|     
000769| # 770 "src/scanner.ml"

Legend:
   some code - line containing no point
   some code - line containing only visited points
   some code - line containing only unvisited points
   some code - line containing both visited and unvisited points