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



Statistics:  
kind coverage
binding 170 / 183 (92 %)
sequence 0 / 0 (- %)
for 0 / 0 (- %)
if/then 0 / 0 (- %)
try 0 / 0 (- %)
while 0 / 0 (- %)
match/function 110 / 122 (90 %)
kind coverage
class expression 0 / 0 (- %)
class initializer 0 / 0 (- %)
class method 0 / 0 (- %)
class value 0 / 0 (- %)
toplevel expression 0 / 0 (- %)
lazy operator 0 / 0 (- %)



Source:

fold all unfold all
000001| type token =
000002|   | ID of (string)
000003|   | INT of (int)
000004|   | STRING of (string)
000005|   | REAL of (float)
000006|   | BOOLEAN of (bool)
000007|   | TEXT of (string)
000008|   | COMPOP of (Ast.comparator)
000009|   | IMPORT of (bool)
000010|   | FOREACH
000011|   | WHILE
000012|   | IF
000013|   | FOR
000014|   | ELSE
000015|   | TEMPLATE
000016|   | INSTRUCTIONS
000017|   | FUNCTION
000018|   | CONTINUE
000019|   | BREAK
000020|   | RETURN
000021|   | IN
000022|   | ONCE
000023|   | WHEN
000024|   | VAR
000025|   | EOF
000026|   | LBRACE
000027|   | RBRACE
000028|   | LPAREN
000029|   | RPAREN
000030|   | LBRACKET
000031|   | RBRACKET
000032|   | COMMA
000033|   | SEMICOLON
000034|   | COLON
000035|   | DOTDOTDOT
000036|   | DOT
000037|   | EQUALS
000038|   | NOT
000039|   | QUESTION
000040|   | PLUS
000041|   | MINUS
000042|   | TIMES
000043|   | DIVIDE
000044|   | MODULO
000045|   | AND
000046|   | OR
000047|   | VOID
000048|   | SWITCH
000049|   | CASE
000050|   | DEFAULT
000051|   | PLUSEQUALS
000052|   | MINUSEQUALS
000053|   | TIMESEQUALS
000054|   | DIVEQUALS
000055|   | MODEQUALS
000056|   | PLUSPLUS
000057|   | MINUSMINUS
000058|   | AT
000059|   | TRY
000060|   | CATCH
000061|   | THROW
000062|   | FINALLY
000063|   | PROTOTYPE
000064|   | OUTOFRANGENUMBER
000065|  
000066| open Parsing;;
000067| # 1 "build/parser.mly"
000068|
000069|     
000070| (** 
000071|
000072| This program is free software; you can redistribute it and / or modify
000073| it under the terms of the GNU General Public License as published by
000074| the Free Software Foundation; version 3 of the License.
000075|
000076| This program is distributed in the hope that it will be useful,
000077| but WITHOUT ANY WARRANTY; without even the implied warranty of
000078| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
000079| GNU General Public License for more details.
000080|
000081| Jtemplate parser
000082| expression parsing adapted from ECMA-262 
000083| http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf 
000084|
000085| @author Tony BenBrahim < tony.benbrahim at gmail.com >
000086|
000087| *)
000088|
000089| open Ast
000090|
000091| let parse_error s =
000092|     let pos = Parsing.symbol_start_pos() in
000093|     print_string ("in file " ^ (Filename.basename pos.Lexing.pos_fname) ^ ": "^ s^" at line ");
000094|     print_int pos.Lexing.pos_lnum;
000095|     print_string " at columns ";
000096|     print_int (Parsing.symbol_start() - pos.Lexing.pos_bol);
000097|     print_string("-");
000098|     print_int (Parsing.symbol_end() - pos.Lexing.pos_bol);
000099|     print_string "\n";
000100|     flush stdout
000101|         
000102| let get_env ()= 
000103|     let pos=Parsing.symbol_start_pos() in
000104|     (pos.Lexing.pos_fname,pos.Lexing.pos_lnum)
000105|
000106|         
000107| let resolve_import (filename, library, (inp_file, _))=
000108|     Filename_util.resolve_filename (Filename.dirname inp_file) filename
000109|         
000110| let extract_stmt_list=function
000111|     | StatementBlock(lst) -> lst
000112|     | _ -> raise ( RuntimeError.InternalError "expected statement block" )
000113| # 114 "build/parser.ml"
000114| let yytransl_const = (*[2]*)[|
000115|   265 (* FOREACH *);
000116|   266 (* WHILE *);
000117|   267 (* IF *);
000118|   268 (* FOR *);
000119|   269 (* ELSE *);
000120|   270 (* TEMPLATE *);
000121|   271 (* INSTRUCTIONS *);
000122|   272 (* FUNCTION *);
000123|   273 (* CONTINUE *);
000124|   274 (* BREAK *);
000125|   275 (* RETURN *);
000126|   276 (* IN *);
000127|   277 (* ONCE *);
000128|   278 (* WHEN *);
000129|   279 (* VAR *);
000130|     0 (* EOF *);
000131|   280 (* LBRACE *);
000132|   281 (* RBRACE *);
000133|   282 (* LPAREN *);
000134|   283 (* RPAREN *);
000135|   284 (* LBRACKET *);
000136|   285 (* RBRACKET *);
000137|   286 (* COMMA *);
000138|   287 (* SEMICOLON *);
000139|   288 (* COLON *);
000140|   289 (* DOTDOTDOT *);
000141|   290 (* DOT *);
000142|   291 (* EQUALS *);
000143|   292 (* NOT *);
000144|   293 (* QUESTION *);
000145|   294 (* PLUS *);
000146|   295 (* MINUS *);
000147|   296 (* TIMES *);
000148|   297 (* DIVIDE *);
000149|   298 (* MODULO *);
000150|   299 (* AND *);
000151|   300 (* OR *);
000152|   301 (* VOID *);
000153|   302 (* SWITCH *);
000154|   303 (* CASE *);
000155|   304 (* DEFAULT *);
000156|   305 (* PLUSEQUALS *);
000157|   306 (* MINUSEQUALS *);
000158|   307 (* TIMESEQUALS *);
000159|   308 (* DIVEQUALS *);
000160|   309 (* MODEQUALS *);
000161|   310 (* PLUSPLUS *);
000162|   311 (* MINUSMINUS *);
000163|   312 (* AT *);
000164|   313 (* TRY *);
000165|   314 (* CATCH *);
000166|   315 (* THROW *);
000167|   316 (* FINALLY *);
000168|   317 (* PROTOTYPE *);
000169|   318 (* OUTOFRANGENUMBER *);
000170|     0|]
000171|  
000172| let yytransl_block = (*[2]*)[|
000173|   257 (* ID *);
000174|   258 (* INT *);
000175|   259 (* STRING *);
000176|   260 (* REAL *);
000177|   261 (* BOOLEAN *);
000178|   262 (* TEXT *);
000179|   263 (* COMPOP *);
000180|   264 (* IMPORT *);
000181|     0|]
000182|  
000183| let yylhs = (*[2]*)"\255\255\
000184| \001\000\003\000\003\000\002\000\002\000\005\000\005\000\006\000\
000185| \007\000\007\000\004\000\004\000\004\000\004\000\004\000\004\000\
000186| \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\
000187| \004\000\004\000\004\000\014\000\014\000\014\000\013\000\013\000\
000188| \009\000\009\000\015\000\016\000\016\000\016\000\016\000\016\000\
000189| \016\000\016\000\016\000\016\000\019\000\019\000\019\000\019\000\
000190| \020\000\020\000\020\000\020\000\022\000\022\000\023\000\023\000\
000191| \023\000\023\000\023\000\024\000\024\000\024\000\024\000\024\000\
000192| \024\000\024\000\024\000\024\000\024\000\024\000\025\000\025\000\
000193| \008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\
000194| \008\000\008\000\011\000\011\000\011\000\011\000\017\000\017\000\
000195| \017\000\017\000\026\000\026\000\026\000\026\000\021\000\021\000\
000196| \021\000\027\000\027\000\018\000\018\000\028\000\028\000\010\000\
000197| \010\000\030\000\030\000\031\000\031\000\031\000\031\000\033\000\
000198| \032\000\032\000\032\000\012\000\012\000\029\000\029\000\000\000"
000199|  
000200| let yylen = (*[2]*)"\002\000\
000201| \002\000\001\000\002\000\001\000\000\000\003\000\001\000\002\000\
000202| \002\000\000\000\006\000\002\000\001\000\001\000\007\000\005\000\
000203| \002\000\002\000\003\000\003\000\005\000\009\000\007\000\009\000\
000204| \007\000\004\000\003\000\003\000\002\000\001\000\001\000\002\000\
000205| \001\000\001\000\000\000\001\000\001\000\001\000\001\000\001\000\
000206| \003\000\003\000\001\000\003\000\001\000\005\000\004\000\003\000\
000207| \004\000\004\000\004\000\003\000\001\000\001\000\001\000\002\000\
000208| \002\000\002\000\002\000\001\000\003\000\003\000\003\000\003\000\
000209| \003\000\003\000\002\000\003\000\003\000\002\000\001\000\005\000\
000210| \001\000\003\000\003\000\004\000\004\000\003\000\003\000\003\000\
000211| \003\000\003\000\001\000\002\000\003\000\000\000\001\000\001\000\
000212| \003\000\000\000\001\000\001\000\002\000\003\000\001\000\003\000\
000213| \000\000\003\000\003\000\001\000\003\000\002\000\001\000\001\000\
000214| \002\000\005\000\003\000\001\000\004\000\006\000\010\000\003\000\
000215| \000\000\001\000\003\000\001\000\002\000\001\000\001\000\002\000"
000216|  
000217| let yydefred = (*[2]*)"\000\000\
000218| \000\000\000\000\043\000\036\000\038\000\037\000\039\000\000\000\
000219| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000220| \000\000\000\000\000\000\000\000\000\000\000\000\013\000\000\000\
000221| \000\000\040\000\000\000\000\000\000\000\000\000\000\000\120\000\
000222| \000\000\004\000\000\000\014\000\007\000\000\000\045\000\000\000\
000223| \000\000\000\000\060\000\000\000\073\000\000\000\000\000\000\000\
000224| \000\000\000\000\000\000\000\000\000\000\017\000\018\000\000\000\
000225| \000\000\000\000\034\000\000\000\000\000\008\000\000\000\000\000\
000226| \000\000\000\000\000\000\088\000\000\000\000\000\067\000\000\000\
000227| \070\000\000\000\056\000\057\000\000\000\000\000\000\000\001\000\
000228| \003\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\
000229| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\058\000\
000230| \059\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000231| \000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\
000232| \000\000\000\000\000\000\019\000\000\000\000\000\006\000\042\000\
000233| \000\000\044\000\000\000\041\000\000\000\000\000\000\000\027\000\
000234| \000\000\000\000\092\000\000\000\000\000\000\000\000\000\048\000\
000235| \000\000\000\000\052\000\075\000\000\000\000\000\000\000\000\000\
000236| \000\000\000\000\000\000\000\000\000\000\063\000\064\000\065\000\
000237| \000\000\000\000\000\000\000\000\000\000\000\000\118\000\119\000\
000238| \103\000\000\000\000\000\000\000\000\000\000\000\084\000\000\000\
000239| \077\000\000\000\099\000\000\000\101\000\089\000\000\000\000\000\
000240| \026\000\000\000\000\000\049\000\000\000\047\000\050\000\051\000\
000241| \000\000\016\000\000\000\000\000\021\000\105\000\102\000\000\000\
000242| \085\000\046\000\000\000\000\000\000\000\094\000\096\000\000\000\
000243| \000\000\011\000\000\000\000\000\000\000\000\000\030\000\000\000\
000244| \000\000\000\000\015\000\009\000\000\000\000\000\000\000\029\000\
000245| \023\000\032\000\025\000\000\000\000\000\000\000\000\000\028\000\
000246| \024\000\022\000\000\000\108\000\000\000\000\000\117\000\000\000\
000247| \000\000\107\000\000\000\000\000\000\000\000\000\000\000\000\000\
000248| \000\000\109\000\000\000\106\000\000\000\000\000\000\000\115\000\
000249| \000\000\000\000\000\000\000\000\111\000"
000250|  
000251| let yydgoto = (*[2]*)"\002\000\
000252| \032\000\033\000\063\000\035\000\036\000\037\000\202\000\038\000\
000253| \058\000\162\000\114\000\221\000\208\000\209\000\059\000\039\000\
000254| \070\000\064\000\040\000\041\000\133\000\042\000\043\000\044\000\
000255| \045\000\134\000\065\000\163\000\164\000\223\000\230\000\239\000\
000256| \240\000"
000257|  
000258| let yysindex = (*[2]*)"\015\000\
000259| \178\000\000\000\000\000\000\000\000\000\000\000\000\000\060\255\
000260| \017\255\108\255\126\255\130\255\163\255\162\255\160\255\159\255\
000261| \161\255\224\000\143\255\060\000\224\000\013\001\000\000\143\255\
000262| \058\001\000\000\179\255\143\255\143\255\198\255\224\000\000\000\
000263| \226\000\000\000\178\000\000\000\000\000\142\255\000\000\241\254\
000264| \107\255\231\254\000\000\004\001\000\000\193\255\231\255\224\000\
000265| \224\000\224\000\224\255\249\255\013\000\000\000\000\000\029\000\
000266| \250\255\002\000\000\000\255\255\004\000\000\000\010\000\014\000\
000267| \008\000\011\255\006\255\000\000\124\255\012\000\000\000\027\255\
000268| \000\000\224\000\000\000\000\000\119\000\040\255\154\255\000\000\
000269| \000\000\000\000\224\000\127\255\224\000\041\000\127\255\224\000\
000270| \042\000\013\001\224\000\224\000\224\000\224\000\224\000\000\000\
000271| \000\000\058\001\058\001\058\001\058\001\058\001\058\001\058\001\
000272| \058\001\000\000\024\000\012\255\025\255\019\000\228\255\025\000\
000273| \066\255\018\000\004\000\000\000\013\001\013\001\000\000\000\000\
000274| \029\000\000\000\013\001\000\000\033\255\026\000\198\255\000\000\
000275| \236\254\052\000\000\000\250\255\027\000\036\000\008\255\000\000\
000276| \030\000\147\255\000\000\000\000\250\255\250\255\250\255\250\255\
000277| \250\255\250\255\203\255\237\255\237\255\000\000\000\000\000\000\
000278| \015\255\214\255\224\000\178\000\178\000\224\000\000\000\000\000\
000279| \000\000\034\000\228\255\061\000\013\000\013\000\000\000\198\255\
000280| \000\000\250\255\000\000\250\255\000\000\000\000\049\000\079\000\
000281| \000\000\224\000\048\000\000\000\127\255\000\000\000\000\000\000\
000282| \058\255\000\000\069\000\056\000\000\000\000\000\000\000\062\000\
000283| \000\000\000\000\192\255\063\000\250\255\000\000\000\000\178\000\
000284| \178\000\000\000\224\000\068\000\224\000\065\000\000\000\070\000\
000285| \192\255\198\255\000\000\000\000\066\000\116\255\029\255\000\000\
000286| \000\000\000\000\000\000\178\000\073\000\014\255\116\255\000\000\
000287| \000\000\000\000\074\000\000\000\075\000\105\255\000\000\093\000\
000288| \224\000\000\000\101\000\083\000\078\255\072\000\077\000\080\000\
000289| \224\000\000\000\224\000\000\000\101\000\131\255\250\255\000\000\
000290| \082\000\085\000\224\000\133\255\000\000"
000291|  
000292| let yyrindex = (*[2]*)"\000\000\
000293| \109\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000294| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000295| \000\000\081\000\000\000\000\000\000\000\084\000\000\000\000\000\
000296| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000297| \000\000\000\000\003\000\000\000\000\000\000\000\000\000\089\001\
000298| \127\001\203\001\000\000\079\255\000\000\000\000\000\000\000\000\
000299| \000\000\081\000\000\000\000\000\089\000\000\000\000\000\000\000\
000300| \013\255\000\000\000\000\000\000\165\001\000\000\000\000\000\000\
000301| \100\000\000\000\000\000\000\000\097\000\000\000\000\000\203\001\
000302| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000303| \000\000\000\000\000\000\091\000\000\000\000\000\091\000\000\000\
000304| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000305| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000306| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000307| \105\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000308| \000\000\000\000\084\000\000\000\000\000\000\000\000\000\000\000\
000309| \000\000\000\000\000\000\148\255\000\000\112\000\000\000\000\000\
000310| \000\000\000\000\000\000\000\000\001\001\075\001\158\001\018\002\
000311| \027\002\035\002\214\000\224\001\245\001\000\000\000\000\000\000\
000312| \046\001\009\002\000\000\000\000\000\000\081\000\000\000\000\000\
000313| \000\000\000\000\115\000\000\000\089\000\089\000\000\000\000\000\
000314| \000\000\043\002\000\000\189\255\000\000\000\000\000\000\000\000\
000315| \000\000\000\000\206\255\000\000\091\000\000\000\000\000\000\000\
000316| \000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\
000317| \000\000\000\000\000\000\000\000\051\002\000\000\000\000\000\000\
000318| \000\000\000\000\114\000\000\000\000\000\000\000\000\000\000\000\
000319| \121\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000320| \000\000\000\000\000\000\000\000\000\000\000\000\123\000\000\000\
000321| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
000322| \000\000\000\000\118\000\000\000\000\000\000\000\000\000\120\000\
000323| \000\000\000\000\000\000\000\000\118\000\000\000\168\255\000\000\
000324| \181\255\000\000\000\000\000\000\000\000"
000325|  
000326| let yygindex = (*[2]*)"\000\000\
000327| \000\000\000\000\007\000\120\255\226\255\252\255\000\000\240\255\
000328| \210\255\245\000\098\000\186\000\201\000\000\000\000\000\000\000\
000329| \033\001\036\001\000\000\000\000\178\255\022\000\000\000\245\255\
000330| \000\000\000\000\000\000\000\000\182\255\000\000\000\000\170\000\
000331| \000\000"
000332|  
000333| let yytablesize = (*[2]*)851
000334| let yytable = (*[2]*)"\078\000\
000335| \010\000\057\000\002\000\110\000\066\000\069\000\115\000\034\000\
000336| \137\000\090\000\084\000\178\000\085\000\073\000\079\000\001\000\
000337| \083\000\068\000\086\000\186\000\187\000\098\000\227\000\091\000\
000338| \092\000\093\000\094\000\095\000\096\000\097\000\062\000\108\000\
000339| \109\000\057\000\228\000\229\000\182\000\122\000\156\000\033\000\
000340| \060\000\081\000\047\000\033\000\083\000\071\000\072\000\083\000\
000341| \083\000\075\000\076\000\157\000\099\000\100\000\101\000\102\000\
000342| \103\000\125\000\207\000\175\000\224\000\083\000\046\000\211\000\
000343| \212\000\083\000\129\000\132\000\135\000\083\000\132\000\138\000\
000344| \207\000\141\000\142\000\143\000\144\000\145\000\146\000\131\000\
000345| \096\000\097\000\131\000\225\000\200\000\140\000\147\000\148\000\
000346| \149\000\150\000\151\000\152\000\153\000\154\000\083\000\166\000\
000347| \177\000\126\000\167\000\127\000\170\000\172\000\199\000\071\000\
000348| \242\000\071\000\069\000\071\000\071\000\071\000\071\000\188\000\
000349| \169\000\171\000\083\000\071\000\159\000\160\000\068\000\072\000\
000350| \072\000\072\000\072\000\072\000\072\000\072\000\072\000\003\000\
000351| \004\000\005\000\006\000\007\000\087\000\048\000\088\000\234\000\
000352| \235\000\194\000\185\000\222\000\089\000\057\000\015\000\003\000\
000353| \004\000\005\000\006\000\007\000\222\000\019\000\067\000\049\000\
000354| \021\000\123\000\022\000\050\000\213\000\249\000\015\000\253\000\
000355| \083\000\197\000\024\000\051\000\132\000\025\000\056\000\083\000\
000356| \021\000\083\000\022\000\026\000\082\000\052\000\091\000\184\000\
000357| \131\000\091\000\083\000\219\000\028\000\029\000\130\000\083\000\
000358| \128\000\053\000\057\000\026\000\215\000\054\000\083\000\055\000\
000359| \003\000\004\000\005\000\006\000\007\000\112\000\112\000\008\000\
000360| \009\000\010\000\011\000\012\000\074\000\013\000\014\000\015\000\
000361| \016\000\017\000\018\000\110\000\110\000\098\000\019\000\020\000\
000362| \237\000\021\000\098\000\022\000\098\000\077\000\023\000\106\000\
000363| \246\000\080\000\247\000\024\000\159\000\160\000\025\000\107\000\
000364| \093\000\161\000\252\000\093\000\026\000\027\000\205\000\206\000\
000365| \099\000\100\000\101\000\102\000\103\000\028\000\029\000\111\000\
000366| \030\000\112\000\031\000\099\000\100\000\101\000\102\000\103\000\
000367| \104\000\010\000\010\000\010\000\010\000\010\000\192\000\193\000\
000368| \010\000\010\000\010\000\010\000\010\000\113\000\010\000\010\000\
000369| \010\000\010\000\010\000\010\000\101\000\102\000\103\000\010\000\
000370| \010\000\010\000\010\000\002\000\010\000\115\000\083\000\010\000\
000371| \116\000\117\000\119\000\118\000\010\000\121\000\120\000\010\000\
000372| \124\000\136\000\139\000\155\000\168\000\010\000\010\000\010\000\
000373| \010\000\158\000\165\000\176\000\179\000\180\000\010\000\010\000\
000374| \183\000\010\000\189\000\010\000\061\000\004\000\005\000\006\000\
000375| \007\000\181\000\191\000\008\000\009\000\010\000\011\000\012\000\
000376| \195\000\013\000\014\000\015\000\016\000\017\000\018\000\196\000\
000377| \198\000\201\000\019\000\020\000\062\000\021\000\203\000\022\000\
000378| \204\000\210\000\023\000\214\000\220\000\236\000\217\000\024\000\
000379| \216\000\226\000\025\000\232\000\233\000\238\000\241\000\250\000\
000380| \026\000\027\000\243\000\244\000\005\000\245\000\251\000\035\000\
000381| \090\000\028\000\029\000\086\000\030\000\097\000\031\000\003\000\
000382| \004\000\005\000\006\000\007\000\100\000\087\000\008\000\009\000\
000383| \010\000\011\000\012\000\083\000\013\000\014\000\015\000\016\000\
000384| \017\000\018\000\095\000\104\000\035\000\019\000\020\000\062\000\
000385| \021\000\031\000\022\000\116\000\113\000\023\000\114\000\190\000\
000386| \231\000\218\000\024\000\174\000\173\000\025\000\248\000\000\000\
000387| \000\000\000\000\000\000\026\000\027\000\000\000\000\000\000\000\
000388| \000\000\000\000\000\000\000\000\028\000\029\000\000\000\030\000\
000389| \000\000\031\000\003\000\004\000\005\000\006\000\007\000\000\000\
000390| \000\000\008\000\009\000\010\000\011\000\012\000\000\000\013\000\
000391| \014\000\015\000\016\000\017\000\018\000\000\000\000\000\000\000\
000392| \019\000\020\000\000\000\021\000\000\000\022\000\000\000\000\000\
000393| \023\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\
000394| \025\000\000\000\000\000\000\000\066\000\000\000\026\000\027\000\
000395| \003\000\004\000\005\000\006\000\007\000\000\000\000\000\028\000\
000396| \029\000\000\000\030\000\000\000\031\000\000\000\066\000\015\000\
000397| \066\000\000\000\066\000\066\000\066\000\066\000\019\000\056\000\
000398| \000\000\021\000\066\000\022\000\000\000\000\000\000\000\000\000\
000399| \066\000\066\000\000\000\024\000\000\000\000\000\025\000\000\000\
000400| \000\000\000\000\098\000\000\000\026\000\003\000\004\000\005\000\
000401| \006\000\007\000\000\000\000\000\000\000\028\000\029\000\000\000\
000402| \000\000\074\000\000\000\074\000\015\000\074\000\074\000\074\000\
000403| \074\000\000\000\000\000\019\000\067\000\000\000\021\000\000\000\
000404| \022\000\099\000\100\000\101\000\102\000\103\000\104\000\105\000\
000405| \024\000\000\000\000\000\025\000\000\000\000\000\000\000\000\000\
000406| \000\000\026\000\003\000\004\000\005\000\006\000\007\000\000\000\
000407| \000\000\000\000\028\000\029\000\000\000\000\000\068\000\000\000\
000408| \068\000\015\000\068\000\068\000\068\000\068\000\000\000\000\000\
000409| \000\000\056\000\068\000\021\000\000\000\022\000\000\000\000\000\
000410| \068\000\068\000\000\000\000\000\000\000\024\000\000\000\053\000\
000411| \025\000\000\000\000\000\081\000\000\000\081\000\026\000\081\000\
000412| \081\000\081\000\081\000\000\000\000\000\000\000\000\000\028\000\
000413| \029\000\053\000\000\000\053\000\000\000\053\000\053\000\053\000\
000414| \053\000\000\000\000\000\053\000\000\000\053\000\053\000\053\000\
000415| \053\000\053\000\053\000\053\000\053\000\054\000\000\000\000\000\
000416| \000\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\
000417| \000\000\000\000\000\000\000\000\000\000\000\000\000\000\054\000\
000418| \000\000\054\000\000\000\054\000\054\000\054\000\054\000\000\000\
000419| \000\000\054\000\000\000\054\000\054\000\054\000\054\000\054\000\
000420| \054\000\054\000\054\000\043\000\000\000\000\000\000\000\054\000\
000421| \054\000\054\000\054\000\054\000\054\000\054\000\082\000\000\000\
000422| \082\000\000\000\082\000\082\000\082\000\082\000\043\000\000\000\
000423| \043\000\000\000\000\000\043\000\000\000\000\000\043\000\043\000\
000424| \000\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
000425| \043\000\055\000\000\000\000\000\000\000\043\000\043\000\043\000\
000426| \043\000\043\000\043\000\043\000\000\000\000\000\000\000\000\000\
000427| \000\000\000\000\000\000\055\000\000\000\055\000\061\000\055\000\
000428| \055\000\055\000\055\000\000\000\000\000\000\000\000\000\055\000\
000429| \055\000\055\000\055\000\055\000\055\000\055\000\055\000\000\000\
000430| \061\000\000\000\061\000\062\000\061\000\061\000\061\000\061\000\
000431| \000\000\000\000\000\000\000\000\061\000\061\000\061\000\000\000\
000432| \000\000\000\000\061\000\061\000\000\000\062\000\000\000\062\000\
000433| \000\000\062\000\062\000\062\000\062\000\000\000\000\000\000\000\
000434| \000\000\062\000\062\000\062\000\000\000\000\000\000\000\062\000\
000435| \062\000\069\000\000\000\069\000\000\000\069\000\069\000\069\000\
000436| \069\000\000\000\078\000\000\000\078\000\069\000\078\000\078\000\
000437| \078\000\078\000\000\000\080\000\069\000\080\000\000\000\080\000\
000438| \080\000\080\000\080\000\079\000\000\000\079\000\000\000\079\000\
000439| \079\000\079\000\079\000\076\000\000\000\076\000\000\000\076\000\
000440| \076\000\076\000\076\000\072\000\000\000\072\000\000\000\072\000\
000441| \072\000\072\000\072\000"
000442|  
000443| let yycheck = (*[2]*)"\030\000\
000444| \000\000\018\000\000\000\050\000\021\000\022\000\001\001\001\000\
000445| \087\000\035\001\026\001\032\001\028\001\025\000\031\000\001\000\
000446| \037\001\022\000\034\001\156\000\157\000\007\001\009\001\049\001\
000447| \050\001\051\001\052\001\053\001\054\001\055\001\025\001\048\000\
000448| \049\000\050\000\021\001\022\001\029\001\027\001\027\001\027\001\
000449| \019\000\035\000\026\001\031\001\037\001\024\000\025\000\037\001\
000450| \037\001\028\000\029\000\027\001\038\001\039\001\040\001\041\001\
000451| \042\001\074\000\195\000\027\001\032\001\037\001\003\001\200\000\
000452| \201\000\037\001\083\000\084\000\085\000\037\001\087\000\088\000\
000453| \209\000\090\000\091\000\092\000\093\000\094\000\095\000\084\000\
000454| \054\001\055\001\087\000\220\000\027\001\090\000\098\000\099\000\
000455| \100\000\101\000\102\000\103\000\104\000\105\000\037\001\030\001\
000456| \127\000\058\001\033\001\060\001\117\000\118\000\181\000\025\001\
000457| \027\001\027\001\123\000\029\001\030\001\031\001\032\001\158\000\
000458| \117\000\118\000\037\001\037\001\001\001\002\001\123\000\098\000\
000459| \099\000\100\000\101\000\102\000\103\000\104\000\105\000\001\001\
000460| \002\001\003\001\004\001\005\001\026\001\026\001\028\001\031\001\
000461| \032\001\168\000\155\000\214\000\034\001\158\000\016\001\001\001\
000462| \002\001\003\001\004\001\005\001\223\000\023\001\024\001\026\001\
000463| \026\001\030\001\028\001\026\001\203\000\027\001\016\001\027\001\
000464| \037\001\178\000\036\001\001\001\181\000\039\001\024\001\037\001\
000465| \026\001\037\001\028\001\045\001\031\001\012\001\027\001\029\001\
000466| \181\000\030\001\037\001\210\000\054\001\055\001\056\001\037\001\
000467| \031\001\026\001\203\000\045\001\205\000\031\001\037\001\031\001\
000468| \001\001\002\001\003\001\004\001\005\001\030\001\031\001\008\001\
000469| \009\001\010\001\011\001\012\001\026\001\014\001\015\001\016\001\
000470| \017\001\018\001\019\001\031\001\032\001\025\001\023\001\024\001\
000471| \233\000\026\001\030\001\028\001\007\001\024\001\031\001\031\001\
000472| \241\000\000\000\243\000\036\001\001\001\002\001\039\001\001\001\
000473| \027\001\006\001\251\000\030\001\045\001\046\001\047\001\048\001\
000474| \038\001\039\001\040\001\041\001\042\001\054\001\055\001\024\001\
000475| \057\001\001\001\059\001\038\001\039\001\040\001\041\001\042\001\
000476| \043\001\001\001\002\001\003\001\004\001\005\001\165\000\166\000\
000477| \008\001\009\001\010\001\011\001\012\001\001\001\014\001\015\001\
000478| \016\001\017\001\018\001\019\001\040\001\041\001\042\001\023\001\
000479| \024\001\025\001\026\001\025\001\028\001\001\001\037\001\031\001\
000480| \031\001\035\001\025\001\032\001\036\001\030\001\025\001\039\001\
000481| \029\001\001\001\001\001\020\001\027\001\045\001\046\001\047\001\
000482| \048\001\031\001\026\001\026\001\001\001\027\001\054\001\055\001\
000483| \027\001\057\001\025\001\059\001\001\001\002\001\003\001\004\001\
000484| \005\001\030\001\006\001\008\001\009\001\010\001\011\001\012\001\
000485| \024\001\014\001\015\001\016\001\017\001\018\001\019\001\001\001\
000486| \033\001\013\001\023\001\024\001\025\001\026\001\031\001\028\001\
000487| \027\001\027\001\031\001\024\001\027\001\001\001\025\001\036\001\
000488| \032\001\025\001\039\001\026\001\026\001\001\001\020\001\022\001\
000489| \045\001\046\001\035\001\031\001\000\000\030\001\026\001\031\001\
000490| \029\001\054\001\055\001\027\001\057\001\027\001\059\001\001\001\
000491| \002\001\003\001\004\001\005\001\025\001\029\001\008\001\009\001\
000492| \010\001\011\001\012\001\027\001\014\001\015\001\016\001\017\001\
000493| \018\001\019\001\027\001\025\001\027\001\023\001\024\001\025\001\
000494| \026\001\025\001\028\001\025\001\031\001\031\001\031\001\163\000\
000495| \223\000\209\000\036\001\123\000\121\000\039\001\245\000\255\255\
000496| \255\255\255\255\255\255\045\001\046\001\255\255\255\255\255\255\
000497| \255\255\255\255\255\255\255\255\054\001\055\001\255\255\057\001\
000498| \255\255\059\001\001\001\002\001\003\001\004\001\005\001\255\255\
000499| \255\255\008\001\009\001\010\001\011\001\012\001\255\255\014\001\
000500| \015\001\016\001\017\001\018\001\019\001\255\255\255\255\255\255\
000501| \023\001\024\001\255\255\026\001\255\255\028\001\255\255\255\255\
000502| \031\001\255\255\255\255\255\255\255\255\036\001\255\255\255\255\
000503| \039\001\255\255\255\255\255\255\007\001\255\255\045\001\046\001\
000504| \001\001\002\001\003\001\004\001\005\001\255\255\255\255\054\001\
000505| \055\001\255\255\057\001\255\255\059\001\255\255\025\001\016\001\
000506| \027\001\255\255\029\001\030\001\031\001\032\001\023\001\024\001\
000507| \255\255\026\001\037\001\028\001\255\255\255\255\255\255\255\255\
000508| \043\001\044\001\255\255\036\001\255\255\255\255\039\001\255\255\
000509| \255\255\255\255\007\001\255\255\045\001\001\001\002\001\003\001\
000510| \004\001\005\001\255\255\255\255\255\255\054\001\055\001\255\255\
000511| \255\255\025\001\255\255\027\001\016\001\029\001\030\001\031\001\
000512| \032\001\255\255\255\255\023\001\024\001\255\255\026\001\255\255\
000513| \028\001\038\001\039\001\040\001\041\001\042\001\043\001\044\001\
000514| \036\001\255\255\255\255\039\001\255\255\255\255\255\255\255\255\
000515| \255\255\045\001\001\001\002\001\003\001\004\001\005\001\255\255\
000516| \255\255\255\255\054\001\055\001\255\255\255\255\025\001\255\255\
000517| \027\001\016\001\029\001\030\001\031\001\032\001\255\255\255\255\
000518| \255\255\024\001\037\001\026\001\255\255\028\001\255\255\255\255\
000519| \043\001\044\001\255\255\255\255\255\255\036\001\255\255\007\001\
000520| \039\001\255\255\255\255\025\001\255\255\027\001\045\001\029\001\
000521| \030\001\031\001\032\001\255\255\255\255\255\255\255\255\054\001\
000522| \055\001\025\001\255\255\027\001\255\255\029\001\030\001\031\001\
000523| \032\001\255\255\255\255\035\001\255\255\037\001\038\001\039\001\
000524| \040\001\041\001\042\001\043\001\044\001\007\001\255\255\255\255\
000525| \255\255\049\001\050\001\051\001\052\001\053\001\054\001\055\001\
000526| \255\255\255\255\255\255\255\255\255\255\255\255\255\255\025\001\
000527| \255\255\027\001\255\255\029\001\030\001\031\001\032\001\255\255\
000528| \255\255\035\001\255\255\037\001\038\001\039\001\040\001\041\001\
000529| \042\001\043\001\044\001\007\001\255\255\255\255\255\255\049\001\
000530| \050\001\051\001\052\001\053\001\054\001\055\001\025\001\255\255\
000531| \027\001\255\255\029\001\030\001\031\001\032\001\026\001\255\255\
000532| \028\001\255\255\255\255\031\001\255\255\255\255\034\001\035\001\
000533| \255\255\037\001\038\001\039\001\040\001\041\001\042\001\043\001\
000534| \044\001\007\001\255\255\255\255\255\255\049\001\050\001\051\001\
000535| \052\001\053\001\054\001\055\001\255\255\255\255\255\255\255\255\
000536| \255\255\255\255\255\255\025\001\255\255\027\001\007\001\029\001\
000537| \030\001\031\001\032\001\255\255\255\255\255\255\255\255\037\001\
000538| \038\001\039\001\040\001\041\001\042\001\043\001\044\001\255\255\
000539| \025\001\255\255\027\001\007\001\029\001\030\001\031\001\032\001\
000540| \255\255\255\255\255\255\255\255\037\001\038\001\039\001\255\255\
000541| \255\255\255\255\043\001\044\001\255\255\025\001\255\255\027\001\
000542| \255\255\029\001\030\001\031\001\032\001\255\255\255\255\255\255\
000543| \255\255\037\001\038\001\039\001\255\255\255\255\255\255\043\001\
000544| \044\001\025\001\255\255\027\001\255\255\029\001\030\001\031\001\
000545| \032\001\255\255\025\001\255\255\027\001\037\001\029\001\030\001\
000546| \031\001\032\001\255\255\025\001\044\001\027\001\255\255\029\001\
000547| \030\001\031\001\032\001\025\001\255\255\027\001\255\255\029\001\
000548| \030\001\031\001\032\001\025\001\255\255\027\001\255\255\029\001\
000549| \030\001\031\001\032\001\025\001\255\255\027\001\255\255\029\001\
000550| \030\001\031\001\032\001"
000551|  
000552| let yynames_const = (*[2]*)"\
000553|   FOREACH\000\
000554|   WHILE\000\
000555|   IF\000\
000556|   FOR\000\
000557|   ELSE\000\
000558|   TEMPLATE\000\
000559|   INSTRUCTIONS\000\
000560|   FUNCTION\000\
000561|   CONTINUE\000\
000562|   BREAK\000\
000563|   RETURN\000\
000564|   IN\000\
000565|   ONCE\000\
000566|   WHEN\000\
000567|   VAR\000\
000568|   EOF\000\
000569|   LBRACE\000\
000570|   RBRACE\000\
000571|   LPAREN\000\
000572|   RPAREN\000\
000573|   LBRACKET\000\
000574|   RBRACKET\000\
000575|   COMMA\000\
000576|   SEMICOLON\000\
000577|   COLON\000\
000578|   DOTDOTDOT\000\
000579|   DOT\000\
000580|   EQUALS\000\
000581|   NOT\000\
000582|   QUESTION\000\
000583|   PLUS\000\
000584|   MINUS\000\
000585|   TIMES\000\
000586|   DIVIDE\000\
000587|   MODULO\000\
000588|   AND\000\
000589|   OR\000\
000590|   VOID\000\
000591|   SWITCH\000\
000592|   CASE\000\
000593|   DEFAULT\000\
000594|   PLUSEQUALS\000\
000595|   MINUSEQUALS\000\
000596|   TIMESEQUALS\000\
000597|   DIVEQUALS\000\
000598|   MODEQUALS\000\
000599|   PLUSPLUS\000\
000600|   MINUSMINUS\000\
000601|   AT\000\
000602|   TRY\000\
000603|   CATCH\000\
000604|   THROW\000\
000605|   FINALLY\000\
000606|   PROTOTYPE\000\
000607|   OUTOFRANGENUMBER\000\
000608|   "
000609|  
000610| let yynames_block = (*[2]*)"\
000611|   ID\000\
000612|   INT\000\
000613|   STRING\000\
000614|   REAL\000\
000615|   BOOLEAN\000\
000616|   TEXT\000\
000617|   COMPOP\000\
000618|   IMPORT\000\
000619|   "
000620|  
000621| let yyact = (*[2]*)[|
000622|   (fun _ -> (*[0]*)failwith "parser")
000623| ; (fun __caml_parser_env ->
000624|     (*[20]*)let _1 = (Parsing.peek_val __caml_parser_env 1 : 'opt_statements) in
000625|     (*[20]*)Obj.repr(
000626| # 94 "build/parser.mly"
000627|                          ( Program(_1) )
000628| # 629 "build/parser.ml"
000629|                : Ast.statement))
000630| ; (fun __caml_parser_env ->
000631|     (*[616]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'statement) in
000632|     (*[616]*)Obj.repr(
000633| # 97 "build/parser.mly"
000634|                   ( [_1] )
000635| # 636 "build/parser.ml"
000636|                : 'statements))
000637| ; (fun __caml_parser_env ->
000638|     (*[640]*)let _1 = (Parsing.peek_val __caml_parser_env 1 : 'statement) in
000639|     (*[640]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : 'statements) in
000640|     (*[640]*)Obj.repr(
000641| # 98 "build/parser.mly"
000642|                             ( _1::_2 )
000643| # 644 "build/parser.ml"
000644|                : 'statements))
000645| ; (fun __caml_parser_env ->
000646|     (*[20]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'statements) in
000647|     (*[20]*)Obj.repr(
000648| # 101 "build/parser.mly"
000649|                   ( _1 )
000650| # 651 "build/parser.ml"
000651|                : 'opt_statements))
000652| ; (fun __caml_parser_env ->
000653|     (*[0]*)Obj.repr(
000654| # 102 "build/parser.mly"
000655|                   ( [] )
000656| # 657 "build/parser.ml"
000657|                : 'opt_statements))
000658| ; (fun __caml_parser_env ->
000659|     (*[596]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : 'statements) in
000660|     (*[596]*)Obj.repr(
000661| # 105 "build/parser.mly"
000662|                                 ( StatementBlock(_2) )
000663| # 664 "build/parser.ml"
000664|                : 'statement_block))
000665| ; (fun __caml_parser_env ->
000666|     (*[14]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'empty_statement_block) in
000667|     (*[14]*)Obj.repr(
000668| # 106 "build/parser.mly"
000669|                                 ( _1 )
000670| # 671 "build/parser.ml"
000671|                : 'statement_block))
000672| ; (fun __caml_parser_env ->
000673|     (*[32]*)Obj.repr(
000674| # 109 "build/parser.mly"
000675|                      ( StatementBlock([]) )
000676| # 677 "build/parser.ml"
000677|                : 'empty_statement_block))
000678| ; (fun __caml_parser_env ->
000679|     (*[14]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : 'statement) in
000680|     (*[14]*)Obj.repr(
000681| # 112 "build/parser.mly"
000682|                      ( _2 )
000683| # 684 "build/parser.ml"
000684|                : 'else_clause))
000685| ; (fun __caml_parser_env ->
000686|     (*[22]*)Obj.repr(
000687| # 113 "build/parser.mly"
000688|                             ( Noop )
000689| # 690 "build/parser.ml"
000690|                : 'else_clause))
000691| ; (fun __caml_parser_env ->
000692|     (*[36]*)let _3 = (Parsing.peek_val __caml_parser_env 3 : 'expression) in
000693|     (*[36]*)let _5 = (Parsing.peek_val __caml_parser_env 1 : 'statement) in
000694|     (*[36]*)let _6 = (Parsing.peek_val __caml_parser_env 0 : 'else_clause) in
000695|     (*[36]*)Obj.repr(
000696| # 116 "build/parser.mly"
000697|                                                         ( If(_3,_5,_6,get_env()) )
000698| # 699 "build/parser.ml"
000699|                : 'statement))
000700| ; (fun __caml_parser_env ->
000701|     (*[616]*)let _1 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
000702|     (*[616]*)Obj.repr(
000703| # 117 "build/parser.mly"
000704|                            ( ExpressionStatement(_1, get_env()) )
000705| # 706 "build/parser.ml"
000706|                : 'statement))
000707| ; (fun __caml_parser_env ->
000708|     (*[22]*)Obj.repr(
000709| # 118 "build/parser.mly"
000710|                  ( Noop )
000711| # 712 "build/parser.ml"
000712|                : 'statement))
000713| ; (fun __caml_parser_env ->
000714|     (*[52]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'statement_block) in
000715|     (*[52]*)Obj.repr(
000716| # 119 "build/parser.mly"
000717|                       ( _1 )
000718| # 719 "build/parser.ml"
000719|                : 'statement))
000720| ; (fun __caml_parser_env ->
000721|     (*[16]*)let _3 = (Parsing.peek_val __caml_parser_env 4 : string) in
000722|     (*[16]*)let _5 = (Parsing.peek_val __caml_parser_env 2 : 'expression) in
000723|     (*[16]*)let _7 = (Parsing.peek_val __caml_parser_env 0 : 'statement) in
000724|     (*[16]*)Obj.repr(
000725| # 120 "build/parser.mly"
000726|                                                        ( ForEach(_3,_5,_7,get_env()) )
000727| # 728 "build/parser.ml"
000728|                : 'statement))
000729| ; (fun __caml_parser_env ->
000730|     (*[14]*)let _3 = (Parsing.peek_val __caml_parser_env 2 : 'expression) in
000731|     (*[14]*)let _5 = (Parsing.peek_val __caml_parser_env 0 : 'statement) in
000732|     (*[14]*)Obj.repr(
000733| # 121 "build/parser.mly"
000734|                                                ( For(Value(Void),_3,Value(Void),_5,get_env()) )
000735| # 736 "build/parser.ml"
000736|                : 'statement))
000737| ; (fun __caml_parser_env ->
000738|     (*[8]*)Obj.repr(
000739| # 122 "build/parser.mly"
000740|                                               ( Continue(get_env()))
000741| # 742 "build/parser.ml"
000742|                : 'statement))
000743| ; (fun __caml_parser_env ->
000744|     (*[16]*)Obj.repr(
000745| # 123 "build/parser.mly"
000746|                                               ( Break(get_env()))
000747| # 748 "build/parser.ml"
000748|                : 'statement))
000749| ; (fun __caml_parser_env ->
000750|     (*[440]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : 'opt_expression) in
000751|     (*[440]*)Obj.repr(
000752| # 124 "build/parser.mly"
000753|                                               ( Return(_2,get_env()) )
000754| # 755 "build/parser.ml"
000755|                : 'statement))
000756| ; (fun __caml_parser_env ->
000757|     (*[18]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : bool) in
000758|     (*[18]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in
000759|     (*[18]*)Obj.repr(
000760| # 125 "build/parser.mly"
000761|                                               ( Import(resolve_import(_2,_1,get_env()),get_env()) )
000762| # 763 "build/parser.ml"
000763|                : 'statement))
000764| ; (fun __caml_parser_env ->
000765|     (*[4]*)let _2 = (Parsing.peek_val __caml_parser_env 3 : string) in
000766|     (*[4]*)let _4 = (Parsing.peek_val __caml_parser_env 1 : 'template_specs) in
000767|     (*[4]*)Obj.repr(
000768| # 126 "build/parser.mly"
000769|                                                ( TemplateDef(_2, _4,get_env()) )
000770| # 771 "build/parser.ml"
000771|                : 'statement))
000772| ; (fun __caml_parser_env ->
000773|     (*[2]*)let _3 = (Parsing.peek_val __caml_parser_env 6 : string) in
000774|     (*[2]*)let _5 = (Parsing.peek_val __caml_parser_env 4 : 'arglist) in
000775|     (*[2]*)let _8 = (Parsing.peek_val __caml_parser_env 1 : 'instruction_specs) in
000776|     (*[2]*)Obj.repr(
000777| # 128 "build/parser.mly"
000778|                                               ( Instructions(_3,_5,_8,get_env()) )
000779| # 780 "build/parser.ml"
000780|                : 'statement))
000781| ; (fun __caml_parser_env ->
000782|     (*[14]*)let _3 = (Parsing.peek_val __caml_parser_env 4 : 'expression) in
000783|     (*[14]*)let _6 = (Parsing.peek_val __caml_parser_env 1 : 'switch_statements) in
000784|     (*[14]*)Obj.repr(
000785| # 130 "build/parser.mly"
000786|                                               ( Switch(_3,_6, get_env()) )
000787| # 788 "build/parser.ml"
000788|                : 'statement))
000789| ; (fun __caml_parser_env ->
000790|     (*[22]*)let _3 = (Parsing.peek_val __caml_parser_env 6 : 'opt_expression) in
000791|     (*[22]*)let _5 = (Parsing.peek_val __caml_parser_env 4 : 'opt_expression) in
000792|     (*[22]*)let _7 = (Parsing.peek_val __caml_parser_env 2 : 'opt_expression) in
000793|     (*[22]*)let _9 = (Parsing.peek_val __caml_parser_env 0 : 'statement) in
000794|     (*[22]*)Obj.repr(
000795| # 133 "build/parser.mly"
000796|                                                  ( For(_3,_5,_7,_9,get_env()) )
000797| # 798 "build/parser.ml"
000798|                : 'statement))
000799| ; (fun __caml_parser_env ->
000800|     (*[98]*)let _2 = (Parsing.peek_val __caml_parser_env 5 : 'statement_block) in
000801|     (*[98]*)let _5 = (Parsing.peek_val __caml_parser_env 2 : string) in
000802|     (*[98]*)let _7 = (Parsing.peek_val __caml_parser_env 0 : 'statement_block) in
000803|     (*[98]*)Obj.repr(
000804| # 134 "build/parser.mly"
000805|                                                                  ( TryCatch(_2,_5,_7, get_env()) )
000806| # 807 "build/parser.ml"
000807|                : 'statement))
000808| ; (fun __caml_parser_env ->
000809|     (*[8]*)let _2 = (Parsing.peek_val __caml_parser_env 2 : 'statement_block) in
000810|     (*[8]*)let _4 = (Parsing.peek_val __caml_parser_env 0 : 'statement_block) in
000811|     (*[8]*)Obj.repr(
000812| # 135 "build/parser.mly"
000813|                                                   ( TryFinally(_2,_4,get_env()) )
000814| # 815 "build/parser.ml"
000815|                : 'statement))
000816| ; (fun __caml_parser_env ->
000817|     (*[12]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
000818|     (*[12]*)Obj.repr(
000819| # 136 "build/parser.mly"
000820|                                               ( Throw(_2, get_env()) )
000821| # 822 "build/parser.ml"
000822|                : 'statement))
000823| ; (fun __caml_parser_env ->
000824|     (*[30]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
000825|     (*[30]*)Obj.repr(
000826| # 139 "build/parser.mly"
000827|                                               ( Case(Some _2,get_env()) )
000828| # 829 "build/parser.ml"
000829|                : 'switch_statement))
000830| ; (fun __caml_parser_env ->
000831|     (*[14]*)Obj.repr(
000832| # 140 "build/parser.mly"
000833|                                               ( Case(None,get_env()) )
000834| # 835 "build/parser.ml"
000835|                : 'switch_statement))
000836| ; (fun __caml_parser_env ->
000837|     (*[40]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'statement) in
000838|     (*[40]*)Obj.repr(
000839| # 141 "build/parser.mly"
000840|                                               ( _1 )
000841| # 842 "build/parser.ml"
000842|                : 'switch_statement))
000843| ; (fun __caml_parser_env ->
000844|     (*[14]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'switch_statement) in
000845|     (*[14]*)Obj.repr(
000846| # 144 "build/parser.mly"
000847|                                               ( [_1] )
000848| # 849 "build/parser.ml"
000849|                : 'switch_statements))
000850| ; (fun __caml_parser_env ->
000851|     (*[70]*)let _1 = (Parsing.peek_val __caml_parser_env 1 : 'switch_statement) in
000852|     (*[70]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : 'switch_statements) in
000853|     (*[70]*)Obj.repr(
000854| # 145 "build/parser.mly"
000855|                                               ( _1::_2 )
000856| # 857 "build/parser.ml"
000857|                : 'switch_statements))
000858| ; (fun __caml_parser_env ->
000859|     (*[506]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
000860|     (*[506]*)Obj.repr(
000861| # 148 "build/parser.mly"
000862|                                               ( _1 )
000863| # 864 "build/parser.ml"
000864|                : 'opt_expression))
000865| ; (fun __caml_parser_env ->
000866|     (*[0]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'empty_expression) in
000867|     (*[0]*)Obj.repr(
000868| # 149 "build/parser.mly"
000869|                                               ( Value(Void) )
000870| # 871 "build/parser.ml"
000871|                : 'opt_expression))
000872| ; (fun __caml_parser_env ->
000873|     (*[0]*)Obj.repr(
000874| # 152 "build/parser.mly"
000875|                                               ( Value(Void) )
000876| # 877 "build/parser.ml"
000877|                : 'empty_expression))
000878| ; (fun __caml_parser_env ->
000879|     (*[900]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : int) in
000880|     (*[900]*)Obj.repr(
000881| # 155 "build/parser.mly"
000882|                                               ( Value(IntegerValue(_1)) )
000883| # 884 "build/parser.ml"
000884|                : 'atom_expr))
000885| ; (fun __caml_parser_env ->
000886|     (*[156]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : float) in
000887|     (*[156]*)Obj.repr(
000888| # 156 "build/parser.mly"
000889|                                               ( Value(FloatValue(_1)) )
000890| # 891 "build/parser.ml"
000891|                : 'atom_expr))
000892| ; (fun __caml_parser_env ->
000893|     (*[942]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
000894|     (*[942]*)Obj.repr(
000895| # 157 "build/parser.mly"
000896|                                               ( Value(StringValue(_1)) )
000897| # 898 "build/parser.ml"
000898|                : 'atom_expr))
000899| ; (fun __caml_parser_env ->
000900|     (*[272]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : bool) in
000901|     (*[272]*)Obj.repr(
000902| # 158 "build/parser.mly"
000903|                                               ( Value(BooleanValue(_1)) )
000904| # 905 "build/parser.ml"
000905|                : 'atom_expr))
000906| ; (fun __caml_parser_env ->
000907|     (*[12]*)Obj.repr(
000908| # 159 "build/parser.mly"
000909|                                               ( Value(Void) )
000910| # 911 "build/parser.ml"
000911|                : 'atom_expr))
000912| ; (fun __caml_parser_env ->
000913|     (*[118]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expr_list) in
000914|     (*[118]*)Obj.repr(
000915| # 160 "build/parser.mly"
000916|                                               ( ArrayExpr(_2) )
000917| # 918 "build/parser.ml"
000918|                : 'atom_expr))
000919| ; (fun __caml_parser_env ->
000920|     (*[352]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : 'prop_list) in
000921|     (*[352]*)Obj.repr(
000922| # 161 "build/parser.mly"
000923|                                               ( MapExpr(_2) )
000924| # 925 "build/parser.ml"
000925|                : 'atom_expr))
000926| ; (fun __caml_parser_env ->
000927|     (*[1486]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
000928|     (*[1486]*)Obj.repr(
000929| # 162 "build/parser.mly"
000930|                                               ( Id(_1) )
000931| # 932 "build/parser.ml"
000932|                : 'atom_expr))
000933| ; (fun __caml_parser_env ->
000934|     (*[40]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
000935|     (*[40]*)Obj.repr(
000936| # 163 "build/parser.mly"
000937|                                               ( _2 )
000938| # 939 "build/parser.ml"
000939|                : 'atom_expr))
000940| ; (fun __caml_parser_env ->
000941|     (*[4278]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'atom_expr) in
000942|     (*[4278]*)Obj.repr(
000943| # 166 "build/parser.mly"
000944|                                               (_1)
000945| # 946 "build/parser.ml"
000946|                : 'member_expr))
000947| ; (fun __caml_parser_env ->
000948|     (*[346]*)let _3 = (Parsing.peek_val __caml_parser_env 2 : 'arglist) in
000949|     (*[346]*)let _5 = (Parsing.peek_val __caml_parser_env 0 : 'statement_block) in
000950|     (*[346]*)Obj.repr(
000951| # 167 "build/parser.mly"
000952|                                                      ( Value(FunctionValue(_3,extract_stmt_list(_5))) )
000953| # 954 "build/parser.ml"
000954|                : 'member_expr))
000955| ; (fun __caml_parser_env ->
000956|     (*[46]*)let _1 = (Parsing.peek_val __caml_parser_env 3 : 'member_expr) in
000957|     (*[46]*)let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
000958|     (*[46]*)Obj.repr(
000959| # 168 "build/parser.mly"
000960|                                                   ( MemberExpr(_1,_3) )
000961| # 962 "build/parser.ml"
000962|                : 'member_expr))
000963| ; (fun __caml_parser_env ->
000964|     (*[338]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'member_expr) in
000965|     (*[338]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
000966|     (*[338]*)Obj.repr(
000967| # 169 "build/parser.mly"
000968|                                               ( MemberExpr(_1,Value(StringValue(_3))) )
000969| # 970 "build/parser.ml"
000970|                : 'member_expr))
000971| ; (fun __caml_parser_env ->
000972|     (*[380]*)let _1 = (Parsing.peek_val __caml_parser_env 3 : 'member_expr) in
000973|     (*[380]*)let _3 = (Parsing.peek_val __caml_parser_env 1 : 'fexpr_list) in
000974|     (*[380]*)Obj.repr(
000975| # 172 "build/parser.mly"
000976|                                               ( FunctionCall(_1,_3) )
000977| # 978 "build/parser.ml"
000978|                : 'call_expr))
000979| ; (fun __caml_parser_env ->
000980|     (*[2]*)let _1 = (Parsing.peek_val __caml_parser_env 3 : 'call_expr) in
000981|     (*[2]*)let _3 = (Parsing.peek_val __caml_parser_env 1 : 'fexpr_list) in
000982|     (*[2]*)Obj.repr(
000983| # 173 "build/parser.mly"
000984|                                               ( FunctionCall(_1,_3) )
000985| # 986 "build/parser.ml"
000986|                : 'call_expr))
000987| ; (fun __caml_parser_env ->
000988|     (*[0]*)let _1 = (Parsing.peek_val __caml_parser_env 3 : 'call_expr) in
000989|     (*[0]*)let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
000990|     (*[0]*)Obj.repr(
000991| # 174 "build/parser.mly"
000992|                                               ( MemberExpr(_1,_3) )
000993| # 994 "build/parser.ml"
000994|                : 'call_expr))
000995| ; (fun __caml_parser_env ->
000996|     (*[2]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'call_expr) in
000997|     (*[2]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
000998|     (*[2]*)Obj.repr(
000999| # 175 "build/parser.mly"
001000|                                               ( MemberExpr(_1,Value(StringValue(_3))) )
001001| # 1002 "build/parser.ml"
001002|                : 'call_expr))
001003| ; (fun __caml_parser_env ->
001004|     (*[4244]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'member_expr) in
001005|     (*[4244]*)Obj.repr(
001006| # 178 "build/parser.mly"
001007|                                               (_1)
001008| # 1009 "build/parser.ml"
001009|                : 'lhs_expr))
001010| ; (fun __caml_parser_env ->
001011|     (*[380]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'call_expr) in
001012|     (*[380]*)Obj.repr(
001013| # 179 "build/parser.mly"
001014|                                               (_1)
001015| # 1016 "build/parser.ml"
001016|                : 'lhs_expr))
001017| ; (fun __caml_parser_env ->
001018|     (*[4032]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'lhs_expr) in
001019|     (*[4032]*)Obj.repr(
001020| # 182 "build/parser.mly"
001021|                                               ( _1 )
001022| # 1023 "build/parser.ml"
001023|                : 'unary_expr))
001024| ; (fun __caml_parser_env ->
001025|     (*[40]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : 'lhs_expr) in
001026|     (*[40]*)Obj.repr(
001027| # 183 "build/parser.mly"
001028|                                               ( Assignment(_2,BinaryOp(_2,Plus,Value(IntegerValue(1)))) )
001029| # 1030 "build/parser.ml"
001030|                : 'unary_expr))
001031| ; (fun __caml_parser_env ->
001032|     (*[2]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : 'lhs_expr) in
001033|     (*[2]*)Obj.repr(
001034| # 184 "build/parser.mly"
001035|                                               ( Assignment(_2,BinaryOp(_2,Minus,Value(IntegerValue(1)))) )
001036| # 1037 "build/parser.ml"
001037|                : 'unary_expr))
001038| ; (fun __caml_parser_env ->
001039|     (*[8]*)let _1 = (Parsing.peek_val __caml_parser_env 1 : 'lhs_expr) in
001040|     (*[8]*)Obj.repr(
001041| # 185 "build/parser.mly"
001042|                                               ( PostFixSum(_1,1) )
001043| # 1044 "build/parser.ml"
001044|                : 'unary_expr))
001045| ; (fun __caml_parser_env ->
001046|     (*[2]*)let _1 = (Parsing.peek_val __caml_parser_env 1 : 'lhs_expr) in
001047|     (*[2]*)Obj.repr(
001048| # 186 "build/parser.mly"
001049|                                                ( PostFixSum(_1,-1) )
001050| # 1051 "build/parser.ml"
001051|                : 'unary_expr))
001052| ; (fun __caml_parser_env ->
001053|     (*[4084]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'unary_expr) in
001054|     (*[4084]*)Obj.repr(
001055| # 189 "build/parser.mly"
001056|                                               (_1)
001057| # 1058 "build/parser.ml"
001058|                : 'op_expr))
001059| ; (fun __caml_parser_env ->
001060|     (*[40]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'op_expr) in
001061|     (*[40]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'op_expr) in
001062|     (*[40]*)Obj.repr(
001063| # 190 "build/parser.mly"
001064|                                         ( BinaryOp(_1,Plus,_3) )
001065| # 1066 "build/parser.ml"
001066|                : 'op_expr))
001067| ; (fun __caml_parser_env ->
001068|     (*[14]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'op_expr) in
001069|     (*[14]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'op_expr) in
001070|     (*[14]*)Obj.repr(
001071| # 191 "build/parser.mly"
001072|                                         ( BinaryOp(_1,Minus,_3) )
001073| # 1074 "build/parser.ml"
001074|                : 'op_expr))
001075| ; (fun __caml_parser_env ->
001076|     (*[12]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'op_expr) in
001077|     (*[12]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'op_expr) in
001078|     (*[12]*)Obj.repr(
001079| # 192 "build/parser.mly"
001080|                                         ( BinaryOp(_1,Times,_3) )
001081| # 1082 "build/parser.ml"
001082|                : 'op_expr))
001083| ; (fun __caml_parser_env ->
001084|     (*[14]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'op_expr) in
001085|     (*[14]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'op_expr) in
001086|     (*[14]*)Obj.repr(
001087| # 193 "build/parser.mly"
001088|                                         ( BinaryOp(_1,Divide,_3) )
001089| # 1090 "build/parser.ml"
001090|                : 'op_expr))
001091| ; (fun __caml_parser_env ->
001092|     (*[8]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'op_expr) in
001093|     (*[8]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'op_expr) in
001094|     (*[8]*)Obj.repr(
001095| # 194 "build/parser.mly"
001096|                                         ( BinaryOp(_1,Modulo,_3) )
001097| # 1098 "build/parser.ml"
001098|                : 'op_expr))
001099| ; (fun __caml_parser_env ->
001100|     (*[620]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'op_expr) in
001101|     (*[620]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : Ast.comparator) in
001102|     (*[620]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'op_expr) in
001103|     (*[620]*)Obj.repr(
001104| # 195 "build/parser.mly"
001105|                                         ( CompOp(_1,_2,_3) )
001106| # 1107 "build/parser.ml"
001107|                : 'op_expr))
001108| ; (fun __caml_parser_env ->
001109|     (*[38]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : 'lhs_expr) in
001110|     (*[38]*)Obj.repr(
001111| # 196 "build/parser.mly"
001112|                                         ( Not(_2) )
001113| # 1114 "build/parser.ml"
001114|                : 'op_expr))
001115| ; (fun __caml_parser_env ->
001116|     (*[338]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'op_expr) in
001117|     (*[338]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'op_expr) in
001118|     (*[338]*)Obj.repr(
001119| # 197 "build/parser.mly"
001120|                                         ( BinaryOp(_1,And,_3) )
001121| # 1122 "build/parser.ml"
001122|                : 'op_expr))
001123| ; (fun __caml_parser_env ->
001124|     (*[22]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'op_expr) in
001125|     (*[22]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'op_expr) in
001126|     (*[22]*)Obj.repr(
001127| # 198 "build/parser.mly"
001128|                                         ( BinaryOp(_1,Or,_3) )
001129| # 1130 "build/parser.ml"
001130|                : 'op_expr))
001131| ; (fun __caml_parser_env ->
001132|     (*[6]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : 'op_expr) in
001133|     (*[6]*)Obj.repr(
001134| # 199 "build/parser.mly"
001135|                                         ( BinaryOp(Value(IntegerValue(0)),Minus,_2) )
001136| # 1137 "build/parser.ml"
001137|                : 'op_expr))
001138| ; (fun __caml_parser_env ->
001139|     (*[3054]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'op_expr) in
001140|     (*[3054]*)Obj.repr(
001141| # 202 "build/parser.mly"
001142|               (_1)
001143| # 1144 "build/parser.ml"
001144|                : 'cond_expr))
001145| ; (fun __caml_parser_env ->
001146|     (*[16]*)let _1 = (Parsing.peek_val __caml_parser_env 4 : 'expression) in
001147|     (*[16]*)let _3 = (Parsing.peek_val __caml_parser_env 2 : 'expression) in
001148|     (*[16]*)let _5 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001149|     (*[16]*)Obj.repr(
001150| # 204 "build/parser.mly"
001151|                                         ( TernaryCond(_1,_3,_5) )
001152| # 1153 "build/parser.ml"
001153|                : 'cond_expr))
001154| ; (fun __caml_parser_env ->
001155|     (*[3070]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'cond_expr) in
001156|     (*[3070]*)Obj.repr(
001157| # 207 "build/parser.mly"
001158|                                               (_1)
001159| # 1160 "build/parser.ml"
001160|                : 'expression))
001161| ; (fun __caml_parser_env ->
001162|     (*[66]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lhs_expr) in
001163|     (*[66]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001164|     (*[66]*)Obj.repr(
001165| # 208 "build/parser.mly"
001166|                                               ( Assignment(_1,_3) )
001167| # 1168 "build/parser.ml"
001168|                : 'expression))
001169| ; (fun __caml_parser_env ->
001170|     (*[2]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lhs_expr) in
001171|     (*[2]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'empty_statement_block) in
001172|     (*[2]*)Obj.repr(
001173| # 209 "build/parser.mly"
001174|                                               ( Assignment(_1,MapExpr([])) )
001175| # 1176 "build/parser.ml"
001176|                : 'expression))
001177| ; (fun __caml_parser_env ->
001178|     (*[402]*)let _2 = (Parsing.peek_val __caml_parser_env 2 : 'lhs_expr) in
001179|     (*[402]*)let _4 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001180|     (*[402]*)Obj.repr(
001181| # 210 "build/parser.mly"
001182|                                               ( Declaration(_2,_4) )
001183| # 1184 "build/parser.ml"
001184|                : 'expression))
001185| ; (fun __caml_parser_env ->
001186|     (*[10]*)let _2 = (Parsing.peek_val __caml_parser_env 2 : 'lhs_expr) in
001187|     (*[10]*)let _4 = (Parsing.peek_val __caml_parser_env 0 : 'empty_statement_block) in
001188|     (*[10]*)Obj.repr(
001189| # 211 "build/parser.mly"
001190|                                                 ( Declaration(_2,MapExpr([])) )
001191| # 1192 "build/parser.ml"
001192|                : 'expression))
001193| ; (fun __caml_parser_env ->
001194|     (*[2]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lhs_expr) in
001195|     (*[2]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001196|     (*[2]*)Obj.repr(
001197| # 212 "build/parser.mly"
001198|                                               ( Assignment(_1,(BinaryOp(_1,Times,_3))) )
001199| # 1200 "build/parser.ml"
001200|                : 'expression))
001201| ; (fun __caml_parser_env ->
001202|     (*[2]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lhs_expr) in
001203|     (*[2]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001204|     (*[2]*)Obj.repr(
001205| # 213 "build/parser.mly"
001206|                                               ( Assignment(_1,(BinaryOp(_1,Modulo,_3))) )
001207| # 1208 "build/parser.ml"
001208|                : 'expression))
001209| ; (fun __caml_parser_env ->
001210|     (*[2]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lhs_expr) in
001211|     (*[2]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001212|     (*[2]*)Obj.repr(
001213| # 214 "build/parser.mly"
001214|                                               ( Assignment(_1,(BinaryOp(_1,Divide,_3))) )
001215| # 1216 "build/parser.ml"
001216|                : 'expression))
001217| ; (fun __caml_parser_env ->
001218|     (*[14]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lhs_expr) in
001219|     (*[14]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001220|     (*[14]*)Obj.repr(
001221| # 215 "build/parser.mly"
001222|                                               ( Assignment(_1,(BinaryOp(_1,Plus,_3))) )
001223| # 1224 "build/parser.ml"
001224|                : 'expression))
001225| ; (fun __caml_parser_env ->
001226|     (*[2]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lhs_expr) in
001227|     (*[2]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001228|     (*[2]*)Obj.repr(
001229| # 216 "build/parser.mly"
001230|                                               ( Assignment(_1,(BinaryOp(_1,Minus,_3))) )
001231| # 1232 "build/parser.ml"
001232|                : 'expression))
001233| ; (fun __caml_parser_env ->
001234|     (*[22]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
001235|     (*[22]*)Obj.repr(
001236| # 219 "build/parser.mly"
001237|                                               ( [_1] )
001238| # 1239 "build/parser.ml"
001239|                : 'arglist))
001240| ; (fun __caml_parser_env ->
001241|     (*[4]*)let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in
001242|     (*[4]*)Obj.repr(
001243| # 220 "build/parser.mly"
001244|                                               ( ["["^_1] )
001245| # 1246 "build/parser.ml"
001246|                : 'arglist))
001247| ; (fun __caml_parser_env ->
001248|     (*[20]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
001249|     (*[20]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arglist) in
001250|     (*[20]*)Obj.repr(
001251| # 221 "build/parser.mly"
001252|                                               ( _1::_3 )
001253| # 1254 "build/parser.ml"
001254|                : 'arglist))
001255| ; (fun __caml_parser_env ->
001256|     (*[322]*)Obj.repr(
001257| # 222 "build/parser.mly"
001258|                                               ( [] )
001259| # 1260 "build/parser.ml"
001260|                : 'arglist))
001261| ; (fun __caml_parser_env ->
001262|     (*[110]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001263|     (*[110]*)Obj.repr(
001264| # 225 "build/parser.mly"
001265|                                               ( [_1] )
001266| # 1267 "build/parser.ml"
001267|                : 'expr_list))
001268| ; (fun __caml_parser_env ->
001269|     (*[0]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'empty_statement_block) in
001270|     (*[0]*)Obj.repr(
001271| # 226 "build/parser.mly"
001272|                                               ( [MapExpr([])] )
001273| # 1274 "build/parser.ml"
001274|                : 'expr_list))
001275| ; (fun __caml_parser_env ->
001276|     (*[474]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expression) in
001277|     (*[474]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr_list) in
001278|     (*[474]*)Obj.repr(
001279| # 227 "build/parser.mly"
001280|                                               ( _1::_3 )
001281| # 1282 "build/parser.ml"
001282|                : 'expr_list))
001283| ; (fun __caml_parser_env ->
001284|     (*[8]*)Obj.repr(
001285| # 228 "build/parser.mly"
001286|                                               ( [] )
001287| # 1288 "build/parser.ml"
001288|                : 'expr_list))
001289| ; (fun __caml_parser_env ->
001290|     (*[400]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001291|     (*[400]*)Obj.repr(
001292| # 231 "build/parser.mly"
001293|                                               ( _1 )
001294| # 1295 "build/parser.ml"
001295|                : 'fexpr))
001296| ; (fun __caml_parser_env ->
001297|     (*[4]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'empty_statement_block) in
001298|     (*[4]*)Obj.repr(
001299| # 232 "build/parser.mly"
001300|                                               ( MapExpr([]) )
001301| # 1302 "build/parser.ml"
001302|                : 'fexpr))
001303| ; (fun __caml_parser_env ->
001304|     (*[4]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in
001305|     (*[4]*)Obj.repr(
001306| # 233 "build/parser.mly"
001307|                                               ( UnboundVar(_2) )
001308| # 1309 "build/parser.ml"
001309|                : 'fexpr))
001310| ; (fun __caml_parser_env ->
001311|     (*[2]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in
001312|     (*[2]*)Obj.repr(
001313| # 234 "build/parser.mly"
001314|                                               ( UnboundVar("["^_2) )
001315| # 1316 "build/parser.ml"
001316|                : 'fexpr))
001317| ; (fun __caml_parser_env ->
001318|     (*[286]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'fexpr) in
001319|     (*[286]*)Obj.repr(
001320| # 237 "build/parser.mly"
001321|                                               ( [_1] )
001322| # 1323 "build/parser.ml"
001323|                : 'fexpr_list))
001324| ; (fun __caml_parser_env ->
001325|     (*[124]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'fexpr) in
001326|     (*[124]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'fexpr_list) in
001327|     (*[124]*)Obj.repr(
001328| # 238 "build/parser.mly"
001329|                                               ( _1::_3 )
001330| # 1331 "build/parser.ml"
001331|                : 'fexpr_list))
001332| ; (fun __caml_parser_env ->
001333|     (*[96]*)Obj.repr(
001334| # 239 "build/parser.mly"
001335|                                               ( [] )
001336| # 1337 "build/parser.ml"
001337|                : 'fexpr_list))
001338| ; (fun __caml_parser_env ->
001339|     (*[710]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
001340|     (*[710]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001341|     (*[710]*)Obj.repr(
001342| # 242 "build/parser.mly"
001343|                                               ( (_1,_3) )
001344| # 1345 "build/parser.ml"
001345|                : 'property))
001346| ; (fun __caml_parser_env ->
001347|     (*[2]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
001348|     (*[2]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'empty_statement_block) in
001349|     (*[2]*)Obj.repr(
001350| # 243 "build/parser.mly"
001351|                                               ( (_1,MapExpr([])) )
001352| # 1353 "build/parser.ml"
001353|                : 'property))
001354| ; (fun __caml_parser_env ->
001355|     (*[352]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'property) in
001356|     (*[352]*)Obj.repr(
001357| # 246 "build/parser.mly"
001358|                                               ( [_1] )
001359| # 1360 "build/parser.ml"
001360|                : 'prop_list))
001361| ; (fun __caml_parser_env ->
001362|     (*[360]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'property) in
001363|     (*[360]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'prop_list) in
001364|     (*[360]*)Obj.repr(
001365| # 247 "build/parser.mly"
001366|                                               ( _1::_3 )
001367| # 1368 "build/parser.ml"
001368|                : 'prop_list))
001369| ; (fun __caml_parser_env ->
001370|     (*[16]*)let _1 = (Parsing.peek_val __caml_parser_env 1 : 'label) in
001371|     (*[16]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in
001372|     (*[16]*)Obj.repr(
001373| # 250 "build/parser.mly"
001374|                                               ( (Some _1,_2 ^ "\n") )
001375| # 1376 "build/parser.ml"
001376|                : 'template_spec))
001377| ; (fun __caml_parser_env ->
001378|     (*[16]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
001379|     (*[16]*)Obj.repr(
001380| # 251 "build/parser.mly"
001381|                                               ( (None, _1 ^ "\n") )
001382| # 1383 "build/parser.ml"
001383|                : 'template_spec))
001384| ; (fun __caml_parser_env ->
001385|     (*[4]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'template_spec) in
001386|     (*[4]*)Obj.repr(
001387| # 254 "build/parser.mly"
001388|                                               ( [_1] )
001389| # 1390 "build/parser.ml"
001390|                : 'template_specs))
001391| ; (fun __caml_parser_env ->
001392|     (*[28]*)let _1 = (Parsing.peek_val __caml_parser_env 1 : 'template_spec) in
001393|     (*[28]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : 'template_specs) in
001394|     (*[28]*)Obj.repr(
001395| # 255 "build/parser.mly"
001396|                                               ( _1::_2 )
001397| # 1398 "build/parser.ml"
001398|                : 'template_specs))
001399| ; (fun __caml_parser_env ->
001400|     (*[6]*)let _1 = (Parsing.peek_val __caml_parser_env 4 : 'label) in
001401|     (*[6]*)let _2 = (Parsing.peek_val __caml_parser_env 3 : 'repl_condition) in
001402|     (*[6]*)let _4 = (Parsing.peek_val __caml_parser_env 1 : 'replacement_list) in
001403|     (*[6]*)Obj.repr(
001404| # 258 "build/parser.mly"
001405|                                                             ( (_1,_2,_4) )
001406| # 1407 "build/parser.ml"
001407|                : 'instruction_spec))
001408| ; (fun __caml_parser_env ->
001409|     (*[0]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'label) in
001410|     (*[0]*)let _2 = (Parsing.peek_val __caml_parser_env 1 : 'repl_condition) in
001411|     (*[0]*)Obj.repr(
001412| # 259 "build/parser.mly"
001413|                                               ( (_1,_2,[]) )
001414| # 1415 "build/parser.ml"
001415|                : 'instruction_spec))
001416| ; (fun __caml_parser_env ->
001417|     (*[0]*)Obj.repr(
001418| # 262 "build/parser.mly"
001419|                                               ( Once )
001420| # 1421 "build/parser.ml"
001421|                : 'repl_condition))
001422| ; (fun __caml_parser_env ->
001423|     (*[0]*)let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
001424|     (*[0]*)Obj.repr(
001425| # 263 "build/parser.mly"
001426|                                               ( When(_3) )
001427| # 1428 "build/parser.ml"
001428|                : 'repl_condition))
001429| ; (fun __caml_parser_env ->
001430|     (*[6]*)let _3 = (Parsing.peek_val __caml_parser_env 3 : string) in
001431|     (*[6]*)let _5 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
001432|     (*[6]*)Obj.repr(
001433| # 264 "build/parser.mly"
001434|                                               ( Loop(_3,_5) )
001435| # 1436 "build/parser.ml"
001436|                : 'repl_condition))
001437| ; (fun __caml_parser_env ->
001438|     (*[0]*)let _3 = (Parsing.peek_val __caml_parser_env 7 : string) in
001439|     (*[0]*)let _5 = (Parsing.peek_val __caml_parser_env 5 : 'expression) in
001440|     (*[0]*)let _9 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
001441|     (*[0]*)Obj.repr(
001442| # 266 "build/parser.mly"
001443|                                               ( CondLoop(_9,_3,_5) )
001444| # 1445 "build/parser.ml"
001445|                : 'repl_condition))
001446| ; (fun __caml_parser_env ->
001447|     (*[4]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
001448|     (*[4]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
001449|     (*[4]*)Obj.repr(
001450| # 269 "build/parser.mly"
001451|                                               ( (_1,_3) )
001452| # 1453 "build/parser.ml"
001453|                : 'replacement))
001454| ; (fun __caml_parser_env ->
001455|     (*[2]*)Obj.repr(
001456| # 272 "build/parser.mly"
001457|                                               ( [] )
001458| # 1459 "build/parser.ml"
001459|                : 'replacement_list))
001460| ; (fun __caml_parser_env ->
001461|     (*[4]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'replacement) in
001462|     (*[4]*)Obj.repr(
001463| # 273 "build/parser.mly"
001464|                                               ( [_1] )
001465| # 1466 "build/parser.ml"
001466|                : 'replacement_list))
001467| ; (fun __caml_parser_env ->
001468|     (*[0]*)let _1 = (Parsing.peek_val __caml_parser_env 2 : 'replacement) in
001469|     (*[0]*)let _3 = (Parsing.peek_val __caml_parser_env 0 : 'replacement_list) in
001470|     (*[0]*)Obj.repr(
001471| # 274 "build/parser.mly"
001472|                                               ( _1::_3 )
001473| # 1474 "build/parser.ml"
001474|                : 'replacement_list))
001475| ; (fun __caml_parser_env ->
001476|     (*[2]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : 'instruction_spec) in
001477|     (*[2]*)Obj.repr(
001478| # 277 "build/parser.mly"
001479|                                               ( [_1] )
001480| # 1481 "build/parser.ml"
001481|                : 'instruction_specs))
001482| ; (fun __caml_parser_env ->
001483|     (*[4]*)let _1 = (Parsing.peek_val __caml_parser_env 1 : 'instruction_spec) in
001484|     (*[4]*)let _2 = (Parsing.peek_val __caml_parser_env 0 : 'instruction_specs) in
001485|     (*[4]*)Obj.repr(
001486| # 278 "build/parser.mly"
001487|                                               ( _1::_2 )
001488| # 1489 "build/parser.ml"
001489|                : 'instruction_specs))
001490| ; (fun __caml_parser_env ->
001491|     (*[22]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
001492|     (*[22]*)Obj.repr(
001493| # 281 "build/parser.mly"
001494|                                               ( _1 )
001495| # 1496 "build/parser.ml"
001496|                : 'label))
001497| ; (fun __caml_parser_env ->
001498|     (*[0]*)let _1 = (Parsing.peek_val __caml_parser_env 0 : int) in
001499|     (*[0]*)Obj.repr(
001500| # 282 "build/parser.mly"
001501|                                               ( string_of_int(_1) )
001502| # 1503 "build/parser.ml"
001503|                : 'label))
001504| (* Entry program *)
001505| ; (fun __caml_parser_env -> (*[20]*)raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
001506| |]
001507| let yytables =
001508|   (*[2]*){ Parsing.actions=yyact;
001509|     Parsing.transl_const=yytransl_const;
001510|     Parsing.transl_block=yytransl_block;
001511|     Parsing.lhs=yylhs;
001512|     Parsing.len=yylen;
001513|     Parsing.defred=yydefred;
001514|     Parsing.dgoto=yydgoto;
001515|     Parsing.sindex=yysindex;
001516|     Parsing.rindex=yyrindex;
001517|     Parsing.gindex=yygindex;
001518|     Parsing.tablesize=yytablesize;
001519|     Parsing.table=yytable;
001520|     Parsing.check=yycheck;
001521|     Parsing.error_function=parse_error;
001522|     Parsing.names_const=yynames_const;
001523|     Parsing.names_block=yynames_block }
001524| let program (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
001525|    (*[20]*)(Parsing.yyparse yytables 1 lexfun lexbuf : Ast.statement)
001526| ;;
001527| # 284 "build/parser.mly"
001528|
001529| # 1530 "build/parser.ml"

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