
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| ;;