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



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



Source:

fold all unfold all
000001| type token =
000002|   | EOF
000003|   | COMMA
000004|   | LBRA
000005|   | RBRA
000006|   | LT
000007|   | GT
000008|   | COLON
000009|   | SEMI
000010|   | HAT
000011|   | STAR
000012|   | HASH
000013|   | SLASH
000014|   | MOD
000015|   | LPAR
000016|   | RPAR
000017|   | GETS
000018|   | PLUS
000019|   | MINUS
000020|   | DOT
000021|   | LSQ
000022|   | RSQ
000023|   | WRONGTOKEN
000024|   | NIL
000025|   | TRUE
000026|   | FALSE
000027|   | IF
000028|   | THEN
000029|   | ELSE
000030|   | ELSEIF
000031|   | WHILE
000032|   | DO
000033|   | REPEAT
000034|   | UNTIL
000035|   | BREAK
000036|   | FOR
000037|   | IN
000038|   | GOTO
000039|   | CASE
000040|   | GLOBMATCH
000041|   | OF
000042|   | END
000043|   | RETURN
000044|   | LOCAL
000045|   | FUNCTION
000046|   | DOTS
000047|   | ARROW
000048|   | NUMBER of (Ast.number)
000049|   | STRING of (Ast.str)
000050|   | LONGSTRING of (Ast.str)
000051|   | NAME of (string)
000052|   | DEBUG_PRAGMA of (int)
000053|   | AND
000054|   | OR
000055|   | EQ
000056|   | NE
000057|   | LE
000058|   | GE
000059|   | CONC
000060|   | UNARY
000061|   | NOT
000062|  
000063| open Parsing;;
000064| let _ = (*[1]*)parse_error;;
000065| # 11 "src/parser.mly"
000066|   (** Autogenerated parser module *)
000067|  
000068|   module A = Ast
000069|  
000070|   let unimp msg pos =
000071|     Error.error "Not implemented error" ("LuaTA does not support " ^ msg) pos
000072|  
000073|   let start_pos = Parsing.symbol_start_pos
000074|   let rhs_pos   = Parsing.rhs_start_pos
000075|  
000076|   let mk_stmt pos s = { Ast.stmt_pos = pos;
000077|                         Ast.stmt     = s }
000078|  
000079|   let unop op e = A.Unop (op, e)
000080|   let binop l op r = A.Binop (l, op, r)
000081|  
000082|   let de_table (unnamed, named) =
000083|     A.Lit (A.Table (unnamed, named))
000084|  
000085| # 86 "src/parser.ml"
000086| let yytransl_const = [|
000087|     0 (* EOF *);
000088|   257 (* COMMA *);
000089|   258 (* LBRA *);
000090|   259 (* RBRA *);
000091|   260 (* LT *);
000092|   261 (* GT *);
000093|   262 (* COLON *);
000094|   263 (* SEMI *);
000095|   264 (* HAT *);
000096|   265 (* STAR *);
000097|   266 (* HASH *);
000098|   267 (* SLASH *);
000099|   268 (* MOD *);
000100|   269 (* LPAR *);
000101|   270 (* RPAR *);
000102|   271 (* GETS *);
000103|   272 (* PLUS *);
000104|   273 (* MINUS *);
000105|   274 (* DOT *);
000106|   275 (* LSQ *);
000107|   276 (* RSQ *);
000108|   277 (* WRONGTOKEN *);
000109|   278 (* NIL *);
000110|   279 (* TRUE *);
000111|   280 (* FALSE *);
000112|   281 (* IF *);
000113|   282 (* THEN *);
000114|   283 (* ELSE *);
000115|   284 (* ELSEIF *);
000116|   285 (* WHILE *);
000117|   286 (* DO *);
000118|   287 (* REPEAT *);
000119|   288 (* UNTIL *);
000120|   289 (* BREAK *);
000121|   290 (* FOR *);
000122|   291 (* IN *);
000123|   292 (* GOTO *);
000124|   293 (* CASE *);
000125|   294 (* GLOBMATCH *);
000126|   295 (* OF *);
000127|   296 (* END *);
000128|   297 (* RETURN *);
000129|   298 (* LOCAL *);
000130|   299 (* FUNCTION *);
000131|   300 (* DOTS *);
000132|   301 (* ARROW *);
000133|   307 (* AND *);
000134|   308 (* OR *);
000135|   309 (* EQ *);
000136|   310 (* NE *);
000137|   311 (* LE *);
000138|   312 (* GE *);
000139|   313 (* CONC *);
000140|   314 (* UNARY *);
000141|   315 (* NOT *);
000142|     0|]
000143|  
000144| let yytransl_block = [|
000145|   302 (* NUMBER *);
000146|   303 (* STRING *);
000147|   304 (* LONGSTRING *);
000148|   305 (* NAME *);
000149|   306 (* DEBUG_PRAGMA *);
000150|     0|]
000151|  
000152| let yylhs = "\255\255\
000153| \001\000\005\000\005\000\006\000\006\000\007\000\003\000\003\000\
000154| \003\000\003\000\009\000\009\000\009\000\010\000\010\000\010\000\
000155| \012\000\012\000\013\000\013\000\015\000\015\000\011\000\011\000\
000156| \020\000\020\000\023\000\023\000\023\000\023\000\023\000\022\000\
000157| \022\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
000158| \014\000\014\000\014\000\014\000\014\000\026\000\026\000\026\000\
000159| \027\000\027\000\004\000\004\000\016\000\032\000\032\000\032\000\
000160| \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\
000161| \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\
000162| \032\000\032\000\032\000\032\000\032\000\032\000\032\000\033\000\
000163| \033\000\035\000\034\000\034\000\034\000\034\000\034\000\025\000\
000164| \025\000\025\000\002\000\002\000\039\000\040\000\040\000\037\000\
000165| \037\000\038\000\038\000\041\000\041\000\017\000\017\000\024\000\
000166| \024\000\031\000\031\000\019\000\019\000\008\000\008\000\008\000\
000167| \042\000\042\000\043\000\043\000\044\000\036\000\036\000\046\000\
000168| \046\000\048\000\048\000\049\000\049\000\047\000\047\000\050\000\
000169| \045\000\045\000\051\000\051\000\018\000\018\000\021\000\021\000\
000170| \028\000\028\000\029\000\029\000\030\000\030\000\000\000"
000171|  
000172| let yylen = "\002\000\
000173| \002\000\001\000\003\000\001\000\003\000\005\000\000\000\002\000\
000174| \001\000\001\000\002\000\003\000\003\000\002\000\003\000\003\000\
000175| \000\000\001\000\001\000\002\000\000\000\001\000\004\000\003\000\
000176| \003\000\001\000\001\000\003\000\004\000\003\000\004\000\003\000\
000177| \003\000\001\000\001\000\002\000\003\000\005\000\004\000\006\000\
000178| \010\000\007\000\003\000\004\000\003\000\000\000\002\000\005\000\
000179| \000\000\002\000\001\000\004\000\001\000\003\000\003\000\003\000\
000180| \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
000181| \003\000\003\000\003\000\003\000\002\000\002\000\002\000\001\000\
000182| \001\000\001\000\001\000\001\000\001\000\001\000\002\000\001\000\
000183| \001\000\003\000\001\000\003\000\003\000\003\000\004\000\003\000\
000184| \001\000\001\000\002\000\004\000\004\000\003\000\004\000\000\000\
000185| \001\000\001\000\002\000\000\000\001\000\002\000\003\000\000\000\
000186| \002\000\000\000\001\000\001\000\003\000\000\000\001\000\002\000\
000187| \001\000\003\000\000\000\002\000\001\000\002\000\002\000\000\000\
000188| \002\000\000\000\001\000\000\000\002\000\001\000\003\000\003\000\
000189| \000\000\002\000\001\000\003\000\001\000\003\000\001\000\003\000\
000190| \001\000\003\000\001\000\003\000\000\000\002\000\002\000"
000191|  
000192| let yydefred = "\000\000\
000193| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000194| \035\000\000\000\000\000\000\000\000\000\027\000\143\000\000\000\
000195| \000\000\009\000\010\000\000\000\000\000\000\000\034\000\000\000\
000196| \000\000\000\000\133\000\008\000\000\000\000\000\000\000\000\000\
000197| \072\000\073\000\074\000\000\000\075\000\080\000\081\000\083\000\
000198| \000\000\000\000\053\000\076\000\000\000\078\000\000\000\000\000\
000199| \000\000\000\000\000\000\000\000\036\000\000\000\139\000\000\000\
000200| \004\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\
000201| \000\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\126\000\000\000\000\000\000\000\000\000\000\000\
000204| \079\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000205| \000\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\037\000\
000207| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\045\000\
000208| \043\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\
000209| \012\000\013\000\016\000\015\000\000\000\000\000\134\000\000\000\
000210| \136\000\000\000\105\000\030\000\000\000\000\000\033\000\090\000\
000211| \089\000\028\000\000\000\032\000\000\000\082\000\000\000\118\000\
000212| \000\000\119\000\000\000\130\000\084\000\111\000\117\000\000\000\
000213| \000\000\113\000\000\000\000\000\000\000\000\000\000\000\000\000\
000214| \000\000\000\000\000\000\098\000\000\000\000\000\000\000\000\000\
000215| \000\000\000\000\000\000\000\000\000\000\000\000\086\000\000\000\
000216| \085\000\000\000\000\000\000\000\000\000\138\000\000\000\044\000\
000217| \140\000\000\000\003\000\005\000\000\000\022\000\052\000\000\000\
000218| \101\000\091\000\000\000\031\000\000\000\029\000\000\000\000\000\
000219| \000\000\121\000\127\000\000\000\000\000\000\000\112\000\000\000\
000220| \099\000\000\000\000\000\087\000\000\000\000\000\000\000\038\000\
000221| \000\000\000\000\000\000\000\000\088\000\125\000\000\000\116\000\
000222| \114\000\103\000\094\000\000\000\047\000\000\000\040\000\000\000\
000223| \000\000\000\000\006\000\095\000\000\000\000\000\000\000\042\000\
000224| \000\000\000\000\000\000\048\000\000\000\041\000"
000225|  
000226| let yydgoto = "\002\000\
000227| \015\000\135\000\016\000\017\000\058\000\059\000\089\000\160\000\
000228| \018\000\019\000\020\000\063\000\064\000\021\000\199\000\124\000\
000229| \201\000\022\000\125\000\023\000\024\000\025\000\026\000\170\000\
000230| \143\000\223\000\247\000\052\000\056\000\120\000\126\000\043\000\
000231| \044\000\045\000\046\000\080\000\202\000\171\000\027\000\172\000\
000232| \173\000\161\000\215\000\162\000\081\000\152\000\082\000\154\000\
000233| \210\000\083\000\084\000"
000234|  
000235| let yysindex = "\118\000\
000236| \112\007\000\000\112\007\020\255\020\255\020\255\112\007\112\007\
000237| \000\000\008\255\082\255\034\255\119\255\000\000\000\000\083\255\
000238| \178\000\000\000\000\000\180\255\180\255\035\255\000\000\099\255\
000239| \075\255\117\255\000\000\000\000\171\255\020\255\020\255\020\255\
000240| \000\000\000\000\000\000\178\255\000\000\000\000\000\000\000\000\
000241| \020\255\071\006\000\000\000\000\147\255\000\000\087\255\085\006\
000242| \161\255\183\255\185\255\017\255\000\000\174\255\000\000\111\255\
000243| \000\000\178\255\110\255\020\255\000\000\180\255\133\007\191\255\
000244| \133\007\191\255\004\255\020\255\004\255\020\255\175\255\179\255\
000245| \020\255\025\255\186\255\020\255\025\255\207\255\003\007\222\255\
000246| \219\255\226\255\000\000\235\255\225\255\095\006\225\255\233\254\
000247| \000\000\225\255\020\255\020\255\020\255\020\255\020\255\020\255\
000248| \231\255\020\255\020\255\020\255\020\255\020\255\020\255\020\255\
000249| \020\255\020\255\189\255\020\255\025\255\112\007\112\007\000\000\
000250| \020\255\020\255\190\255\020\255\178\255\192\255\020\255\000\000\
000251| \000\000\195\255\199\255\003\007\241\255\236\255\000\000\000\000\
000252| \000\000\000\000\000\000\000\000\020\255\231\255\000\000\241\255\
000253| \000\000\241\255\000\000\000\000\149\006\020\255\000\000\000\000\
000254| \000\000\000\000\159\006\000\000\020\255\000\000\200\255\000\000\
000255| \200\255\000\000\020\255\000\000\000\000\000\000\000\000\238\255\
000256| \252\255\000\000\023\255\023\255\225\255\225\255\225\255\225\255\
000257| \000\000\025\255\231\255\000\000\127\255\198\255\198\255\067\007\
000258| \057\007\023\255\023\255\023\255\023\255\023\255\000\000\169\006\
000259| \000\000\155\255\215\255\003\007\003\006\000\000\018\255\000\000\
000260| \000\000\241\255\000\000\000\000\020\255\000\000\000\000\179\006\
000261| \000\000\000\000\231\255\000\000\240\255\000\000\003\007\207\255\
000262| \226\255\000\000\000\000\003\007\112\007\073\255\000\000\231\255\
000263| \000\000\208\255\020\255\000\000\112\007\020\255\216\255\000\000\
000264| \020\255\112\007\000\000\231\255\000\000\000\000\223\255\000\000\
000265| \000\000\000\000\000\000\233\006\000\000\243\006\000\000\017\006\
000266| \227\255\231\255\000\000\000\000\112\007\020\255\242\255\000\000\
000267| \155\255\003\007\112\007\000\000\254\255\000\000"
000268|  
000269| let yyrindex = "\000\000\
000270| \004\000\000\000\247\000\000\000\000\000\000\000\172\255\086\255\
000271| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\003\
000272| \000\000\000\000\000\000\147\005\147\005\000\000\000\000\000\000\
000273| \147\004\063\255\000\000\000\000\021\255\000\000\000\000\000\000\
000274| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000275| \000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\
000276| \000\000\000\000\019\255\000\000\000\000\000\000\000\000\218\004\
000277| \000\000\000\000\007\000\168\002\000\000\243\004\054\002\170\005\
000278| \111\002\170\005\000\000\000\000\000\000\000\000\000\000\000\000\
000279| \000\000\000\000\000\000\000\000\000\000\240\005\048\255\000\000\
000280| \036\000\037\000\000\000\160\255\058\000\000\000\115\000\033\000\
000281| \000\000\172\000\000\000\000\000\000\000\000\000\000\000\000\000\
000282| \232\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000283| \000\000\000\000\000\000\000\000\000\000\093\255\172\255\000\000\
000284| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000285| \000\000\000\000\000\000\000\000\200\005\089\003\207\001\000\000\
000286| \000\000\000\000\000\000\000\000\000\000\184\255\000\000\019\005\
000287| \000\000\056\005\000\000\000\000\000\000\046\000\000\000\000\000\
000288| \000\000\000\000\000\000\000\000\000\000\000\000\048\000\000\000\
000289| \061\000\000\000\168\255\000\000\000\000\000\000\000\000\000\000\
000290| \052\000\000\000\185\002\228\002\229\000\036\001\093\001\150\001\
000291| \190\004\000\000\207\005\000\000\000\000\071\002\128\002\017\004\
000292| \073\004\028\003\071\003\130\003\173\003\230\003\000\000\000\000\
000293| \000\000\028\000\000\000\084\005\000\000\000\000\000\000\000\000\
000294| \000\000\121\005\000\000\000\000\000\000\000\000\000\000\000\000\
000295| \000\000\000\000\034\007\000\000\000\000\000\000\176\255\000\000\
000296| \037\000\000\000\000\000\173\255\172\255\000\000\000\000\110\004\
000297| \000\000\000\000\000\000\000\000\172\255\000\000\000\000\000\000\
000298| \000\000\172\255\008\002\232\255\000\000\000\000\000\000\000\000\
000299| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\041\000\
000300| \000\000\084\007\000\000\000\000\093\255\000\000\000\000\000\000\
000301| \028\000\043\000\172\255\000\000\000\000\000\000"
000302|  
000303| let yygindex = "\000\000\
000304| \000\000\007\001\074\001\251\255\000\000\000\000\214\255\000\000\
000305| \126\000\133\000\000\000\058\001\008\000\000\000\000\000\056\000\
000306| \165\255\000\000\211\255\000\000\000\000\000\000\000\000\064\000\
000307| \188\255\087\000\000\000\000\000\000\000\000\000\195\000\196\255\
000308| \193\255\000\000\194\255\000\000\000\000\129\255\000\000\098\255\
000309| \000\000\000\000\000\000\124\000\000\000\000\000\200\000\177\255\
000310| \000\000\199\000\000\000"
000311|  
000312| let yytablesize = 2230
000313| let yytable = "\127\000\
000314| \077\000\049\000\050\000\007\000\156\000\169\000\203\000\127\000\
000315| \148\000\127\000\144\000\145\000\217\000\144\000\145\000\121\000\
000316| \133\000\115\000\197\000\137\000\158\000\029\000\136\000\129\000\
000317| \138\000\159\000\029\000\129\000\066\000\030\000\093\000\094\000\
000318| \031\000\095\000\096\000\067\000\032\000\142\000\098\000\099\000\
000319| \185\000\033\000\034\000\035\000\217\000\144\000\145\000\226\000\
000320| \131\000\068\000\131\000\116\000\134\000\137\000\131\000\127\000\
000321| \051\000\071\000\127\000\042\000\047\000\048\000\036\000\135\000\
000322| \104\000\037\000\038\000\039\000\040\000\128\000\191\000\038\000\
000323| \039\000\194\000\192\000\104\000\054\000\135\000\041\000\106\000\
000324| \071\000\127\000\055\000\217\000\079\000\085\000\086\000\087\000\
000325| \074\000\077\000\091\000\092\000\072\000\073\000\093\000\094\000\
000326| \090\000\095\000\096\000\069\000\242\000\216\000\098\000\099\000\
000327| \186\000\187\000\144\000\145\000\109\000\104\000\104\000\118\000\
000328| \110\000\070\000\069\000\122\000\232\000\007\000\001\000\007\000\
000329| \007\000\159\000\071\000\060\000\234\000\119\000\007\000\123\000\
000330| \141\000\230\000\053\000\147\000\007\000\007\000\075\000\076\000\
000331| \227\000\100\000\101\000\102\000\103\000\104\000\105\000\106\000\
000332| \218\000\219\000\163\000\164\000\165\000\166\000\167\000\168\000\
000333| \071\000\174\000\175\000\176\000\177\000\178\000\179\000\180\000\
000334| \181\000\182\000\122\000\184\000\107\000\108\000\122\000\057\000\
000335| \188\000\189\000\123\000\070\000\029\000\132\000\123\000\132\000\
000336| \128\000\061\000\128\000\132\000\030\000\221\000\222\000\031\000\
000337| \096\000\104\000\062\000\032\000\200\000\130\000\088\000\132\000\
000338| \033\000\034\000\035\000\129\000\104\000\131\000\096\000\114\000\
000339| \112\000\100\000\100\000\004\000\207\000\093\000\094\000\231\000\
000340| \095\000\096\000\212\000\007\000\007\000\036\000\113\000\237\000\
000341| \037\000\038\000\039\000\078\000\241\000\149\000\117\000\139\000\
000342| \150\000\151\000\153\000\140\000\065\000\041\000\104\000\104\000\
000343| \093\000\104\000\146\000\155\000\071\000\183\000\190\000\249\000\
000344| \193\000\197\000\198\000\195\000\104\000\253\000\007\000\196\000\
000345| \208\000\100\000\100\000\213\000\214\000\229\000\224\000\239\000\
000346| \235\000\077\000\104\000\077\000\077\000\077\000\243\000\077\000\
000347| \077\000\077\000\248\000\077\000\077\000\104\000\077\000\251\000\
000348| \077\000\077\000\236\000\002\000\077\000\238\000\104\000\104\000\
000349| \240\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\
000350| \077\000\077\000\077\000\062\000\077\000\254\000\120\000\122\000\
000351| \077\000\077\000\077\000\077\000\007\000\250\000\110\000\104\000\
000352| \104\000\077\000\124\000\077\000\077\000\077\000\077\000\077\000\
000353| \077\000\077\000\071\000\106\000\071\000\071\000\071\000\123\000\
000354| \071\000\115\000\071\000\046\000\071\000\071\000\049\000\071\000\
000355| \050\000\071\000\071\000\137\000\028\000\071\000\065\000\252\000\
000356| \205\000\233\000\071\000\071\000\071\000\071\000\071\000\071\000\
000357| \071\000\071\000\071\000\071\000\063\000\071\000\209\000\211\000\
000358| \000\000\071\000\071\000\071\000\071\000\000\000\000\000\000\000\
000359| \000\000\000\000\071\000\000\000\071\000\071\000\071\000\071\000\
000360| \071\000\071\000\071\000\069\000\000\000\069\000\069\000\069\000\
000361| \000\000\069\000\000\000\069\000\000\000\069\000\069\000\000\000\
000362| \069\000\000\000\069\000\069\000\000\000\000\000\069\000\000\000\
000363| \000\000\000\000\000\000\069\000\069\000\069\000\069\000\069\000\
000364| \069\000\069\000\069\000\069\000\069\000\064\000\069\000\000\000\
000365| \000\000\000\000\069\000\069\000\069\000\069\000\000\000\000\000\
000366| \000\000\000\000\000\000\069\000\000\000\069\000\069\000\069\000\
000367| \069\000\069\000\069\000\069\000\070\000\000\000\070\000\070\000\
000368| \070\000\000\000\070\000\000\000\070\000\000\000\070\000\070\000\
000369| \000\000\070\000\000\000\070\000\070\000\000\000\000\000\070\000\
000370| \000\000\000\000\000\000\000\000\070\000\070\000\070\000\070\000\
000371| \070\000\070\000\070\000\070\000\070\000\070\000\108\000\070\000\
000372| \000\000\000\000\000\000\070\000\070\000\070\000\070\000\000\000\
000373| \000\000\000\000\000\000\000\000\070\000\000\000\070\000\070\000\
000374| \070\000\070\000\070\000\070\000\070\000\065\000\000\000\065\000\
000375| \065\000\065\000\000\000\065\000\000\000\065\000\000\000\065\000\
000376| \065\000\000\000\065\000\000\000\065\000\065\000\000\000\000\000\
000377| \065\000\000\000\000\000\000\000\000\000\065\000\065\000\065\000\
000378| \065\000\065\000\065\000\065\000\065\000\065\000\065\000\109\000\
000379| \065\000\000\000\000\000\000\000\065\000\065\000\065\000\065\000\
000380| \000\000\007\000\007\000\000\000\000\000\065\000\007\000\065\000\
000381| \065\000\065\000\065\000\065\000\065\000\065\000\007\000\007\000\
000382| \000\000\000\000\000\000\000\000\062\000\000\000\062\000\062\000\
000383| \062\000\000\000\062\000\000\000\062\000\000\000\062\000\062\000\
000384| \000\000\062\000\000\000\062\000\062\000\011\000\000\000\062\000\
000385| \000\000\000\000\000\000\000\000\062\000\062\000\062\000\062\000\
000386| \062\000\062\000\062\000\062\000\062\000\062\000\060\000\062\000\
000387| \000\000\000\000\000\000\062\000\062\000\062\000\062\000\000\000\
000388| \000\000\000\000\000\000\000\000\062\000\000\000\062\000\062\000\
000389| \062\000\062\000\062\000\062\000\062\000\063\000\000\000\063\000\
000390| \063\000\063\000\000\000\063\000\000\000\063\000\000\000\063\000\
000391| \063\000\000\000\063\000\000\000\063\000\063\000\014\000\000\000\
000392| \063\000\000\000\000\000\000\000\000\000\063\000\063\000\063\000\
000393| \063\000\063\000\063\000\063\000\063\000\063\000\063\000\061\000\
000394| \063\000\000\000\000\000\000\000\063\000\063\000\063\000\063\000\
000395| \000\000\000\000\000\000\000\000\000\000\063\000\000\000\063\000\
000396| \063\000\063\000\063\000\063\000\063\000\063\000\064\000\000\000\
000397| \064\000\064\000\064\000\000\000\064\000\000\000\064\000\000\000\
000398| \064\000\064\000\000\000\064\000\000\000\064\000\064\000\106\000\
000399| \000\000\064\000\000\000\000\000\000\000\000\000\064\000\064\000\
000400| \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\
000401| \055\000\064\000\000\000\000\000\000\000\064\000\064\000\064\000\
000402| \064\000\000\000\000\000\000\000\000\000\000\000\064\000\000\000\
000403| \064\000\064\000\064\000\064\000\064\000\064\000\064\000\108\000\
000404| \000\000\000\000\053\000\053\000\000\000\108\000\053\000\053\000\
000405| \000\000\053\000\053\000\000\000\108\000\000\000\053\000\053\000\
000406| \000\000\000\000\000\000\056\000\000\000\000\000\000\000\108\000\
000407| \000\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
000408| \108\000\000\000\108\000\000\000\000\000\000\000\108\000\108\000\
000409| \108\000\108\000\000\000\000\000\000\000\000\000\000\000\108\000\
000410| \000\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\
000411| \109\000\000\000\051\000\053\000\053\000\000\000\109\000\053\000\
000412| \053\000\000\000\053\000\053\000\000\000\109\000\000\000\053\000\
000413| \053\000\000\000\000\000\054\000\000\000\000\000\000\000\000\000\
000414| \109\000\000\000\109\000\109\000\109\000\109\000\109\000\109\000\
000415| \109\000\109\000\000\000\109\000\000\000\000\000\000\000\109\000\
000416| \109\000\109\000\109\000\000\000\000\000\000\000\000\000\000\000\
000417| \109\000\000\000\053\000\053\000\053\000\053\000\053\000\053\000\
000418| \053\000\000\000\000\000\000\000\000\000\000\000\057\000\060\000\
000419| \000\000\060\000\060\000\060\000\000\000\060\000\000\000\000\000\
000420| \011\000\011\000\000\000\000\000\060\000\011\000\060\000\060\000\
000421| \021\000\000\000\060\000\000\000\000\000\011\000\011\000\060\000\
000422| \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\
000423| \060\000\000\000\060\000\000\000\000\000\000\000\060\000\060\000\
000424| \060\000\060\000\000\000\000\000\000\000\000\000\000\000\060\000\
000425| \000\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\
000426| \061\000\058\000\061\000\061\000\061\000\000\000\061\000\000\000\
000427| \000\000\014\000\014\000\000\000\000\000\061\000\014\000\061\000\
000428| \061\000\000\000\000\000\061\000\000\000\000\000\014\000\014\000\
000429| \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\
000430| \061\000\061\000\000\000\061\000\000\000\000\000\000\000\061\000\
000431| \061\000\061\000\061\000\000\000\059\000\000\000\106\000\000\000\
000432| \061\000\000\000\061\000\061\000\061\000\061\000\061\000\061\000\
000433| \061\000\055\000\000\000\055\000\055\000\055\000\000\000\055\000\
000434| \000\000\000\000\106\000\106\000\000\000\000\000\055\000\106\000\
000435| \000\000\000\000\000\000\000\000\055\000\000\000\000\000\106\000\
000436| \000\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\
000437| \055\000\055\000\055\000\000\000\055\000\000\000\000\000\000\000\
000438| \055\000\055\000\055\000\055\000\056\000\066\000\056\000\056\000\
000439| \056\000\055\000\056\000\055\000\055\000\055\000\055\000\055\000\
000440| \055\000\056\000\000\000\000\000\000\000\000\000\000\000\056\000\
000441| \000\000\000\000\000\000\000\000\056\000\056\000\056\000\056\000\
000442| \056\000\056\000\056\000\056\000\056\000\056\000\000\000\056\000\
000443| \000\000\000\000\000\000\056\000\056\000\056\000\056\000\000\000\
000444| \067\000\000\000\000\000\000\000\056\000\000\000\056\000\056\000\
000445| \056\000\056\000\056\000\056\000\054\000\000\000\054\000\054\000\
000446| \054\000\000\000\054\000\000\000\000\000\051\000\051\000\000\000\
000447| \000\000\054\000\051\000\000\000\000\000\000\000\000\000\054\000\
000448| \000\000\000\000\051\000\000\000\054\000\054\000\054\000\054\000\
000449| \054\000\054\000\054\000\054\000\054\000\054\000\000\000\054\000\
000450| \000\000\000\000\000\000\054\000\054\000\054\000\054\000\057\000\
000451| \068\000\057\000\057\000\057\000\054\000\057\000\054\000\054\000\
000452| \054\000\054\000\054\000\054\000\057\000\000\000\000\000\000\000\
000453| \000\000\000\000\057\000\000\000\000\000\000\000\000\000\057\000\
000454| \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\
000455| \057\000\000\000\057\000\000\000\000\000\102\000\057\000\057\000\
000456| \057\000\057\000\000\000\021\000\021\000\000\000\000\000\057\000\
000457| \021\000\057\000\057\000\057\000\057\000\057\000\057\000\000\000\
000458| \021\000\000\000\058\000\000\000\058\000\058\000\058\000\000\000\
000459| \058\000\000\000\000\000\000\000\000\000\000\000\000\000\058\000\
000460| \000\000\000\000\026\000\000\000\000\000\058\000\000\000\000\000\
000461| \000\000\000\000\058\000\058\000\058\000\058\000\058\000\058\000\
000462| \058\000\058\000\058\000\058\000\000\000\058\000\000\000\000\000\
000463| \000\000\058\000\058\000\058\000\058\000\059\000\000\000\059\000\
000464| \059\000\059\000\058\000\059\000\058\000\058\000\058\000\058\000\
000465| \058\000\058\000\059\000\000\000\000\000\023\000\000\000\000\000\
000466| \059\000\000\000\000\000\000\000\000\000\059\000\059\000\059\000\
000467| \059\000\059\000\059\000\059\000\059\000\059\000\059\000\000\000\
000468| \059\000\000\000\000\000\000\000\059\000\059\000\059\000\059\000\
000469| \000\000\141\000\000\000\000\000\000\000\059\000\000\000\059\000\
000470| \059\000\059\000\059\000\059\000\059\000\000\000\066\000\000\000\
000471| \066\000\066\000\066\000\000\000\066\000\000\000\000\000\000\000\
000472| \000\000\000\000\019\000\066\000\000\000\000\000\000\000\000\000\
000473| \000\000\066\000\000\000\000\000\000\000\000\000\066\000\066\000\
000474| \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\
000475| \000\000\066\000\000\000\000\000\000\000\066\000\066\000\066\000\
000476| \066\000\067\000\024\000\067\000\000\000\000\000\066\000\067\000\
000477| \066\000\066\000\066\000\066\000\066\000\066\000\067\000\000\000\
000478| \000\000\000\000\000\000\000\000\067\000\000\000\000\000\000\000\
000479| \000\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\
000480| \067\000\067\000\067\000\000\000\067\000\000\000\000\000\025\000\
000481| \067\000\067\000\067\000\067\000\000\000\000\000\000\000\000\000\
000482| \000\000\067\000\000\000\067\000\067\000\000\000\000\000\000\000\
000483| \000\000\068\000\000\000\068\000\000\000\000\000\000\000\068\000\
000484| \000\000\000\000\000\000\039\000\000\000\000\000\068\000\000\000\
000485| \000\000\000\000\000\000\000\000\068\000\000\000\000\000\000\000\
000486| \000\000\068\000\068\000\068\000\068\000\068\000\068\000\068\000\
000487| \068\000\068\000\068\000\000\000\068\000\000\000\000\000\104\000\
000488| \068\000\068\000\068\000\068\000\102\000\000\000\000\000\000\000\
000489| \142\000\068\000\104\000\000\000\068\000\000\000\000\000\102\000\
000490| \102\000\000\000\000\000\000\000\000\000\000\000\102\000\000\000\
000491| \102\000\102\000\102\000\102\000\102\000\102\000\102\000\102\000\
000492| \000\000\102\000\017\000\000\000\104\000\102\000\102\000\102\000\
000493| \102\000\026\000\000\000\000\000\104\000\104\000\102\000\104\000\
000494| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000495| \000\000\018\000\000\000\026\000\000\000\026\000\026\000\026\000\
000496| \026\000\026\000\026\000\026\000\026\000\000\000\026\000\000\000\
000497| \000\000\000\000\026\000\026\000\026\000\026\000\000\000\000\000\
000498| \000\000\104\000\104\000\026\000\023\000\000\000\000\000\107\000\
000499| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\101\000\
000500| \101\000\000\000\000\000\000\000\000\000\000\000\023\000\000\000\
000501| \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\
000502| \141\000\023\000\000\000\000\000\000\000\023\000\023\000\023\000\
000503| \023\000\000\000\000\000\000\000\000\000\000\000\023\000\000\000\
000504| \000\000\000\000\141\000\000\000\141\000\141\000\141\000\141\000\
000505| \141\000\141\000\141\000\141\000\000\000\141\000\000\000\019\000\
000506| \000\000\141\000\141\000\141\000\141\000\000\000\000\000\000\000\
000507| \000\000\000\000\141\000\019\000\000\000\019\000\019\000\019\000\
000508| \019\000\019\000\019\000\019\000\019\000\000\000\019\000\000\000\
000509| \000\000\024\000\019\000\019\000\019\000\019\000\000\000\000\000\
000510| \000\000\000\000\000\000\019\000\000\000\000\000\000\000\000\000\
000511| \000\000\000\000\000\000\024\000\000\000\024\000\024\000\024\000\
000512| \024\000\024\000\024\000\024\000\024\000\000\000\024\000\000\000\
000513| \000\000\000\000\024\000\024\000\024\000\024\000\025\000\000\000\
000514| \000\000\000\000\000\000\024\000\000\000\000\000\000\000\000\000\
000515| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000516| \025\000\000\000\025\000\025\000\025\000\025\000\025\000\025\000\
000517| \025\000\025\000\039\000\025\000\000\000\000\000\000\000\025\000\
000518| \025\000\025\000\025\000\000\000\000\000\000\000\000\000\000\000\
000519| \025\000\000\000\000\000\000\000\039\000\000\000\039\000\039\000\
000520| \039\000\039\000\039\000\039\000\039\000\039\000\000\000\039\000\
000521| \000\000\000\000\000\000\039\000\039\000\039\000\039\000\142\000\
000522| \000\000\000\000\000\000\000\000\039\000\000\000\000\000\000\000\
000523| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000524| \000\000\142\000\000\000\142\000\142\000\142\000\142\000\142\000\
000525| \142\000\142\000\142\000\000\000\142\000\000\000\000\000\000\000\
000526| \142\000\142\000\142\000\142\000\000\000\000\000\000\000\000\000\
000527| \000\000\142\000\000\000\017\000\000\000\017\000\017\000\017\000\
000528| \017\000\017\000\017\000\017\000\017\000\000\000\017\000\000\000\
000529| \000\000\000\000\017\000\017\000\017\000\017\000\000\000\000\000\
000530| \000\000\000\000\018\000\017\000\018\000\018\000\018\000\018\000\
000531| \018\000\018\000\018\000\018\000\000\000\018\000\107\000\093\000\
000532| \104\000\018\000\018\000\018\000\018\000\107\000\000\000\000\000\
000533| \000\000\000\000\018\000\104\000\000\000\093\000\000\000\000\000\
000534| \100\000\100\000\107\000\107\000\000\000\000\000\000\000\107\000\
000535| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\107\000\
000536| \083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\
000537| \083\000\000\000\083\000\083\000\083\000\104\000\104\000\083\000\
000538| \083\000\083\000\083\000\225\000\000\000\000\000\091\000\092\000\
000539| \000\000\000\000\093\000\094\000\000\000\095\000\096\000\000\000\
000540| \000\000\246\000\098\000\099\000\091\000\092\000\000\000\000\000\
000541| \093\000\094\000\000\000\095\000\096\000\000\000\083\000\083\000\
000542| \098\000\099\000\083\000\083\000\083\000\083\000\083\000\083\000\
000543| \083\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000544| \000\000\000\000\000\000\000\000\000\000\100\000\101\000\102\000\
000545| \103\000\104\000\105\000\106\000\000\000\000\000\000\000\000\000\
000546| \000\000\000\000\000\000\100\000\101\000\102\000\103\000\104\000\
000547| \105\000\106\000\091\000\092\000\000\000\000\000\093\000\094\000\
000548| \000\000\095\000\096\000\000\000\097\000\000\000\098\000\099\000\
000549| \091\000\092\000\000\000\000\000\093\000\094\000\000\000\095\000\
000550| \096\000\000\000\091\000\092\000\098\000\099\000\093\000\094\000\
000551| \000\000\095\000\096\000\000\000\157\000\000\000\098\000\099\000\
000552| \000\000\000\000\111\000\000\000\000\000\000\000\000\000\000\000\
000553| \000\000\100\000\101\000\102\000\103\000\104\000\105\000\106\000\
000554| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\100\000\
000555| \101\000\102\000\103\000\104\000\105\000\106\000\000\000\000\000\
000556| \000\000\100\000\101\000\102\000\103\000\104\000\105\000\106\000\
000557| \091\000\092\000\000\000\000\000\093\000\094\000\000\000\095\000\
000558| \096\000\000\000\091\000\092\000\098\000\099\000\093\000\094\000\
000559| \204\000\095\000\096\000\000\000\091\000\092\000\098\000\099\000\
000560| \093\000\094\000\206\000\095\000\096\000\000\000\091\000\092\000\
000561| \098\000\099\000\093\000\094\000\220\000\095\000\096\000\000\000\
000562| \228\000\000\000\098\000\099\000\000\000\000\000\000\000\100\000\
000563| \101\000\102\000\103\000\104\000\105\000\106\000\000\000\000\000\
000564| \000\000\100\000\101\000\102\000\103\000\104\000\105\000\106\000\
000565| \000\000\000\000\000\000\100\000\101\000\102\000\103\000\104\000\
000566| \105\000\106\000\000\000\000\000\000\000\100\000\101\000\102\000\
000567| \103\000\104\000\105\000\106\000\091\000\092\000\000\000\000\000\
000568| \093\000\094\000\000\000\095\000\096\000\000\000\091\000\092\000\
000569| \098\000\099\000\093\000\094\000\244\000\095\000\096\000\000\000\
000570| \000\000\000\000\098\000\099\000\000\000\000\000\091\000\092\000\
000571| \000\000\000\000\093\000\094\000\245\000\095\000\096\000\000\000\
000572| \000\000\000\000\098\000\099\000\000\000\000\000\000\000\000\000\
000573| \000\000\000\000\000\000\100\000\101\000\102\000\103\000\104\000\
000574| \105\000\106\000\097\000\104\000\000\000\100\000\101\000\102\000\
000575| \103\000\104\000\105\000\106\000\000\000\000\000\104\000\000\000\
000576| \097\000\000\000\000\000\100\000\100\000\100\000\101\000\102\000\
000577| \103\000\104\000\105\000\106\000\091\000\092\000\000\000\000\000\
000578| \093\000\094\000\000\000\095\000\096\000\000\000\091\000\092\000\
000579| \098\000\099\000\093\000\094\000\000\000\095\000\096\000\000\000\
000580| \104\000\104\000\098\000\099\000\092\000\104\000\000\000\000\000\
000581| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000582| \104\000\000\000\092\000\000\000\000\000\100\000\100\000\000\000\
000583| \000\000\000\000\000\000\100\000\000\000\102\000\103\000\104\000\
000584| \105\000\106\000\000\000\000\000\000\000\000\000\003\000\102\000\
000585| \103\000\104\000\105\000\106\000\004\000\000\000\000\000\000\000\
000586| \000\000\000\000\104\000\104\000\000\000\000\000\000\000\000\000\
000587| \005\000\000\000\000\000\000\000\006\000\007\000\008\000\000\000\
000588| \009\000\010\000\000\000\011\000\000\000\000\000\000\000\000\000\
000589| \000\000\012\000\013\000\000\000\000\000\005\000\000\000\000\000\
000590| \014\000\006\000\007\000\008\000\000\000\009\000\010\000\000\000\
000591| \011\000\000\000\000\000\000\000\000\000\000\000\012\000\013\000\
000592| \000\000\000\000\000\000\000\000\000\000\014\000"
000593|  
000594| let yycheck = "\060\000\
000595| \000\000\007\000\008\000\000\000\084\000\097\000\134\000\068\000\
000596| \077\000\070\000\074\000\074\000\171\000\077\000\077\000\058\000\
000597| \013\001\001\001\001\001\001\001\044\001\002\001\068\000\003\001\
000598| \070\000\049\001\002\001\007\001\021\000\010\001\008\001\009\001\
000599| \013\001\011\001\012\001\001\001\017\001\013\001\016\001\017\001\
000600| \109\000\022\001\023\001\024\001\203\000\109\000\109\000\030\001\
000601| \001\001\015\001\003\001\035\001\049\001\035\001\007\001\116\000\
000602| \049\001\000\000\119\000\004\000\005\000\006\000\043\001\001\001\
000603| \002\001\046\001\047\001\048\001\049\001\062\000\116\000\047\001\
000604| \048\001\119\000\117\000\013\001\043\001\015\001\059\001\057\001\
000605| \006\001\142\000\049\001\242\000\029\000\030\000\031\000\032\000\
000606| \025\000\026\000\004\001\005\001\018\001\019\001\008\001\009\001\
000607| \041\000\011\001\012\001\001\001\228\000\170\000\016\001\017\001\
000608| \110\000\111\000\170\000\170\000\045\000\047\001\048\001\001\001\
000609| \026\001\015\001\000\000\006\001\044\001\032\001\001\000\027\001\
000610| \028\001\049\001\006\001\041\001\216\000\015\001\041\001\018\001\
000611| \073\000\209\000\049\001\076\000\040\001\041\001\018\001\019\001\
000612| \197\000\051\001\052\001\053\001\054\001\055\001\056\001\057\001\
000613| \018\001\019\001\091\000\092\000\093\000\094\000\095\000\096\000\
000614| \006\001\098\000\099\000\100\000\101\000\102\000\103\000\104\000\
000615| \105\000\106\000\003\001\108\000\018\001\019\001\007\001\049\001\
000616| \113\000\114\000\003\001\000\000\002\001\001\001\007\001\003\001\
000617| \001\001\000\000\003\001\007\001\010\001\027\001\028\001\013\001\
000618| \001\001\002\001\007\001\017\001\133\000\064\000\013\001\066\000\
000619| \022\001\023\001\024\001\063\000\013\001\065\000\015\001\015\001\
000620| \040\001\018\001\019\001\013\001\149\000\008\001\009\001\213\000\
000621| \011\001\012\001\155\000\040\001\041\001\043\001\032\001\221\000\
000622| \046\001\047\001\048\001\049\001\226\000\015\001\049\001\049\001\
000623| \003\001\007\001\001\001\049\001\000\000\059\001\047\001\048\001\
000624| \008\001\002\001\049\001\001\001\006\001\049\001\049\001\245\000\
000625| \049\001\001\001\007\001\049\001\013\001\251\000\000\000\049\001\
000626| \049\001\018\001\019\001\014\001\001\001\014\001\040\001\040\001\
000627| \049\001\001\001\002\001\003\001\004\001\005\001\040\001\007\001\
000628| \008\001\009\001\040\001\011\001\012\001\013\001\014\001\030\001\
000629| \016\001\017\001\219\000\013\001\020\001\222\000\047\001\048\001\
000630| \225\000\025\001\026\001\027\001\028\001\029\001\030\001\031\001\
000631| \032\001\033\001\034\001\000\000\036\001\040\001\003\001\003\001\
000632| \040\001\041\001\042\001\043\001\041\001\246\000\014\001\047\001\
000633| \048\001\049\001\003\001\051\001\052\001\053\001\054\001\055\001\
000634| \056\001\057\001\001\001\014\001\003\001\004\001\005\001\003\001\
000635| \007\001\014\001\009\001\040\001\011\001\012\001\030\001\014\001\
000636| \030\001\016\001\017\001\069\000\003\000\020\001\021\000\249\000\
000637| \142\000\214\000\025\001\026\001\027\001\028\001\029\001\030\001\
000638| \031\001\032\001\033\001\034\001\000\000\036\001\151\000\153\000\
000639| \255\255\040\001\041\001\042\001\043\001\255\255\255\255\255\255\
000640| \255\255\255\255\049\001\255\255\051\001\052\001\053\001\054\001\
000641| \055\001\056\001\057\001\001\001\255\255\003\001\004\001\005\001\
000642| \255\255\007\001\255\255\009\001\255\255\011\001\012\001\255\255\
000643| \014\001\255\255\016\001\017\001\255\255\255\255\020\001\255\255\
000644| \255\255\255\255\255\255\025\001\026\001\027\001\028\001\029\001\
000645| \030\001\031\001\032\001\033\001\034\001\000\000\036\001\255\255\
000646| \255\255\255\255\040\001\041\001\042\001\043\001\255\255\255\255\
000647| \255\255\255\255\255\255\049\001\255\255\051\001\052\001\053\001\
000648| \054\001\055\001\056\001\057\001\001\001\255\255\003\001\004\001\
000649| \005\001\255\255\007\001\255\255\009\001\255\255\011\001\012\001\
000650| \255\255\014\001\255\255\016\001\017\001\255\255\255\255\020\001\
000651| \255\255\255\255\255\255\255\255\025\001\026\001\027\001\028\001\
000652| \029\001\030\001\031\001\032\001\033\001\034\001\000\000\036\001\
000653| \255\255\255\255\255\255\040\001\041\001\042\001\043\001\255\255\
000654| \255\255\255\255\255\255\255\255\049\001\255\255\051\001\052\001\
000655| \053\001\054\001\055\001\056\001\057\001\001\001\255\255\003\001\
000656| \004\001\005\001\255\255\007\001\255\255\009\001\255\255\011\001\
000657| \012\001\255\255\014\001\255\255\016\001\017\001\255\255\255\255\
000658| \020\001\255\255\255\255\255\255\255\255\025\001\026\001\027\001\
000659| \028\001\029\001\030\001\031\001\032\001\033\001\034\001\000\000\
000660| \036\001\255\255\255\255\255\255\040\001\041\001\042\001\043\001\
000661| \255\255\027\001\028\001\255\255\255\255\049\001\032\001\051\001\
000662| \052\001\053\001\054\001\055\001\056\001\057\001\040\001\041\001\
000663| \255\255\255\255\255\255\255\255\001\001\255\255\003\001\004\001\
000664| \005\001\255\255\007\001\255\255\009\001\255\255\011\001\012\001\
000665| \255\255\014\001\255\255\016\001\017\001\000\000\255\255\020\001\
000666| \255\255\255\255\255\255\255\255\025\001\026\001\027\001\028\001\
000667| \029\001\030\001\031\001\032\001\033\001\034\001\000\000\036\001\
000668| \255\255\255\255\255\255\040\001\041\001\042\001\043\001\255\255\
000669| \255\255\255\255\255\255\255\255\049\001\255\255\051\001\052\001\
000670| \053\001\054\001\055\001\056\001\057\001\001\001\255\255\003\001\
000671| \004\001\005\001\255\255\007\001\255\255\009\001\255\255\011\001\
000672| \012\001\255\255\014\001\255\255\016\001\017\001\000\000\255\255\
000673| \020\001\255\255\255\255\255\255\255\255\025\001\026\001\027\001\
000674| \028\001\029\001\030\001\031\001\032\001\033\001\034\001\000\000\
000675| \036\001\255\255\255\255\255\255\040\001\041\001\042\001\043\001\
000676| \255\255\255\255\255\255\255\255\255\255\049\001\255\255\051\001\
000677| \052\001\053\001\054\001\055\001\056\001\057\001\001\001\255\255\
000678| \003\001\004\001\005\001\255\255\007\001\255\255\009\001\255\255\
000679| \011\001\012\001\255\255\014\001\255\255\016\001\017\001\000\000\
000680| \255\255\020\001\255\255\255\255\255\255\255\255\025\001\026\001\
000681| \027\001\028\001\029\001\030\001\031\001\032\001\033\001\034\001\
000682| \000\000\036\001\255\255\255\255\255\255\040\001\041\001\042\001\
000683| \043\001\255\255\255\255\255\255\255\255\255\255\049\001\255\255\
000684| \051\001\052\001\053\001\054\001\055\001\056\001\057\001\001\001\
000685| \255\255\255\255\004\001\005\001\255\255\007\001\008\001\009\001\
000686| \255\255\011\001\012\001\255\255\014\001\255\255\016\001\017\001\
000687| \255\255\255\255\255\255\000\000\255\255\255\255\255\255\025\001\
000688| \255\255\027\001\028\001\029\001\030\001\031\001\032\001\033\001\
000689| \034\001\255\255\036\001\255\255\255\255\255\255\040\001\041\001\
000690| \042\001\043\001\255\255\255\255\255\255\255\255\255\255\049\001\
000691| \255\255\051\001\052\001\053\001\054\001\055\001\056\001\057\001\
000692| \001\001\255\255\000\000\004\001\005\001\255\255\007\001\008\001\
000693| \009\001\255\255\011\001\012\001\255\255\014\001\255\255\016\001\
000694| \017\001\255\255\255\255\000\000\255\255\255\255\255\255\255\255\
000695| \025\001\255\255\027\001\028\001\029\001\030\001\031\001\032\001\
000696| \033\001\034\001\255\255\036\001\255\255\255\255\255\255\040\001\
000697| \041\001\042\001\043\001\255\255\255\255\255\255\255\255\255\255\
000698| \049\001\255\255\051\001\052\001\053\001\054\001\055\001\056\001\
000699| \057\001\255\255\255\255\255\255\255\255\255\255\000\000\001\001\
000700| \255\255\003\001\004\001\005\001\255\255\007\001\255\255\255\255\
000701| \027\001\028\001\255\255\255\255\014\001\032\001\016\001\017\001\
000702| \000\000\255\255\020\001\255\255\255\255\040\001\041\001\025\001\
000703| \026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\
000704| \034\001\255\255\036\001\255\255\255\255\255\255\040\001\041\001\
000705| \042\001\043\001\255\255\255\255\255\255\255\255\255\255\049\001\
000706| \255\255\051\001\052\001\053\001\054\001\055\001\056\001\057\001\
000707| \001\001\000\000\003\001\004\001\005\001\255\255\007\001\255\255\
000708| \255\255\027\001\028\001\255\255\255\255\014\001\032\001\016\001\
000709| \017\001\255\255\255\255\020\001\255\255\255\255\040\001\041\001\
000710| \025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\
000711| \033\001\034\001\255\255\036\001\255\255\255\255\255\255\040\001\
000712| \041\001\042\001\043\001\255\255\000\000\255\255\007\001\255\255\
000713| \049\001\255\255\051\001\052\001\053\001\054\001\055\001\056\001\
000714| \057\001\001\001\255\255\003\001\004\001\005\001\255\255\007\001\
000715| \255\255\255\255\027\001\028\001\255\255\255\255\014\001\032\001\
000716| \255\255\255\255\255\255\255\255\020\001\255\255\255\255\040\001\
000717| \255\255\025\001\026\001\027\001\028\001\029\001\030\001\031\001\
000718| \032\001\033\001\034\001\255\255\036\001\255\255\255\255\255\255\
000719| \040\001\041\001\042\001\043\001\001\001\000\000\003\001\004\001\
000720| \005\001\049\001\007\001\051\001\052\001\053\001\054\001\055\001\
000721| \056\001\014\001\255\255\255\255\255\255\255\255\255\255\020\001\
000722| \255\255\255\255\255\255\255\255\025\001\026\001\027\001\028\001\
000723| \029\001\030\001\031\001\032\001\033\001\034\001\255\255\036\001\
000724| \255\255\255\255\255\255\040\001\041\001\042\001\043\001\255\255\
000725| \000\000\255\255\255\255\255\255\049\001\255\255\051\001\052\001\
000726| \053\001\054\001\055\001\056\001\001\001\255\255\003\001\004\001\
000727| \005\001\255\255\007\001\255\255\255\255\027\001\028\001\255\255\
000728| \255\255\014\001\032\001\255\255\255\255\255\255\255\255\020\001\
000729| \255\255\255\255\040\001\255\255\025\001\026\001\027\001\028\001\
000730| \029\001\030\001\031\001\032\001\033\001\034\001\255\255\036\001\
000731| \255\255\255\255\255\255\040\001\041\001\042\001\043\001\001\001\
000732| \000\000\003\001\004\001\005\001\049\001\007\001\051\001\052\001\
000733| \053\001\054\001\055\001\056\001\014\001\255\255\255\255\255\255\
000734| \255\255\255\255\020\001\255\255\255\255\255\255\255\255\025\001\
000735| \026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\
000736| \034\001\255\255\036\001\255\255\255\255\000\000\040\001\041\001\
000737| \042\001\043\001\255\255\027\001\028\001\255\255\255\255\049\001\
000738| \032\001\051\001\052\001\053\001\054\001\055\001\056\001\255\255\
000739| \040\001\255\255\001\001\255\255\003\001\004\001\005\001\255\255\
000740| \007\001\255\255\255\255\255\255\255\255\255\255\255\255\014\001\
000741| \255\255\255\255\000\000\255\255\255\255\020\001\255\255\255\255\
000742| \255\255\255\255\025\001\026\001\027\001\028\001\029\001\030\001\
000743| \031\001\032\001\033\001\034\001\255\255\036\001\255\255\255\255\
000744| \255\255\040\001\041\001\042\001\043\001\001\001\255\255\003\001\
000745| \004\001\005\001\049\001\007\001\051\001\052\001\053\001\054\001\
000746| \055\001\056\001\014\001\255\255\255\255\000\000\255\255\255\255\
000747| \020\001\255\255\255\255\255\255\255\255\025\001\026\001\027\001\
000748| \028\001\029\001\030\001\031\001\032\001\033\001\034\001\255\255\
000749| \036\001\255\255\255\255\255\255\040\001\041\001\042\001\043\001\
000750| \255\255\000\000\255\255\255\255\255\255\049\001\255\255\051\001\
000751| \052\001\053\001\054\001\055\001\056\001\255\255\001\001\255\255\
000752| \003\001\004\001\005\001\255\255\007\001\255\255\255\255\255\255\
000753| \255\255\255\255\000\000\014\001\255\255\255\255\255\255\255\255\
000754| \255\255\020\001\255\255\255\255\255\255\255\255\025\001\026\001\
000755| \027\001\028\001\029\001\030\001\031\001\032\001\033\001\034\001\
000756| \255\255\036\001\255\255\255\255\255\255\040\001\041\001\042\001\
000757| \043\001\001\001\000\000\003\001\255\255\255\255\049\001\007\001\
000758| \051\001\052\001\053\001\054\001\055\001\056\001\014\001\255\255\
000759| \255\255\255\255\255\255\255\255\020\001\255\255\255\255\255\255\
000760| \255\255\025\001\026\001\027\001\028\001\029\001\030\001\031\001\
000761| \032\001\033\001\034\001\255\255\036\001\255\255\255\255\000\000\
000762| \040\001\041\001\042\001\043\001\255\255\255\255\255\255\255\255\
000763| \255\255\049\001\255\255\051\001\052\001\255\255\255\255\255\255\
000764| \255\255\001\001\255\255\003\001\255\255\255\255\255\255\007\001\
000765| \255\255\255\255\255\255\000\000\255\255\255\255\014\001\255\255\
000766| \255\255\255\255\255\255\255\255\020\001\255\255\255\255\255\255\
000767| \255\255\025\001\026\001\027\001\028\001\029\001\030\001\031\001\
000768| \032\001\033\001\034\001\255\255\036\001\255\255\255\255\002\001\
000769| \040\001\041\001\042\001\043\001\007\001\255\255\255\255\255\255\
000770| \000\000\049\001\013\001\255\255\052\001\255\255\255\255\018\001\
000771| \019\001\255\255\255\255\255\255\255\255\255\255\025\001\255\255\
000772| \027\001\028\001\029\001\030\001\031\001\032\001\033\001\034\001\
000773| \255\255\036\001\000\000\255\255\002\001\040\001\041\001\042\001\
000774| \043\001\007\001\255\255\255\255\047\001\048\001\049\001\013\001\
000775| \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000776| \255\255\000\000\255\255\025\001\255\255\027\001\028\001\029\001\
000777| \030\001\031\001\032\001\033\001\034\001\255\255\036\001\255\255\
000778| \255\255\255\255\040\001\041\001\042\001\043\001\255\255\255\255\
000779| \255\255\047\001\048\001\049\001\007\001\255\255\255\255\000\000\
000780| \255\255\255\255\255\255\255\255\255\255\255\255\255\255\018\001\
000781| \019\001\255\255\255\255\255\255\255\255\255\255\025\001\255\255\
000782| \027\001\028\001\029\001\030\001\031\001\032\001\033\001\034\001\
000783| \007\001\036\001\255\255\255\255\255\255\040\001\041\001\042\001\
000784| \043\001\255\255\255\255\255\255\255\255\255\255\049\001\255\255\
000785| \255\255\255\255\025\001\255\255\027\001\028\001\029\001\030\001\
000786| \031\001\032\001\033\001\034\001\255\255\036\001\255\255\013\001\
000787| \255\255\040\001\041\001\042\001\043\001\255\255\255\255\255\255\
000788| \255\255\255\255\049\001\025\001\255\255\027\001\028\001\029\001\
000789| \030\001\031\001\032\001\033\001\034\001\255\255\036\001\255\255\
000790| \255\255\007\001\040\001\041\001\042\001\043\001\255\255\255\255\
000791| \255\255\255\255\255\255\049\001\255\255\255\255\255\255\255\255\
000792| \255\255\255\255\255\255\025\001\255\255\027\001\028\001\029\001\
000793| \030\001\031\001\032\001\033\001\034\001\255\255\036\001\255\255\
000794| \255\255\255\255\040\001\041\001\042\001\043\001\007\001\255\255\
000795| \255\255\255\255\255\255\049\001\255\255\255\255\255\255\255\255\
000796| \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000797| \025\001\255\255\027\001\028\001\029\001\030\001\031\001\032\001\
000798| \033\001\034\001\007\001\036\001\255\255\255\255\255\255\040\001\
000799| \041\001\042\001\043\001\255\255\255\255\255\255\255\255\255\255\
000800| \049\001\255\255\255\255\255\255\025\001\255\255\027\001\028\001\
000801| \029\001\030\001\031\001\032\001\033\001\034\001\255\255\036\001\
000802| \255\255\255\255\255\255\040\001\041\001\042\001\043\001\007\001\
000803| \255\255\255\255\255\255\255\255\049\001\255\255\255\255\255\255\
000804| \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000805| \255\255\025\001\255\255\027\001\028\001\029\001\030\001\031\001\
000806| \032\001\033\001\034\001\255\255\036\001\255\255\255\255\255\255\
000807| \040\001\041\001\042\001\043\001\255\255\255\255\255\255\255\255\
000808| \255\255\049\001\255\255\025\001\255\255\027\001\028\001\029\001\
000809| \030\001\031\001\032\001\033\001\034\001\255\255\036\001\255\255\
000810| \255\255\255\255\040\001\041\001\042\001\043\001\255\255\255\255\
000811| \255\255\255\255\025\001\049\001\027\001\028\001\029\001\030\001\
000812| \031\001\032\001\033\001\034\001\255\255\036\001\007\001\001\001\
000813| \002\001\040\001\041\001\042\001\043\001\014\001\255\255\255\255\
000814| \255\255\255\255\049\001\013\001\255\255\015\001\255\255\255\255\
000815| \018\001\019\001\027\001\028\001\255\255\255\255\255\255\032\001\
000816| \255\255\255\255\255\255\255\255\255\255\255\255\255\255\040\001\
000817| \001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\
000818| \009\001\255\255\011\001\012\001\013\001\047\001\048\001\016\001\
000819| \017\001\018\001\019\001\001\001\255\255\255\255\004\001\005\001\
000820| \255\255\255\255\008\001\009\001\255\255\011\001\012\001\255\255\
000821| \255\255\001\001\016\001\017\001\004\001\005\001\255\255\255\255\
000822| \008\001\009\001\255\255\011\001\012\001\255\255\047\001\048\001\
000823| \016\001\017\001\051\001\052\001\053\001\054\001\055\001\056\001\
000824| \057\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000825| \255\255\255\255\255\255\255\255\255\255\051\001\052\001\053\001\
000826| \054\001\055\001\056\001\057\001\255\255\255\255\255\255\255\255\
000827| \255\255\255\255\255\255\051\001\052\001\053\001\054\001\055\001\
000828| \056\001\057\001\004\001\005\001\255\255\255\255\008\001\009\001\
000829| \255\255\011\001\012\001\255\255\014\001\255\255\016\001\017\001\
000830| \004\001\005\001\255\255\255\255\008\001\009\001\255\255\011\001\
000831| \012\001\255\255\004\001\005\001\016\001\017\001\008\001\009\001\
000832| \255\255\011\001\012\001\255\255\014\001\255\255\016\001\017\001\
000833| \255\255\255\255\030\001\255\255\255\255\255\255\255\255\255\255\
000834| \255\255\051\001\052\001\053\001\054\001\055\001\056\001\057\001\
000835| \255\255\255\255\255\255\255\255\255\255\255\255\255\255\051\001\
000836| \052\001\053\001\054\001\055\001\056\001\057\001\255\255\255\255\
000837| \255\255\051\001\052\001\053\001\054\001\055\001\056\001\057\001\
000838| \004\001\005\001\255\255\255\255\008\001\009\001\255\255\011\001\
000839| \012\001\255\255\004\001\005\001\016\001\017\001\008\001\009\001\
000840| \020\001\011\001\012\001\255\255\004\001\005\001\016\001\017\001\
000841| \008\001\009\001\020\001\011\001\012\001\255\255\004\001\005\001\
000842| \016\001\017\001\008\001\009\001\020\001\011\001\012\001\255\255\
000843| \014\001\255\255\016\001\017\001\255\255\255\255\255\255\051\001\
000844| \052\001\053\001\054\001\055\001\056\001\057\001\255\255\255\255\
000845| \255\255\051\001\052\001\053\001\054\001\055\001\056\001\057\001\
000846| \255\255\255\255\255\255\051\001\052\001\053\001\054\001\055\001\
000847| \056\001\057\001\255\255\255\255\255\255\051\001\052\001\053\001\
000848| \054\001\055\001\056\001\057\001\004\001\005\001\255\255\255\255\
000849| \008\001\009\001\255\255\011\001\012\001\255\255\004\001\005\001\
000850| \016\001\017\001\008\001\009\001\020\001\011\001\012\001\255\255\
000851| \255\255\255\255\016\001\017\001\255\255\255\255\004\001\005\001\
000852| \255\255\255\255\008\001\009\001\026\001\011\001\012\001\255\255\
000853| \255\255\255\255\016\001\017\001\255\255\255\255\255\255\255\255\
000854| \255\255\255\255\255\255\051\001\052\001\053\001\054\001\055\001\
000855| \056\001\057\001\001\001\002\001\255\255\051\001\052\001\053\001\
000856| \054\001\055\001\056\001\057\001\255\255\255\255\013\001\255\255\
000857| \015\001\255\255\255\255\018\001\019\001\051\001\052\001\053\001\
000858| \054\001\055\001\056\001\057\001\004\001\005\001\255\255\255\255\
000859| \008\001\009\001\255\255\011\001\012\001\255\255\004\001\005\001\
000860| \016\001\017\001\008\001\009\001\255\255\011\001\012\001\255\255\
000861| \047\001\048\001\016\001\017\001\001\001\002\001\255\255\255\255\
000862| \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
000863| \013\001\255\255\015\001\255\255\255\255\018\001\019\001\255\255\
000864| \255\255\255\255\255\255\051\001\255\255\053\001\054\001\055\001\
000865| \056\001\057\001\255\255\255\255\255\255\255\255\007\001\053\001\
000866| \054\001\055\001\056\001\057\001\013\001\255\255\255\255\255\255\
000867| \255\255\255\255\047\001\048\001\255\255\255\255\255\255\255\255\
000868| \025\001\255\255\255\255\255\255\029\001\030\001\031\001\255\255\
000869| \033\001\034\001\255\255\036\001\255\255\255\255\255\255\255\255\
000870| \255\255\042\001\043\001\255\255\255\255\025\001\255\255\255\255\
000871| \049\001\029\001\030\001\031\001\255\255\033\001\034\001\255\255\
000872| \036\001\255\255\255\255\255\255\255\255\255\255\042\001\043\001\
000873| \255\255\255\255\255\255\255\255\255\255\049\001"
000874|  
000875| let yynames_const = "\
000876|   EOF\000\
000877|   COMMA\000\
000878|   LBRA\000\
000879|   RBRA\000\
000880|   LT\000\
000881|   GT\000\
000882|   COLON\000\
000883|   SEMI\000\
000884|   HAT\000\
000885|   STAR\000\
000886|   HASH\000\
000887|   SLASH\000\
000888|   MOD\000\
000889|   LPAR\000\
000890|   RPAR\000\
000891|   GETS\000\
000892|   PLUS\000\
000893|   MINUS\000\
000894|   DOT\000\
000895|   LSQ\000\
000896|   RSQ\000\
000897|   WRONGTOKEN\000\
000898|   NIL\000\
000899|   TRUE\000\
000900|   FALSE\000\
000901|   IF\000\
000902|   THEN\000\
000903|   ELSE\000\
000904|   ELSEIF\000\
000905|   WHILE\000\
000906|   DO\000\
000907|   REPEAT\000\
000908|   UNTIL\000\
000909|   BREAK\000\
000910|   FOR\000\
000911|   IN\000\
000912|   GOTO\000\
000913|   CASE\000\
000914|   GLOBMATCH\000\
000915|   OF\000\
000916|   END\000\
000917|   RETURN\000\
000918|   LOCAL\000\
000919|   FUNCTION\000\
000920|   DOTS\000\
000921|   ARROW\000\
000922|   AND\000\
000923|   OR\000\
000924|   EQ\000\
000925|   NE\000\
000926|   LE\000\
000927|   GE\000\
000928|   CONC\000\
000929|   UNARY\000\
000930|   NOT\000\
000931|   "
000932|  
000933| let yynames_block = "\
000934|   NUMBER\000\
000935|   STRING\000\
000936|   LONGSTRING\000\
000937|   NAME\000\
000938|   DEBUG_PRAGMA\000\
000939|   "
000940|  
000941| let yyact = [|
000942|   (fun _ -> failwith "parser")
000943| ; (fun __caml_parser_env ->
000944|     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'block) in
000945|     Obj.repr(
000946| # 76 "src/parser.mly"
000947|                      ( _1 )
000948| # 949 "src/parser.ml"
000949|                : Ast.block))
000950| ; (fun __caml_parser_env ->
000951|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'funcname_prefix) in
000952|     Obj.repr(
000953| # 79 "src/parser.mly"
000954|                                  ( fun ((args, v), ss) w ->
000955|                                      if v then unimp "varargs" w
000956|                                      else
000957|                                        [mk_stmt w (A.Assign ([_1], [A.Lit (A.Fun (args,ss))]))]  )
000958| # 959 "src/parser.ml"
000959|                : 'funcname))
000960| ; (fun __caml_parser_env ->
000961|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'funcname_prefix) in
000962|     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
000963|     Obj.repr(
000964| # 83 "src/parser.mly"
000965|                                        ( fun ((args, v), ss) w ->
000966|                                      if v then unimp "varargs" w
000967|                                      else
000968|                                        [mk_stmt w (A.Assign ([A.Index(A.Lvalue _1,_3)],
000969|                                                              [A.Lit (A.Fun ("self"::args,ss))]))]
000970|                                        )
000971| # 972 "src/parser.ml"
000972|                : 'funcname))
000973| ; (fun __caml_parser_env ->
000974|     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
000975|     Obj.repr(
000976| # 91 "src/parser.mly"
000977|                                             ( A.Name _1 )
000978| # 979 "src/parser.ml"
000979|                : 'funcname_prefix))
000980| ; (fun __caml_parser_env ->
000981|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'funcname_prefix) in
000982|     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
000983|     Obj.repr(
000984| # 92 "src/parser.mly"
000985|                                             ( A.Index (A.Lvalue _1, _3) )
000986| # 987 "src/parser.ml"
000987|                : 'funcname_prefix))
000988| ; (fun __caml_parser_env ->
000989|     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'parlist) in
000990|     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'block) in
000991|     Obj.repr(
000992| # 95 "src/parser.mly"
000993|                                     ( let pos = Lexing.dummy_pos (*Parsing.rhs_start_pos 5*) in
000994|                                       match List.rev _4 with   (* Add explicit return when absent *)
000995|                                        | []   -> (_2, [mk_stmt pos (A.Return [A.Lit A.Nil])])
000996|                                        | s::_ -> (match s.A.stmt with
000997|                                            | A.Return _ -> (_2, _4)
000998|                                            | _          -> (_2, _4 @ [mk_stmt pos
000999|                                                                          (A.Return [A.Lit A.Nil])])) )
001000| # 1001 "src/parser.ml"
001001|                : 'body))
001002| ; (fun __caml_parser_env ->
001003|     Obj.repr(
001004| # 103 "src/parser.mly"
001005|                                                  ( [] )
001006| # 1007 "src/parser.ml"
001007|                : A.stmt list list))
001008| ; (fun __caml_parser_env ->
001009|     let _2 = (Parsing.peek_val __caml_parser_env 0 : A.stmt list list) in
001010|     Obj.repr(
001011| # 104 "src/parser.mly"
001012|                                                  ( _2 )
001013| # 1014 "src/parser.ml"
001014|                : A.stmt list list))
001015| ; (fun __caml_parser_env ->
001016|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'statlist1_paren) in
001017|     Obj.repr(
001018| # 105 "src/parser.mly"
001019|                                                  ( _1 )
001020| # 1021 "src/parser.ml"
001021|                : A.stmt list list))
001022| ; (fun __caml_parser_env ->
001023|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'statlist1_no_paren) in
001024|     Obj.repr(
001025| # 106 "src/parser.mly"
001026|                                                  ( _1 )
001027| # 1028 "src/parser.ml"
001028|                : A.stmt list list))
001029| ; (fun __caml_parser_env ->
001030|     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'stat_paren) in
001031|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'sc_list) in
001032|     Obj.repr(
001033| # 113 "src/parser.mly"
001034|                                                          ( [_1] )
001035| # 1036 "src/parser.ml"
001036|                : 'statlist1_paren))
001037| ; (fun __caml_parser_env ->
001038|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'stat_paren) in
001039|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'sc_list) in
001040|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'statlist1_no_paren) in
001041|     Obj.repr(
001042| # 114 "src/parser.mly"
001043|                                                          ( _1 :: _3 )
001044| # 1045 "src/parser.ml"
001045|                : 'statlist1_paren))
001046| ; (fun __caml_parser_env ->
001047|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'stat_paren) in
001048|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'sc_list1) in
001049|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'statlist1_paren) in
001050|     Obj.repr(
001051| # 115 "src/parser.mly"
001052|                                                          ( _1 :: _3 )
001053| # 1054 "src/parser.ml"
001054|                : 'statlist1_paren))
001055| ; (fun __caml_parser_env ->
001056|     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'stat_no_paren) in
001057|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'sc_list) in
001058|     Obj.repr(
001059| # 118 "src/parser.mly"
001060|                                                                 ( [_1] )
001061| # 1062 "src/parser.ml"
001062|                : 'statlist1_no_paren))
001063| ; (fun __caml_parser_env ->
001064|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'stat_no_paren) in
001065|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'sc_list1) in
001066|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'statlist1_paren) in
001067|     Obj.repr(
001068| # 119 "src/parser.mly"
001069|                                                                 ( _1 :: _3 )
001070| # 1071 "src/parser.ml"
001071|                : 'statlist1_no_paren))
001072| ; (fun __caml_parser_env ->
001073|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'stat_no_paren) in
001074|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'sc_list) in
001075|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'statlist1_no_paren) in
001076|     Obj.repr(
001077| # 120 "src/parser.mly"
001078|                                                                 ( _1 :: _3 )
001079| # 1080 "src/parser.ml"
001080|                : 'statlist1_no_paren))
001081| ; (fun __caml_parser_env ->
001082|     Obj.repr(
001083| # 124 "src/parser.mly"
001084|                                ( () )
001085| # 1086 "src/parser.ml"
001086|                : 'sc_list))
001087| ; (fun __caml_parser_env ->
001088|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'sc_list1) in
001089|     Obj.repr(
001090| # 125 "src/parser.mly"
001091|                                ( () )
001092| # 1093 "src/parser.ml"
001093|                : 'sc_list))
001094| ; (fun __caml_parser_env ->
001095|     Obj.repr(
001096| # 127 "src/parser.mly"
001097|                                ( () )
001098| # 1099 "src/parser.ml"
001099|                : 'sc_list1))
001100| ; (fun __caml_parser_env ->
001101|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'sc_list1) in
001102|     Obj.repr(
001103| # 128 "src/parser.mly"
001104|                                ( () )
001105| # 1106 "src/parser.ml"
001106|                : 'sc_list1))
001107| ; (fun __caml_parser_env ->
001108|     Obj.repr(
001109| # 130 "src/parser.mly"
001110|                                ( () )
001111| # 1112 "src/parser.ml"
001112|                : 'sc))
001113| ; (fun __caml_parser_env ->
001114|     Obj.repr(
001115| # 131 "src/parser.mly"
001116|                                ( () )
001117| # 1118 "src/parser.ml"
001118|                : 'sc))
001119| ; (fun __caml_parser_env ->
001120|     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001121|     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'colon_name_argslist1) in
001122|     Obj.repr(
001123| # 133 "src/parser.mly"
001124|                                                   ( let pos = start_pos() in
001125|                                                     let rec build_call recv args = match args with
001126|                                                       | ((None,args),[])        ->
001127|                                                         [mk_stmt pos (A.Callstmt (A.Paren recv,args))]
001128|                                                       | ((Some mname,args),[]) ->
001129|                                                         [mk_stmt pos
001130|                                                                   (A.Methcallstmt (A.Paren recv,mname,args))]
001131|                                                       | ((None,fstargs),sndargs::rest) -> 
001132|                                                         build_call (A.Call (A.Paren recv,fstargs))
001133|                                                                    (sndargs,rest)
001134|                                                       | ((Some mname,fstargs),sndargs::rest) -> 
001135|                                                         build_call (A.Methcall (A.Paren recv,mname,fstargs))
001136|                                                                    (sndargs,rest)
001137|                                                     in build_call _2 _4 )
001138| # 1139 "src/parser.ml"
001139|                : 'stat_paren))
001140| ; (fun __caml_parser_env ->
001141|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'varlist1_paren) in
001142|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'exprlist1) in
001143|     Obj.repr(
001144| # 147 "src/parser.mly"
001145|                                                   ( let pos     = start_pos() in
001146|                                                     let lvals,_ = _1 in
001147|                                                     let exprs,_ = _3 in 
001148|                                                     [mk_stmt pos (A.Assign (lvals,exprs))] )
001149| # 1150 "src/parser.ml"
001150|                : 'stat_paren))
001151| ; (fun __caml_parser_env ->
001152|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'varlist1_no_paren) in
001153|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'exprlist1) in
001154|     Obj.repr(
001155| # 153 "src/parser.mly"
001156|                                                             ( let pos     = start_pos() in
001157|                                                               let lvals,_ = _1 in
001158|                                                               let exprs,_ = _3 in 
001159|                                                               [mk_stmt pos (A.Assign (lvals,exprs))] )
001160| # 1161 "src/parser.ml"
001161|                : 'assign_or_call_no_paren))
001162| ; (fun __caml_parser_env ->
001163|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'valid_funcall_no_paren) in
001164|     Obj.repr(
001165| # 157 "src/parser.mly"
001166|                                                             ( let pos = start_pos() in
001167|                                                               match _1 with
001168|                                                                 | (recv,(None,args)) ->
001169|                                                                   [mk_stmt pos (A.Callstmt (recv,args))]
001170|                                                                 | (recv,(Some mname,args)) ->
001171|                                                                   [mk_stmt pos 
001172|                                                                       (A.Methcallstmt (recv,mname,args))] )
001173| # 1174 "src/parser.ml"
001174|                : 'assign_or_call_no_paren))
001175| ; (fun __caml_parser_env ->
001176|     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
001177|     Obj.repr(
001178| # 170 "src/parser.mly"
001179|                                                              ( A.Name _1 )
001180| # 1181 "src/parser.ml"
001181|                : 'valid_lvalue_no_paren))
001182| ; (fun __caml_parser_env ->
001183|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'valid_lvalue_no_paren) in
001184|     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
001185|     Obj.repr(
001186| # 171 "src/parser.mly"
001187|                                                    ( A.Index (A.Lvalue _1,_3) )
001188| # 1189 "src/parser.ml"
001189|                : 'valid_lvalue_no_paren))
001190| ; (fun __caml_parser_env ->
001191|     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'valid_lvalue_no_paren) in
001192|     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expr1) in
001193|     Obj.repr(
001194| # 172 "src/parser.mly"
001195|                                                    ( A.DynIndex (A.Lvalue _1,_3) )
001196| # 1197 "src/parser.ml"
001197|                : 'valid_lvalue_no_paren))
001198| ; (fun __caml_parser_env ->
001199|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'valid_funcall_no_paren) in
001200|     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
001201|     Obj.repr(
001202| # 173 "src/parser.mly"
001203|                                                    ( match _1 with
001204|                                                                 | (recv,(None,args)) ->
001205|                                                                   A.Index (A.Call (recv,args), _3)
001206|                                                                 | (recv,(Some mname,args)) ->
001207|                                                                   A.Index (A.Methcall (recv,mname,args),_3) )
001208| # 1209 "src/parser.ml"
001209|                : 'valid_lvalue_no_paren))
001210| ; (fun __caml_parser_env ->
001211|     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'valid_funcall_no_paren) in
001212|     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expr1) in
001213|     Obj.repr(
001214| # 178 "src/parser.mly"
001215|                                                      ( match _1 with
001216|                                                                   | (recv,(None,args)) ->
001217|                                                                     A.DynIndex (A.Call (recv,args), _3)
001218|                                                                   | (recv,(Some mname,args)) ->
001219|                                                                     A.DynIndex
001220|                                                                       (A.Methcall (recv,mname,args), _3) )
001221| # 1222 "src/parser.ml"
001222|                : 'valid_lvalue_no_paren))
001223| ; (fun __caml_parser_env ->
001224|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'valid_lvalue_no_paren) in
001225|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'colon_name) in
001226|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'args) in
001227|     Obj.repr(
001228| # 186 "src/parser.mly"
001229|                                                                  ( (A.Lvalue _1,(_2,_3)) )
001230| # 1231 "src/parser.ml"
001231|                : 'valid_funcall_no_paren))
001232| ; (fun __caml_parser_env ->
001233|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'valid_funcall_no_paren) in
001234|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'colon_name) in
001235|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'args) in
001236|     Obj.repr(
001237| # 187 "src/parser.mly"
001238|                                                                  ( match _1 with
001239|                                                                     | (recv,(None,args)) ->
001240|                                                                       (A.Call (recv,args), (_2,_3))
001241|                                                                     | (recv,(Some mname,args)) ->
001242|                                                                       (A.Methcall (recv,mname,args), (_2,_3))
001243|                        )
001244| # 1245 "src/parser.ml"
001245|                : 'valid_funcall_no_paren))
001246| ; (fun __caml_parser_env ->
001247|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'assign_or_call_no_paren) in
001248|     Obj.repr(
001249| # 196 "src/parser.mly"
001250|                                     ( _1 )
001251| # 1252 "src/parser.ml"
001252|                : 'stat_no_paren))
001253| ; (fun __caml_parser_env ->
001254|     Obj.repr(
001255| # 198 "src/parser.mly"
001256|                                     ( [mk_stmt (start_pos()) A.Break] )
001257| # 1258 "src/parser.ml"
001258|                : 'stat_no_paren))
001259| ; (fun __caml_parser_env ->
001260|     let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in
001261|     Obj.repr(
001262| # 199 "src/parser.mly"
001263|                                     ( unimp "goto" (start_pos()) )
001264| # 1265 "src/parser.ml"
001265|                : 'stat_no_paren))
001266| ; (fun __caml_parser_env ->
001267|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'block) in
001268|     Obj.repr(
001269| # 200 "src/parser.mly"
001270|                                     ( [mk_stmt (start_pos()) (A.Doend _2)] )
001271| # 1272 "src/parser.ml"
001272|                : 'stat_no_paren))
001273| ; (fun __caml_parser_env ->
001274|     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'expr1) in
001275|     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'block) in
001276|     Obj.repr(
001277| # 201 "src/parser.mly"
001278|                                     ( [mk_stmt (start_pos()) (A.WhileDo (_2, _4))] )
001279| # 1280 "src/parser.ml"
001280|                : 'stat_no_paren))
001281| ; (fun __caml_parser_env ->
001282|     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'block) in
001283|     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001284|     Obj.repr(
001285| # 202 "src/parser.mly"
001286|                                     ( unimp "repeat ... until ..." (start_pos()) )
001287| # 1288 "src/parser.ml"
001288|                : 'stat_no_paren))
001289| ; (fun __caml_parser_env ->
001290|     let _2 = (Parsing.peek_val __caml_parser_env 4 : 'expr1) in
001291|     let _4 = (Parsing.peek_val __caml_parser_env 2 : 'block) in
001292|     let _5 = (Parsing.peek_val __caml_parser_env 1 : 'elsepart) in
001293|     Obj.repr(
001294| # 203 "src/parser.mly"
001295|                                           ( [mk_stmt (start_pos()) (A.If (_2, _4, _5))] )
001296| # 1297 "src/parser.ml"
001297|                : 'stat_no_paren))
001298| ; (fun __caml_parser_env ->
001299|     let _2 = (Parsing.peek_val __caml_parser_env 8 : string) in
001300|     let _4 = (Parsing.peek_val __caml_parser_env 6 : 'expr1) in
001301|     let _6 = (Parsing.peek_val __caml_parser_env 4 : 'expr1) in
001302|     let _7 = (Parsing.peek_val __caml_parser_env 3 : 'opt_step) in
001303|     let _9 = (Parsing.peek_val __caml_parser_env 1 : 'block) in
001304|     Obj.repr(
001305| # 205 "src/parser.mly"
001306|                              ( (* desugaring according to 5.2 manual, sec.3.3.5 'For Statement' *)
001307|                                       let for_pos    = start_pos() in
001308|                                       let nam_pos    = rhs_pos 2 in
001309|                                       let tonum e    = A.Call (A.Lvalue (A.Name "tonumber"),[e]) in
001310|                                       let error_call = A.Callstmt (A.Lvalue (A.Name "error"),[]) in
001311|                                       let tmpvar     = A.Name "__var" in
001312|                                       let tmplimit   = A.Name "__limit" in
001313|                                       let tmpstep    = A.Name "__step" in
001314|                                       match _7 with
001315|                                       | None ->
001316|                                         [mk_stmt for_pos
001317|                                           (A.Doend
001318|                                             [mk_stmt nam_pos (A.Local (["__var";"__limit"], [tonum _4;tonum _6]));
001319|                                              mk_stmt for_pos (A.If (A.Unop (A.Not,
001320|                                                                             A.And (A.Lvalue tmpvar,
001321|                                                                                    A.Lvalue tmplimit)),
001322|                                                                     [mk_stmt for_pos error_call],
001323|                                                                     []));
001324|                                              mk_stmt for_pos (A.WhileDo (A.Binop (A.Lvalue tmpvar,
001325|                                                                                   A.Le,
001326|                                                                                   A.Lvalue tmplimit),
001327|                                                 List.flatten
001328|                                                   [[mk_stmt nam_pos (A.Local ([_2],[A.Lvalue tmpvar]))];
001329|                                                    _9;
001330|                                                    [mk_stmt for_pos (A.Assign ([tmpvar],
001331|                                                                                [A.Binop (A.Lvalue tmpvar,
001332|                                                                                          A.Plus,
001333|                                                                                          A.Lit (A.Number (A.Int 1)) )])) ]
001334|                                                   ] )) ]) ]
001335|                                       | Some step ->
001336|                                         [mk_stmt for_pos
001337|                                           (A.Doend
001338|                                             [mk_stmt nam_pos (A.Local (["__var";"__limit";"__step"],
001339|                                                                        [tonum _4; tonum _6; tonum step]));
001340|                                              mk_stmt for_pos (A.If (A.Unop (A.Not,
001341|                                                                             A.And (A.And (A.Lvalue tmpvar,
001342|                                                                                           A.Lvalue tmplimit),
001343|                                                                                    A.Lvalue tmpstep)),
001344|                                                                     [mk_stmt for_pos error_call],
001345|                                                                     []));
001346|                                              mk_stmt for_pos (A.WhileDo
001347|                                                                 (A.Or
001348|                                                                    (A.And
001349|                                                                       (A.Binop (A.Lvalue tmpstep,
001350|                                                                                 A.Gt,
001351|                                                                                 A.Lit (A.Number (A.Int 0))),
001352|                                                                        A.Binop (A.Lvalue tmpvar,
001353|                                                                                 A.Le,
001354|                                                                                 A.Lvalue tmplimit)),
001355|                                                                     A.And
001356|                                                                       (A.Binop (A.Lvalue tmpstep,
001357|                                                                                 A.Le,
001358|                                                                                 A.Lit (A.Number (A.Int 0))),
001359|                                                                        A.Binop (A.Lvalue tmpvar,
001360|                                                                                 A.Ge,
001361|                                                                                 A.Lvalue tmplimit))),
001362|                                                  List.flatten
001363|                                                    [[mk_stmt nam_pos (A.Local ([_2],[A.Lvalue tmpvar]))];
001364|                                                     _9;
001365|                                                     [mk_stmt for_pos (A.Assign ([tmpvar],
001366|                                                                                 [A.Binop (A.Lvalue tmpvar,
001367|                                                                                           A.Plus,
001368|                                                                                           A.Lvalue tmpstep )]))]
001369|                                                    ] )) ]) ]
001370|                                     )
001371| # 1372 "src/parser.ml"
001372|                : 'stat_no_paren))
001373| ; (fun __caml_parser_env ->
001374|     let _2 = (Parsing.peek_val __caml_parser_env 5 : 'namelist) in
001375|     let _4 = (Parsing.peek_val __caml_parser_env 3 : 'exprlist1) in
001376|     let _6 = (Parsing.peek_val __caml_parser_env 1 : 'block) in
001377|     Obj.repr(
001378| # 270 "src/parser.mly"
001379|                                                 (
001380|                                       let pos       = start_pos() in
001381|                                       let fstname,names = _2 in
001382|                                       let names_pos = rhs_pos 2 in
001383|                                       let exprs,_   = _4 in
001384|                                       let exprs_pos = rhs_pos 4 in
001385|                                       let body      = _6 in
001386|                                       let tmpf      = A.Name "__f" in
001387|                                       let tmps      = A.Name "__s" in
001388|                                       let tmpvar    = A.Name "__var" in
001389|                                       [mk_stmt pos
001390|                                           (A.Doend [
001391|                                             mk_stmt exprs_pos
001392|                                               (A.Local (["__f";"__s";"__var"],exprs));
001393|                                             mk_stmt pos
001394|                                               (A.WhileDo (A.Lit (A.Bool true),
001395|                                                 mk_stmt names_pos (A.Local (fstname::names, 
001396|                                                                             [A.Call (A.Lvalue tmpf,
001397|                                                                                      [A.Lvalue tmps;
001398|                                                                                       A.Lvalue tmpvar])]))::
001399|                                                 mk_stmt pos       (A.If (A.Binop (A.Lvalue (A.Name fstname),
001400|                                                                                   A.Eq,
001401|                                                                                   A.Lit A.Nil),
001402|                                                                          [mk_stmt pos A.Break],[]))::
001403|                                                 mk_stmt pos       (A.Assign ([tmpvar],[A.Lvalue (A.Name fstname)]))::
001404|                                                 body))])]
001405|                                     )
001406| # 1407 "src/parser.ml"
001407|                : 'stat_no_paren))
001408| ; (fun __caml_parser_env ->
001409|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'funcname) in
001410|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'body) in
001411|     Obj.repr(
001412| # 297 "src/parser.mly"
001413|                                     ( _2 _3 (start_pos()) )
001414| # 1415 "src/parser.ml"
001415|                : 'stat_no_paren))
001416| ; (fun __caml_parser_env ->
001417|     let _3 = (Parsing.peek_val __caml_parser_env 1 : string) in
001418|     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'body) in
001419|     Obj.repr(
001420| # 298 "src/parser.mly"
001421|                                     ( let pos = start_pos() in
001422|                                       let ((args,v), ss) = _4 in
001423|                                       if v then unimp "varargs" pos
001424|                                       else (*desugar local fun decl into two parts to handle recursion:*) 
001425|                                         [mk_stmt pos (A.Local ([_3], [A.Lit (A.Nil)]));
001426|                                          mk_stmt pos (A.Assign ([A.Name _3], [A.Lit (A.Fun (args,ss))]))] )
001427| # 1428 "src/parser.ml"
001428|                : 'stat_no_paren))
001429| ; (fun __caml_parser_env ->
001430|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'localdeclist) in
001431|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'decinit) in
001432|     Obj.repr(
001433| # 304 "src/parser.mly"
001434|                                     ( let pos = start_pos() in
001435|                                       let locals,_localslen = _2 in
001436|                                       let rhs,   _rhslen    = _3 in
001437|                                       [mk_stmt pos (A.Local (locals, rhs))] )
001438| # 1439 "src/parser.ml"
001439|                : 'stat_no_paren))
001440| ; (fun __caml_parser_env ->
001441|     Obj.repr(
001442| # 309 "src/parser.mly"
001443|                           ( [] )
001444| # 1445 "src/parser.ml"
001445|                : 'elsepart))
001446| ; (fun __caml_parser_env ->
001447|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'block) in
001448|     Obj.repr(
001449| # 310 "src/parser.mly"
001450|                           ( _2 )
001451| # 1452 "src/parser.ml"
001452|                : 'elsepart))
001453| ; (fun __caml_parser_env ->
001454|     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'expr1) in
001455|     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'block) in
001456|     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'elsepart) in
001457|     Obj.repr(
001458| # 311 "src/parser.mly"
001459|                                             ( [mk_stmt (start_pos()) (A.If (_2, _4, _5))] )
001460| # 1461 "src/parser.ml"
001461|                : 'elsepart))
001462| ; (fun __caml_parser_env ->
001463|     Obj.repr(
001464| # 313 "src/parser.mly"
001465|                           ( None )
001466| # 1467 "src/parser.ml"
001467|                : 'opt_step))
001468| ; (fun __caml_parser_env ->
001469|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001470|     Obj.repr(
001471| # 314 "src/parser.mly"
001472|                           ( Some _2 )
001473| # 1474 "src/parser.ml"
001474|                : 'opt_step))
001475| ; (fun __caml_parser_env ->
001476|     let _1 = (Parsing.peek_val __caml_parser_env 0 : A.stmt list list) in
001477|     Obj.repr(
001478| # 317 "src/parser.mly"
001479|                                         ( List.flatten _1 )
001480| # 1481 "src/parser.ml"
001481|                : 'block))
001482| ; (fun __caml_parser_env ->
001483|     let _1 = (Parsing.peek_val __caml_parser_env 3 : A.stmt list list) in
001484|     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'exprlist) in
001485|     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'sc) in
001486|     Obj.repr(
001487| # 318 "src/parser.mly"
001488|                                         ( let retpos = rhs_pos 2 in
001489|                                           let ret    = mk_stmt retpos (A.Return _3) in
001490|                                           List.flatten (_1 @ [[ret]]) )
001491| # 1492 "src/parser.ml"
001492|                : 'block))
001493| ; (fun __caml_parser_env ->
001494|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
001495|     Obj.repr(
001496| # 323 "src/parser.mly"
001497|                 ( _1 )
001498| # 1499 "src/parser.ml"
001499|                : 'expr1))
001500| ; (fun __caml_parser_env ->
001501|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001502|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001503|     Obj.repr(
001504| # 327 "src/parser.mly"
001505|                               ( binop _1 A.Eq _3 )
001506| # 1507 "src/parser.ml"
001507|                : 'expr))
001508| ; (fun __caml_parser_env ->
001509|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001510|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001511|     Obj.repr(
001512| # 328 "src/parser.mly"
001513|                               ( binop _1 A.Lt _3 )
001514| # 1515 "src/parser.ml"
001515|                : 'expr))
001516| ; (fun __caml_parser_env ->
001517|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001518|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001519|     Obj.repr(
001520| # 329 "src/parser.mly"
001521|                               ( binop _1 A.Gt _3 )
001522| # 1523 "src/parser.ml"
001523|                : 'expr))
001524| ; (fun __caml_parser_env ->
001525|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001526|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001527|     Obj.repr(
001528| # 330 "src/parser.mly"
001529|                               ( binop _1 A.Ne _3 )
001530| # 1531 "src/parser.ml"
001531|                : 'expr))
001532| ; (fun __caml_parser_env ->
001533|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001534|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001535|     Obj.repr(
001536| # 331 "src/parser.mly"
001537|                               ( binop _1 A.Le _3 )
001538| # 1539 "src/parser.ml"
001539|                : 'expr))
001540| ; (fun __caml_parser_env ->
001541|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001542|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001543|     Obj.repr(
001544| # 332 "src/parser.mly"
001545|                               ( binop _1 A.Ge _3 )
001546| # 1547 "src/parser.ml"
001547|                : 'expr))
001548| ; (fun __caml_parser_env ->
001549|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001550|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001551|     Obj.repr(
001552| # 333 "src/parser.mly"
001553|                               ( binop _1 A.Plus  _3 )
001554| # 1555 "src/parser.ml"
001555|                : 'expr))
001556| ; (fun __caml_parser_env ->
001557|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001558|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001559|     Obj.repr(
001560| # 334 "src/parser.mly"
001561|                               ( binop _1 A.Minus _3 )
001562| # 1563 "src/parser.ml"
001563|                : 'expr))
001564| ; (fun __caml_parser_env ->
001565|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001566|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001567|     Obj.repr(
001568| # 335 "src/parser.mly"
001569|                               ( binop _1 A.Times _3 )
001570| # 1571 "src/parser.ml"
001571|                : 'expr))
001572| ; (fun __caml_parser_env ->
001573|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001574|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001575|     Obj.repr(
001576| # 336 "src/parser.mly"
001577|                               ( binop _1 A.Div   _3 )
001578| # 1579 "src/parser.ml"
001579|                : 'expr))
001580| ; (fun __caml_parser_env ->
001581|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001582|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001583|     Obj.repr(
001584| # 337 "src/parser.mly"
001585|                               ( binop _1 A.Mod   _3 )
001586| # 1587 "src/parser.ml"
001587|                : 'expr))
001588| ; (fun __caml_parser_env ->
001589|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001590|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001591|     Obj.repr(
001592| # 338 "src/parser.mly"
001593|                               ( binop _1 A.Pow   _3 )
001594| # 1595 "src/parser.ml"
001595|                : 'expr))
001596| ; (fun __caml_parser_env ->
001597|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001598|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001599|     Obj.repr(
001600| # 339 "src/parser.mly"
001601|                               ( binop _1 A.Concat _3 )
001602| # 1603 "src/parser.ml"
001603|                : 'expr))
001604| ; (fun __caml_parser_env ->
001605|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001606|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001607|     Obj.repr(
001608| # 340 "src/parser.mly"
001609|                               ( A.And (_1,_3) )
001610| # 1611 "src/parser.ml"
001611|                : 'expr))
001612| ; (fun __caml_parser_env ->
001613|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001614|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001615|     Obj.repr(
001616| # 341 "src/parser.mly"
001617|                               ( A.Or (_1,_3) )
001618| # 1619 "src/parser.ml"
001619|                : 'expr))
001620| ; (fun __caml_parser_env ->
001621|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001622|     Obj.repr(
001623| # 343 "src/parser.mly"
001624|                                 ( unop A.Uminus _2 )
001625| # 1626 "src/parser.ml"
001626|                : 'expr))
001627| ; (fun __caml_parser_env ->
001628|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001629|     Obj.repr(
001630| # 344 "src/parser.mly"
001631|                               ( unop A.Not _2 )
001632| # 1633 "src/parser.ml"
001633|                : 'expr))
001634| ; (fun __caml_parser_env ->
001635|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
001636|     Obj.repr(
001637| # 345 "src/parser.mly"
001638|                               ( unop A.Length _2 )
001639| # 1640 "src/parser.ml"
001640|                : 'expr))
001641| ; (fun __caml_parser_env ->
001642|     Obj.repr(
001643| # 346 "src/parser.mly"
001644|                               ( A.Lit (A.Nil)       )
001645| # 1646 "src/parser.ml"
001646|                : 'expr))
001647| ; (fun __caml_parser_env ->
001648|     Obj.repr(
001649| # 347 "src/parser.mly"
001650|                               ( A.Lit (A.Bool true) )
001651| # 1652 "src/parser.ml"
001652|                : 'expr))
001653| ; (fun __caml_parser_env ->
001654|     Obj.repr(
001655| # 348 "src/parser.mly"
001656|                               ( A.Lit (A.Bool false) )
001657| # 1658 "src/parser.ml"
001658|                : 'expr))
001659| ; (fun __caml_parser_env ->
001660|     let _1 = (Parsing.peek_val __caml_parser_env 0 : Ast.number) in
001661|     Obj.repr(
001662| # 349 "src/parser.mly"
001663|                               ( A.Lit (A.Number _1) )
001664| # 1665 "src/parser.ml"
001665|                : 'expr))
001666| ; (fun __caml_parser_env ->
001667|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'string) in
001668|     Obj.repr(
001669| # 350 "src/parser.mly"
001670|                               ( _1 )
001671| # 1672 "src/parser.ml"
001672|                : 'expr))
001673| ; (fun __caml_parser_env ->
001674|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'prefixexp) in
001675|     Obj.repr(
001676| # 352 "src/parser.mly"
001677|                               ( _1 )
001678| # 1679 "src/parser.ml"
001679|                : 'expr))
001680| ; (fun __caml_parser_env ->
001681|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'table) in
001682|     Obj.repr(
001683| # 353 "src/parser.mly"
001684|                               ( _1 )
001685| # 1686 "src/parser.ml"
001686|                : 'expr))
001687| ; (fun __caml_parser_env ->
001688|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'body) in
001689|     Obj.repr(
001690| # 354 "src/parser.mly"
001691|                               ( let (args,bl) = _2 in
001692|                                 if snd args
001693|                                 then unimp "varargs" (start_pos())
001694|                                 else A.Lit (A.Fun (fst args, bl)) )
001695| # 1696 "src/parser.ml"
001696|                : 'expr))
001697| ; (fun __caml_parser_env ->
001698|     let _1 = (Parsing.peek_val __caml_parser_env 0 : Ast.str) in
001699|     Obj.repr(
001700| # 360 "src/parser.mly"
001701|                               ( match _1 with
001702|                                  | A.Normal ns -> A.Lit (A.String (A.Normal (String.escaped ns)))
001703|                                  | A.Char cs   -> A.Lit (A.String (A.Char (String.escaped cs)))
001704|                                  | A.Long _    -> failwith "Internal string parser inconsistency" )
001705| # 1706 "src/parser.ml"
001706|                : 'string))
001707| ; (fun __caml_parser_env ->
001708|     let _1 = (Parsing.peek_val __caml_parser_env 0 : Ast.str) in
001709|     Obj.repr(
001710| # 364 "src/parser.mly"
001711|                               ( A.Lit (A.String (_1)) )
001712| # 1713 "src/parser.ml"
001713|                : 'string))
001714| ; (fun __caml_parser_env ->
001715|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'fieldlist) in
001716|     Obj.repr(
001717| # 366 "src/parser.mly"
001718|                               ( de_table _2 )
001719| # 1720 "src/parser.ml"
001720|                : 'table))
001721| ; (fun __caml_parser_env ->
001722|     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
001723|     Obj.repr(
001724| # 368 "src/parser.mly"
001725|                                          ( A.Lvalue (A.Name _1) )
001726| # 1727 "src/parser.ml"
001727|                : 'prefixexp))
001728| ; (fun __caml_parser_env ->
001729|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expr1) in
001730|     Obj.repr(
001731| # 369 "src/parser.mly"
001732|                                          ( A.Paren _2 )
001733| # 1734 "src/parser.ml"
001734|                : 'prefixexp))
001735| ; (fun __caml_parser_env ->
001736|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'prefixexp) in
001737|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'colon_name) in
001738|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'args) in
001739|     Obj.repr(
001740| # 370 "src/parser.mly"
001741|                                   ( match _2 with
001742|                                             | None       -> A.Call (_1, _3)
001743|                                             | Some mname -> A.Methcall (_1,mname,_3) )
001744| # 1745 "src/parser.ml"
001745|                : 'prefixexp))
001746| ; (fun __caml_parser_env ->
001747|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'prefixexp) in
001748|     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
001749|     Obj.repr(
001750| # 373 "src/parser.mly"
001751|                                   ( A.Lvalue (A.Index (_1,_3)) )
001752| # 1753 "src/parser.ml"
001753|                : 'prefixexp))
001754| ; (fun __caml_parser_env ->
001755|     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'prefixexp) in
001756|     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expr1) in
001757|     Obj.repr(
001758| # 374 "src/parser.mly"
001759|                                   ( A.Lvalue (A.DynIndex (_1,_3)) )
001760| # 1761 "src/parser.ml"
001761|                : 'prefixexp))
001762| ; (fun __caml_parser_env ->
001763|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'exprlist) in
001764|     Obj.repr(
001765| # 380 "src/parser.mly"
001766|                                  ( _2 )
001767| # 1768 "src/parser.ml"
001768|                : 'args))
001769| ; (fun __caml_parser_env ->
001770|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'table) in
001771|     Obj.repr(
001772| # 381 "src/parser.mly"
001773|                                  ( [_1] )
001774| # 1775 "src/parser.ml"
001775|                : 'args))
001776| ; (fun __caml_parser_env ->
001777|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'string) in
001778|     Obj.repr(
001779| # 382 "src/parser.mly"
001780|                                  ( [_1] )
001781| # 1782 "src/parser.ml"
001782|                : 'args))
001783| ; (fun __caml_parser_env ->
001784|     let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in
001785|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'var_suffix_list) in
001786|     Obj.repr(
001787| # 385 "src/parser.mly"
001788|                                               ( _2 (A.Name _1) )
001789| # 1790 "src/parser.ml"
001790|                : A.lvalue))
001791| ; (fun __caml_parser_env ->
001792|     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001793|     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'var_suffix_list1) in
001794|     Obj.repr(
001795| # 386 "src/parser.mly"
001796|                                               ( _4 (A.Paren _2) )
001797| # 1798 "src/parser.ml"
001798|                : A.lvalue))
001799| ; (fun __caml_parser_env ->
001800|     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'expr1) in
001801|     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'var_suffix_list1) in
001802|     Obj.repr(
001803| # 389 "src/parser.mly"
001804|                                               ( _4 (A.Paren _2) )
001805| # 1806 "src/parser.ml"
001806|                : 'var_paren))
001807| ; (fun __caml_parser_env ->
001808|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'colon_name_argslist) in
001809|     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
001810|     Obj.repr(
001811| # 393 "src/parser.mly"
001812|                                                 ( fun (recv : A.exp) -> 
001813|                                                     let rec build_exp recv args = (match args with
001814|                                                      | [] ->
001815|                                                        A.Index (recv,_3)
001816|                                                      | (None,fst)::rest ->
001817|                                                        build_exp (A.Call (recv,fst)) rest
001818|                                                      | (Some mname,fst)::rest ->
001819|                                                        build_exp (A.Methcall (recv,mname,fst)) rest) in
001820|                                                     build_exp recv _1 )
001821| # 1822 "src/parser.ml"
001822|                : 'var_suffix))
001823| ; (fun __caml_parser_env ->
001824|     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'colon_name_argslist) in
001825|     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expr1) in
001826|     Obj.repr(
001827| # 402 "src/parser.mly"
001828|                                          ( fun (recv : A.exp) ->
001829|                                                     let rec build_exp recv args = (match args with
001830|                                                      | []        -> A.DynIndex (recv,_3)
001831|                                                      | (None,fstargs)::rest ->
001832|                                                        build_exp (A.Call (recv,fstargs)) rest
001833|                                                      | (Some mname,fstargs)::rest ->
001834|                                                        build_exp (A.Methcall (recv,mname,fstargs)) rest) in
001835|                                                     build_exp recv _1 )
001836| # 1837 "src/parser.ml"
001837|                : 'var_suffix))
001838| ; (fun __caml_parser_env ->
001839|     Obj.repr(
001840| # 413 "src/parser.mly"
001841|                                               ( fun (recv : A.lvalue) -> recv )
001842| # 1843 "src/parser.ml"
001843|                : 'var_suffix_list))
001844| ; (fun __caml_parser_env ->
001845|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'var_suffix_list1) in
001846|     Obj.repr(
001847| # 414 "src/parser.mly"
001848|                                               ( fun (recv : A.lvalue) -> _1 (A.Lvalue recv) )
001849| # 1850 "src/parser.ml"
001850|                : 'var_suffix_list))
001851| ; (fun __caml_parser_env ->
001852|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'var_suffix) in
001853|     Obj.repr(
001854| # 418 "src/parser.mly"
001855|                                                 ( _1 )
001856| # 1857 "src/parser.ml"
001857|                : 'var_suffix_list1))
001858| ; (fun __caml_parser_env ->
001859|     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'var_suffix_list1) in
001860|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'var_suffix) in
001861|     Obj.repr(
001862| # 419 "src/parser.mly"
001863|                                                 ( fun (recv : A.exp) -> _2 (A.Lvalue (_1 recv)) )
001864| # 1865 "src/parser.ml"
001865|                : 'var_suffix_list1))
001866| ; (fun __caml_parser_env ->
001867|     Obj.repr(
001868| # 422 "src/parser.mly"
001869|                                            ( [] )
001870| # 1871 "src/parser.ml"
001871|                : 'colon_name_argslist))
001872| ; (fun __caml_parser_env ->
001873|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'colon_name_argslist1) in
001874|     Obj.repr(
001875| # 423 "src/parser.mly"
001876|                              ( let (fst,rest) = _1 in
001877|                                              fst::rest )
001878| # 1879 "src/parser.ml"
001879|                : 'colon_name_argslist))
001880| ; (fun __caml_parser_env ->
001881|     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'colon_name) in
001882|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'args) in
001883|     Obj.repr(
001884| # 427 "src/parser.mly"
001885|                                                             ( ((_1,_2), []) )
001886| # 1887 "src/parser.ml"
001887|                : 'colon_name_argslist1))
001888| ; (fun __caml_parser_env ->
001889|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'colon_name) in
001890|     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'args) in
001891|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'colon_name_argslist1) in
001892|     Obj.repr(
001893| # 428 "src/parser.mly"
001894|                                               ( let (fst,rest) = _3 in
001895|                                                               ((_1,_2), fst::rest) )
001896| # 1897 "src/parser.ml"
001897|                : 'colon_name_argslist1))
001898| ; (fun __caml_parser_env ->
001899|     Obj.repr(
001900| # 432 "src/parser.mly"
001901|                           ( None )
001902| # 1903 "src/parser.ml"
001903|                : 'colon_name))
001904| ; (fun __caml_parser_env ->
001905|     let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in
001906|     Obj.repr(
001907| # 433 "src/parser.mly"
001908|                      ( Some _2 )
001909| # 1910 "src/parser.ml"
001910|                : 'colon_name))
001911| ; (fun __caml_parser_env ->
001912|     Obj.repr(
001913| # 461 "src/parser.mly"
001914|                                   ( [] )
001915| # 1916 "src/parser.ml"
001916|                : 'exprlist))
001917| ; (fun __caml_parser_env ->
001918|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'exprlist1) in
001919|     Obj.repr(
001920| # 462 "src/parser.mly"
001921|                                   ( let es,len = _1 in es )
001922| # 1923 "src/parser.ml"
001923|                : 'exprlist))
001924| ; (fun __caml_parser_env ->
001925|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
001926|     Obj.repr(
001927| # 465 "src/parser.mly"
001928|                                   ( ([_1],1) )
001929| # 1930 "src/parser.ml"
001930|                : 'exprlist1))
001931| ; (fun __caml_parser_env ->
001932|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'exprlist1) in
001933|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
001934|     Obj.repr(
001935| # 466 "src/parser.mly"
001936|                                   ( let es,len = _1 in (es @ [_3],len+1) )
001937| # 1938 "src/parser.ml"
001938|                : 'exprlist1))
001939| ; (fun __caml_parser_env ->
001940|     Obj.repr(
001941| # 469 "src/parser.mly"
001942|                                   ( ([], false) )
001943| # 1944 "src/parser.ml"
001944|                : 'parlist))
001945| ; (fun __caml_parser_env ->
001946|     Obj.repr(
001947| # 470 "src/parser.mly"
001948|                                   ( ([], true) )
001949| # 1950 "src/parser.ml"
001950|                : 'parlist))
001951| ; (fun __caml_parser_env ->
001952|     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'parlist1) in
001953|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'opt_dots) in
001954|     Obj.repr(
001955| # 471 "src/parser.mly"
001956|                                   ( (_1, _2) )
001957| # 1958 "src/parser.ml"
001958|                : 'parlist))
001959| ; (fun __caml_parser_env ->
001960|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'par) in
001961|     Obj.repr(
001962| # 474 "src/parser.mly"
001963|                                   ( [_1] )
001964| # 1965 "src/parser.ml"
001965|                : 'parlist1))
001966| ; (fun __caml_parser_env ->
001967|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'parlist1) in
001968|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'par) in
001969|     Obj.repr(
001970| # 475 "src/parser.mly"
001971|                                   ( _1 @ [_3] )
001972| # 1973 "src/parser.ml"
001973|                : 'parlist1))
001974| ; (fun __caml_parser_env ->
001975|     Obj.repr(
001976| # 478 "src/parser.mly"
001977|                                   ( false )
001978| # 1979 "src/parser.ml"
001979|                : 'opt_dots))
001980| ; (fun __caml_parser_env ->
001981|     Obj.repr(
001982| # 479 "src/parser.mly"
001983|                                   ( true  )
001984| # 1985 "src/parser.ml"
001985|                : 'opt_dots))
001986| ; (fun __caml_parser_env ->
001987|     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
001988|     Obj.repr(
001989| # 481 "src/parser.mly"
001990|                 ( _1 )
001991| # 1992 "src/parser.ml"
001992|                : 'par))
001993| ; (fun __caml_parser_env ->
001994|     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'lfieldlist) in
001995|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'semicolonpart) in
001996|     Obj.repr(
001997| # 484 "src/parser.mly"
001998|                                       ( (_1, _2) )
001999| # 2000 "src/parser.ml"
002000|                : 'fieldlist))
002001| ; (fun __caml_parser_env ->
002002|     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'ffieldlist1) in
002003|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'lastcomma) in
002004|     Obj.repr(
002005| # 485 "src/parser.mly"
002006|                                       ( ([], _1) )
002007| # 2008 "src/parser.ml"
002008|                : 'fieldlist))
002009| ; (fun __caml_parser_env ->
002010|     Obj.repr(
002011| # 488 "src/parser.mly"
002012|                                       ( [] )
002013| # 2014 "src/parser.ml"
002014|                : 'semicolonpart))
002015| ; (fun __caml_parser_env ->
002016|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'ffieldlist) in
002017|     Obj.repr(
002018| # 489 "src/parser.mly"
002019|                                       ( _2 )
002020| # 2021 "src/parser.ml"
002021|                : 'semicolonpart))
002022| ; (fun __caml_parser_env ->
002023|     Obj.repr(
002024| # 492 "src/parser.mly"
002025|                                        ( () )
002026| # 2027 "src/parser.ml"
002027|                : 'lastcomma))
002028| ; (fun __caml_parser_env ->
002029|     Obj.repr(
002030| # 493 "src/parser.mly"
002031|                                        ( () )
002032| # 2033 "src/parser.ml"
002033|                : 'lastcomma))
002034| ; (fun __caml_parser_env ->
002035|     Obj.repr(
002036| # 496 "src/parser.mly"
002037|                                        ( [] )
002038| # 2039 "src/parser.ml"
002039|                : 'ffieldlist))
002040| ; (fun __caml_parser_env ->
002041|     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'ffieldlist1) in
002042|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'lastcomma) in
002043|     Obj.repr(
002044| # 497 "src/parser.mly"
002045|                                        ( _1 )
002046| # 2047 "src/parser.ml"
002047|                : 'ffieldlist))
002048| ; (fun __caml_parser_env ->
002049|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'ffield) in
002050|     Obj.repr(
002051| # 500 "src/parser.mly"
002052|                                        ( [_1] )
002053| # 2054 "src/parser.ml"
002054|                : 'ffieldlist1))
002055| ; (fun __caml_parser_env ->
002056|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'ffieldlist1) in
002057|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'ffield) in
002058|     Obj.repr(
002059| # 501 "src/parser.mly"
002060|                                        ( _1 @ [_3] )
002061| # 2062 "src/parser.ml"
002062|                : 'ffieldlist1))
002063| ; (fun __caml_parser_env ->
002064|     let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
002065|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
002066|     Obj.repr(
002067| # 502 "src/parser.mly"
002068|                                        ( (_1, _3) )
002069| # 2070 "src/parser.ml"
002070|                : 'ffield))
002071| ; (fun __caml_parser_env ->
002072|     Obj.repr(
002073| # 504 "src/parser.mly"
002074|                                        ( [] )
002075| # 2076 "src/parser.ml"
002076|                : 'lfieldlist))
002077| ; (fun __caml_parser_env ->
002078|     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'lfieldlist1) in
002079|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'lastcomma) in
002080|     Obj.repr(
002081| # 505 "src/parser.mly"
002082|                                        ( _1 )
002083| # 2084 "src/parser.ml"
002084|                : 'lfieldlist))
002085| ; (fun __caml_parser_env ->
002086|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
002087|     Obj.repr(
002088| # 508 "src/parser.mly"
002089|                      ([_1])
002090| # 2091 "src/parser.ml"
002091|                : 'lfieldlist1))
002092| ; (fun __caml_parser_env ->
002093|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lfieldlist1) in
002094|     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr1) in
002095|     Obj.repr(
002096| # 509 "src/parser.mly"
002097|                                        ( _1 @ [_3] )
002098| # 2099 "src/parser.ml"
002099|                : 'lfieldlist1))
002100| ; (fun __caml_parser_env ->
002101|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'var_paren) in
002102|     Obj.repr(
002103| # 512 "src/parser.mly"
002104|                                            ( ([_1],1) )
002105| # 2106 "src/parser.ml"
002106|                : 'varlist1_paren))
002107| ; (fun __caml_parser_env ->
002108|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'varlist1_paren) in
002109|     let _3 = (Parsing.peek_val __caml_parser_env 0 : A.lvalue) in
002110|     Obj.repr(
002111| # 513 "src/parser.mly"
002112|                                            ( let rest,len = _1 in (rest @ [_3],len+1) )
002113| # 2114 "src/parser.ml"
002114|                : 'varlist1_paren))
002115| ; (fun __caml_parser_env ->
002116|     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'valid_lvalue_no_paren) in
002117|     Obj.repr(
002118| # 517 "src/parser.mly"
002119|                                                     ( ([_1],1) )
002120| # 2121 "src/parser.ml"
002121|                : 'varlist1_no_paren))
002122| ; (fun __caml_parser_env ->
002123|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'varlist1_no_paren) in
002124|     let _3 = (Parsing.peek_val __caml_parser_env 0 : A.lvalue) in
002125|     Obj.repr(
002126| # 518 "src/parser.mly"
002127|                                                     ( let rest,len = _1 in (rest @ [_3],len+1) )
002128| # 2129 "src/parser.ml"
002129|                : 'varlist1_no_paren))
002130| ; (fun __caml_parser_env ->
002131|     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
002132|     Obj.repr(
002133| # 521 "src/parser.mly"
002134|                                        ( _1,[] )
002135| # 2136 "src/parser.ml"
002136|                : 'namelist))
002137| ; (fun __caml_parser_env ->
002138|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'namelist) in
002139|     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
002140|     Obj.repr(
002141| # 522 "src/parser.mly"
002142|                                 ( let fst,rest = _1 in
002143|                                          fst,(rest @ [_3]) )
002144| # 2145 "src/parser.ml"
002145|                : 'namelist))
002146| ; (fun __caml_parser_env ->
002147|     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
002148|     Obj.repr(
002149| # 526 "src/parser.mly"
002150|                                        ( ([_1],1) )
002151| # 2152 "src/parser.ml"
002152|                : 'localdeclist))
002153| ; (fun __caml_parser_env ->
002154|     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'localdeclist) in
002155|     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
002156|     Obj.repr(
002157| # 527 "src/parser.mly"
002158|                                        ( let rest,len = _1 in (rest @ [_3],len+1) )
002159| # 2160 "src/parser.ml"
002160|                : 'localdeclist))
002161| ; (fun __caml_parser_env ->
002162|     Obj.repr(
002163| # 530 "src/parser.mly"
002164|                            ( ([],0) )
002165| # 2166 "src/parser.ml"
002166|                : 'decinit))
002167| ; (fun __caml_parser_env ->
002168|     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'exprlist1) in
002169|     Obj.repr(
002170| # 531 "src/parser.mly"
002171|                            ( _2 )
002172| # 2173 "src/parser.ml"
002173|                : 'decinit))
002174| (* Entry chunks *)
002175| ; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
002176| |]
002177| let yytables =
002178|   { Parsing.actions=yyact;
002179|     Parsing.transl_const=yytransl_const;
002180|     Parsing.transl_block=yytransl_block;
002181|     Parsing.lhs=yylhs;
002182|     Parsing.len=yylen;
002183|     Parsing.defred=yydefred;
002184|     Parsing.dgoto=yydgoto;
002185|     Parsing.sindex=yysindex;
002186|     Parsing.rindex=yyrindex;
002187|     Parsing.gindex=yygindex;
002188|     Parsing.tablesize=yytablesize;
002189|     Parsing.table=yytable;
002190|     Parsing.check=yycheck;
002191|     Parsing.error_function=parse_error;
002192|     Parsing.names_const=yynames_const;
002193|     Parsing.names_block=yynames_block }
002194| let chunks (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
002195|    (Parsing.yyparse yytables 1 lexfun lexbuf : Ast.block)
002196| ;;

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