type token =
| SPACE of (int)
| COLON
| NEWLINE
| LPAREN
| RPAREN
| LBRACKET
| RBRACKET
| COMMA
| LBRACE
| RBRACE
| PLUS
| MINUS
| TIMES
| DIVIDE
| MOD
| POWER
| PLUSA
| MINUSA
| TIMESA
| DIVIDEA
| MODA
| POWERA
| EQ
| NEQ
| GT
| LT
| GEQ
| LEQ
| AND
| OR
| NAND
| NOR
| XOR
| NOT
| IF
| ELSE
| ELSIF
| WHILE
| ASSIGN
| RETURN
| CLASS
| EXTEND
| SUPER
| INIT
| PRIVATE
| PROTECTED
| PUBLIC
| NULL
| VOID
| THIS
| NEW
| MAIN
| ARRAY
| REFINABLE
| REFINE
| REFINES
| TO
| SEMI
| DOT
| EOF
| TYPE of (string)
| ILIT of (int)
| FLIT of (float)
| BLIT of (bool)
| SLIT of (string)
| ID of (string)
open Parsing;;
let _ = parse_error;;
# 2 "parser.mly"
open Ast
let set_func_section_to sect f = { f with section = sect }
let set_func_section sect = List.map (set_func_section_to sect)
let set_mem_section_to sect = function
| VarMem(v) -> VarMem(v)
| InitMem(func) -> InitMem({ func with section = sect })
| MethodMem(func) -> MethodMem({ func with section = sect })
let set_mem_section sect = List.map (set_mem_section_to sect)
let set_func_klass aklass func = { func with inklass = aklass }
let set_member_klass aklass = function
| InitMem(func) -> InitMem(set_func_klass aklass func)
| MethodMem(func) -> MethodMem(set_func_klass aklass func)
| v -> v
let set_func_class aklass sections =
let set_mems = List.map (set_member_klass aklass) in
let set_funcs = List.map (set_func_klass aklass) in
{ privates = set_mems sections.privates;
publics = set_mems sections.publics;
protects = set_mems sections.protects;
refines = set_funcs sections.refines;
mains = set_funcs sections.mains }
# 112 "parser.ml"
let yytransl_const = [|
258 ;
259 ;
260 ;
261 ;
262 ;
263 ;
264 ;
265 ;
266 ;
267 ;
268 ;
269 ;
270 ;
271 ;
272 ;
273 ;
274 ;
275 ;
276 ;
277 ;
278 ;
279 ;
280 ;
281 ;
282 ;
283 ;
284 ;
285 ;
286 ;
287 ;
288 ;
289 ;
290 ;
291 ;
292 ;
293 ;
294 ;
295 ;
296 ;
297 ;
298 ;
299 ;
300 ;
301 ;
302 ;
303 ;
304 ;
305 ;
306 ;
307 ;
308 ;
309 ;
310 ;
311 ;
312 ;
313 ;
314 ;
315 ;
0 ;
0|]
let yytransl_block = [|
257 ;
316 ;
317 ;
318 ;
319 ;
320 ;
321 ;
0|]
let yylhs = "\255\255\001\000\001\000\002\000\003\000\003\000\004\000\005\000\005\000\005\000\005\000\005\000\005\000\009\000\011\000\011\000\012\000\012\000\006\000\007\000\008\000\015\000\016\000\016\000\017\000\017\000\017\000\020\000\020\000\021\000\010\000\014\000\022\000\024\000\025\000\025\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\029\000\032\000\032\000\032\000\030\000\031\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\034\000\034\000\035\000\036\000\036\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\039\000\039\000\040\000\040\000\041\000\042\000\042\000\042\000\042\000\023\000\043\000\043\000\044\000\044\000\028\000\045\000\045\000\046\000\046\000\018\000\013\000\013\000\019\000\019\000\000\000"
let yylen = "\002\000\001\000\002\000\004\000\000\000\002\000\003\000\000\000\002\000\002\000\002\000\002\000\002\000\004\000\000\000\002\000\004\000\004\000\002\000\002\000\002\000\003\000\000\000\002\000\002\000\001\000\001\000\002\000\002\000\002\000\002\000\002\000\002\000\003\000\000\000\002\000\002\000\004\000\003\000\003\000\002\000\001\000\001\000\002\000\004\000\000\000\002\000\004\000\003\000\003\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\003\000\001\000\001\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\004\000\002\000\003\000\001\000\004\000\003\000\003\000\003\000\003\000\003\000\003\000\002\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\002\000\004\000\003\000\006\000\005\000\005\000\001\000\001\000\001\000\001\000\001\000\003\000\000\000\001\000\001\000\003\000\003\000\000\000\001\000\001\000\003\000\002\000\001\000\002\000\001\000\002\000\002\000"
let yydefred = "\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000\000\005\000\007\000\003\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\008\000\009\000\010\000\011\000\012\000\022\000\018\000\019\000\020\000\000\000\030\000\000\000\014\000\000\000\114\000\000\000\106\000\000\000\000\000\034\000\032\000\000\000\021\000\000\000\000\000\000\000\023\000\000\000\025\000\026\000\115\000\113\000\103\000\000\000\000\000\013\000\000\000\015\000\000\000\029\000\000\000\028\000\000\000\027\000\116\000\000\000\107\000\000\000\033\000\000\000\000\000\000\000\000\000\000\000\000\000\061\000\060\000\000\000\000\000\000\000\100\000\101\000\102\000\099\000\000\000\000\000\035\000\000\000\041\000\042\000\050\000\051\000\052\000\053\000\054\000\055\000\056\000\057\000\058\000\098\000\000\000\000\000\031\000\117\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\070\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\059\000\000\000\000\000\048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\016\000\049\000\000\000\000\000\044\000\108\000\000\000\014\000\093\000\000\000\000\000\073\000\069\000\046\000\000\000\000\000\000\000\097\000\000\000\000\000\095\000\047\000"
let yydgoto = "\002\000\004\000\005\000\009\000\012\000\013\000\020\000\021\000\022\000\023\000\024\000\041\000\057\000\035\000\061\000\026\000\033\000\046\000\036\000\065\000\048\000\049\000\102\000\031\000\040\000\054\000\086\000\087\000\113\000\088\000\089\000\108\000\193\000\090\000\091\000\092\000\093\000\094\000\095\000\096\000\097\000\098\000\099\000\037\000\038\000\155\000\156\000"
let yysindex = "\020\000\241\254\000\000\236\254\241\254\000\000\250\254\000\000\239\254\086\255\000\000\000\000\000\000\107\000\000\000\091\255\091\255\091\255\045\255\101\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\053\255\000\000\110\255\000\000\139\255\000\000\209\254\000\000\116\255\118\255\000\000\000\000\115\255\000\000\045\255\059\255\215\254\000\000\069\255\000\000\000\000\000\000\000\000\000\000\053\255\080\255\000\000\093\255\000\000\220\254\000\000\045\255\000\000\045\255\000\000\000\000\104\255\000\000\110\000\000\000\110\000\110\000\134\255\134\255\105\255\167\255\000\000\000\000\053\255\175\255\122\255\000\000\000\000\000\000\000\000\167\255\232\254\000\000\049\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\255\132\255\000\000\000\000\111\001\026\255\032\255\110\000\110\255\110\255\104\255\049\002\110\000\069\255\046\255\129\255\167\255\000\000\110\000\104\255\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\133\255\104\255\059\255\059\255\000\000\160\001\066\255\000\000\104\255\059\003\208\255\207\255\104\255\210\255\216\255\166\255\049\002\098\002\073\255\073\255\026\255\026\255\026\255\032\255\059\003\059\003\059\003\059\003\059\003\059\003\215\003\215\003\201\000\201\000\201\000\201\000\173\003\152\004\173\003\152\004\152\004\059\003\167\255\000\000\000\000\000\000\110\255\134\255\000\000\000\000\110\000\000\000\000\000\229\254\104\255\000\000\000\000\000\000\110\255\059\003\171\255\000\000\173\255\066\255\000\000\000\000"
let yyrindex = "\000\000\000\000\000\000\000\000\227\000\000\000\234\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\255\000\000\000\000\151\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\002\209\001\000\000\000\000\000\000\142\255\000\000\247\255\000\000\000\000\000\000\000\000\000\000\000\000\174\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206\255\000\000\000\000\000\000\000\000\238\255\000\000\014\000\011\255\000\000\248\255\046\000\220\000\000\000\000\000\000\000\000\000\102\003\144\003\183\002\225\002\011\003\001\002\023\255\040\255\075\255\089\255\099\255\143\255\086\004\116\004\186\003\228\003\014\004\056\004\177\004\236\004\207\004\009\005\038\005\225\255\013\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\078\000\000\000\000\000\000\000\000\000\015\255\000\000\000\000\062\001\238\255\000\000\000\000"
let yygindex = "\000\000\000\000\251\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\062\000\000\000\223\255\220\255\157\000\000\000\000\000\083\000\196\255\000\000\000\000\252\255\000\000\158\255\000\000\000\000\190\255\177\255\000\000\000\000\186\255\051\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
let yytablesize = 1632
let yytable = "\045\000\104\000\109\000\105\000\106\000\117\000\050\000\111\000\058\000\063\000\151\000\152\000\050\000\110\000\030\000\118\000\111\000\050\000\051\000\111\000\112\000\001\000\206\000\112\000\062\000\119\000\003\000\146\000\063\000\101\000\063\000\063\000\120\000\034\000\064\000\158\000\008\000\160\000\120\000\059\000\006\000\150\000\126\000\010\000\114\000\064\000\154\000\064\000\064\000\029\000\112\000\153\000\161\000\157\000\162\000\163\000\164\000\165\000\166\000\167\000\168\000\169\000\170\000\171\000\172\000\173\000\174\000\175\000\176\000\177\000\178\000\179\000\180\000\181\000\182\000\183\000\184\000\185\000\186\000\120\000\065\000\063\000\065\000\065\000\067\000\145\000\123\000\124\000\125\000\126\000\068\000\145\000\069\000\202\000\066\000\011\000\066\000\066\000\064\000\050\000\025\000\199\000\191\000\192\000\067\000\208\000\067\000\067\000\201\000\067\000\032\000\188\000\189\000\034\000\070\000\071\000\047\000\069\000\072\000\039\000\073\000\052\000\203\000\074\000\060\000\055\000\053\000\064\000\075\000\204\000\076\000\077\000\145\000\065\000\078\000\079\000\066\000\085\000\107\000\070\000\034\000\080\000\081\000\082\000\083\000\084\000\040\000\066\000\068\000\042\000\068\000\068\000\040\000\075\000\040\000\076\000\077\000\067\000\100\000\078\000\079\000\024\000\103\000\064\000\056\000\207\000\080\000\081\000\082\000\083\000\084\000\112\000\058\000\027\000\028\000\034\000\040\000\040\000\036\000\115\000\040\000\209\000\040\000\043\000\036\000\040\000\036\000\116\000\044\000\147\000\040\000\148\000\040\000\040\000\159\000\024\000\040\000\040\000\187\000\034\000\024\000\068\000\040\000\040\000\040\000\040\000\040\000\040\000\036\000\036\000\043\000\024\000\036\000\194\000\036\000\195\000\043\000\036\000\043\000\196\000\056\000\197\000\036\000\198\000\036\000\036\000\050\000\118\000\036\000\036\000\062\000\034\000\062\000\062\000\036\000\036\000\036\000\036\000\036\000\036\000\043\000\043\000\045\000\004\000\043\000\104\000\043\000\105\000\045\000\043\000\045\000\113\000\109\000\110\000\043\000\007\000\043\000\043\000\205\000\210\000\043\000\043\000\000\000\000\000\000\000\000\000\043\000\043\000\043\000\043\000\043\000\043\000\045\000\045\000\039\000\000\000\045\000\000\000\045\000\000\000\039\000\045\000\039\000\062\000\000\000\000\000\045\000\000\000\045\000\045\000\000\000\000\000\045\000\045\000\000\000\000\000\000\000\000\000\045\000\045\000\045\000\045\000\045\000\045\000\039\000\039\000\038\000\000\000\039\000\000\000\039\000\000\000\038\000\039\000\038\000\000\000\000\000\000\000\039\000\000\000\039\000\039\000\000\000\000\000\039\000\039\000\000\000\000\000\000\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\038\000\038\000\037\000\000\000\038\000\000\000\038\000\000\000\037\000\038\000\037\000\000\000\000\000\000\000\038\000\000\000\038\000\038\000\000\000\000\000\038\000\038\000\000\000\000\000\000\000\000\000\038\000\038\000\038\000\038\000\038\000\038\000\037\000\037\000\067\000\000\000\037\000\014\000\037\000\000\000\000\000\037\000\069\000\000\000\000\000\000\000\037\000\000\000\037\000\037\000\000\000\000\000\037\000\037\000\000\000\000\000\000\000\000\000\037\000\037\000\037\000\037\000\037\000\037\000\070\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\000\016\000\017\000\000\000\000\000\000\000\075\000\018\000\076\000\077\000\000\000\019\000\078\000\079\000\000\000\000\000\000\000\000\000\000\000\080\000\081\000\082\000\083\000\084\000\072\000\072\000\072\000\072\000\000\000\000\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\000\000\000\000\120\000\000\000\000\000\072\000\000\000\121\000\122\000\123\000\124\000\125\000\126\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\094\000\094\000\094\000\094\000\072\000\072\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\000\000\000\000\000\000\000\000\000\000\094\000\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\071\000\071\000\071\000\071\000\094\000\094\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\000\000\000\000\000\000\000\000\000\000\071\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\096\000\096\000\096\000\096\000\071\000\071\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\000\000\000\000\000\000\000\000\000\000\096\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\149\000\120\000\000\000\000\000\096\000\096\000\121\000\122\000\123\000\124\000\125\000\126\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\120\000\000\000\000\000\000\000\145\000\121\000\122\000\123\000\124\000\125\000\126\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\092\000\000\000\092\000\092\000\000\000\145\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\000\000\000\000\000\000\000\000\000\000\092\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\079\000\000\000\079\000\079\000\000\000\092\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\000\000\000\000\000\000\000\000\000\000\079\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\120\000\000\000\000\000\000\000\079\000\121\000\122\000\123\000\124\000\125\000\126\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\120\000\200\000\000\000\064\000\145\000\121\000\122\000\123\000\124\000\125\000\126\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\080\000\000\000\080\000\080\000\000\000\000\000\080\000\080\000\080\000\080\000\080\000\145\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\000\000\000\000\000\000\000\000\000\000\080\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\076\000\000\000\076\000\076\000\000\000\000\000\076\000\076\000\076\000\076\000\076\000\080\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\000\000\000\000\000\000\000\000\000\000\076\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\077\000\000\000\077\000\077\000\000\000\000\000\077\000\077\000\077\000\077\000\077\000\076\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\000\000\000\000\000\000\000\000\000\000\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\078\000\000\000\078\000\078\000\000\000\000\000\078\000\078\000\078\000\078\000\078\000\077\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\000\000\000\000\000\000\000\000\000\000\078\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\120\000\000\000\000\000\000\000\078\000\121\000\122\000\123\000\124\000\125\000\126\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\074\000\000\000\074\000\074\000\000\000\000\000\074\000\074\000\000\000\000\000\000\000\145\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\000\000\000\000\000\000\000\000\000\000\074\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\075\000\000\000\075\000\075\000\000\000\000\000\075\000\075\000\000\000\000\000\000\000\074\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\000\000\120\000\000\000\000\000\000\000\075\000\121\000\122\000\123\000\124\000\125\000\126\000\000\000\091\000\000\000\091\000\091\000\000\000\133\000\134\000\135\000\136\000\137\000\138\000\075\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\000\000\120\000\000\000\000\000\000\000\091\000\121\000\122\000\123\000\124\000\125\000\126\000\145\000\086\000\000\000\086\000\086\000\000\000\000\000\000\000\135\000\136\000\137\000\138\000\091\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\000\000\000\000\000\000\000\000\000\000\086\000\000\000\000\000\000\000\000\000\000\000\000\000\145\000\090\000\000\000\090\000\090\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\086\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\000\000\000\000\000\000\000\000\000\000\090\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\087\000\000\000\087\000\087\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\090\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\000\000\088\000\000\000\088\000\088\000\087\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\000\000\000\000\000\000\087\000\088\000\088\000\088\000\088\000\088\000\000\000\089\000\000\000\089\000\089\000\088\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\000\000\000\000\000\000\088\000\089\000\089\000\089\000\089\000\089\000\000\000\000\000\000\000\000\000\000\000\089\000\000\000\000\000\120\000\000\000\000\000\000\000\000\000\121\000\122\000\123\000\124\000\125\000\126\000\000\000\000\000\000\000\000\000\000\000\089\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\081\000\141\000\081\000\081\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\081\000\081\000\081\000\081\000\081\000\081\000\000\000\000\000\000\000\000\000\000\000\000\000\081\000\081\000\081\000\081\000\081\000\145\000\084\000\000\000\084\000\084\000\081\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\084\000\084\000\084\000\084\000\084\000\084\000\000\000\000\000\000\000\000\000\000\000\081\000\084\000\084\000\084\000\084\000\084\000\082\000\000\000\082\000\082\000\000\000\084\000\000\000\000\000\000\000\000\000\000\000\000\000\082\000\082\000\082\000\082\000\082\000\082\000\000\000\000\000\000\000\000\000\000\000\000\000\084\000\082\000\000\000\082\000\082\000\085\000\000\000\085\000\085\000\000\000\082\000\000\000\000\000\000\000\000\000\000\000\000\000\085\000\085\000\085\000\085\000\085\000\085\000\000\000\000\000\000\000\000\000\000\000\000\000\082\000\085\000\000\000\085\000\085\000\083\000\000\000\083\000\083\000\000\000\085\000\000\000\000\000\000\000\000\000\000\000\000\000\083\000\083\000\083\000\083\000\083\000\083\000\000\000\000\000\000\000\000\000\000\000\000\000\085\000\083\000\000\000\083\000\083\000\000\000\000\000\000\000\000\000\000\000\083\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\083\000"
let yycheck = "\033\000\067\000\072\000\069\000\070\000\084\000\053\001\073\000\041\000\045\000\108\000\109\000\053\001\073\000\018\000\039\001\005\001\053\001\065\001\008\001\005\001\001\000\049\001\008\001\065\001\085\000\041\001\087\000\005\001\065\001\007\001\008\001\006\001\060\001\058\001\114\000\042\001\116\000\006\001\043\000\060\001\107\000\016\001\060\001\077\000\005\001\112\000\007\001\008\001\004\001\004\001\111\000\118\000\113\000\120\000\121\000\122\000\123\000\124\000\125\000\126\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\144\000\006\001\005\001\058\001\007\001\008\001\004\001\059\001\013\001\014\001\015\001\016\001\010\001\059\001\012\001\191\000\005\001\009\001\007\001\008\001\058\001\053\001\009\001\161\000\036\001\037\001\005\001\203\000\007\001\008\001\187\000\004\001\009\001\147\000\148\000\060\001\034\001\035\001\033\000\012\001\038\001\009\001\040\001\005\001\192\000\043\001\065\001\010\001\008\001\058\001\048\001\195\000\050\001\051\001\059\001\058\001\054\001\055\001\053\000\054\000\004\001\034\001\060\001\061\001\062\001\063\001\064\001\065\001\004\001\058\001\005\001\010\001\007\001\008\001\010\001\048\001\012\001\050\001\051\001\058\001\065\001\054\001\055\001\010\001\058\001\058\001\049\001\198\000\061\001\062\001\063\001\064\001\065\001\004\001\205\000\016\000\017\000\060\001\034\001\035\001\004\001\004\001\038\001\010\001\040\001\044\001\010\001\043\001\012\001\065\001\049\001\059\001\048\001\059\001\050\001\051\001\065\001\044\001\054\001\055\001\065\001\060\001\049\001\058\001\060\001\061\001\062\001\063\001\064\001\065\001\034\001\035\001\004\001\060\001\038\001\005\001\040\001\008\001\010\001\043\001\012\001\009\001\049\001\005\001\048\001\057\001\050\001\051\001\053\001\000\000\054\001\055\001\005\001\060\001\007\001\008\001\060\001\061\001\062\001\063\001\064\001\065\001\034\001\035\001\004\001\009\001\038\001\005\001\040\001\005\001\010\001\043\001\012\001\058\001\005\001\005\001\048\001\004\000\050\001\051\001\196\000\208\000\054\001\055\001\255\255\255\255\255\255\255\255\060\001\061\001\062\001\063\001\064\001\065\001\034\001\035\001\004\001\255\255\038\001\255\255\040\001\255\255\010\001\043\001\012\001\058\001\255\255\255\255\048\001\255\255\050\001\051\001\255\255\255\255\054\001\055\001\255\255\255\255\255\255\255\255\060\001\061\001\062\001\063\001\064\001\065\001\034\001\035\001\004\001\255\255\038\001\255\255\040\001\255\255\010\001\043\001\012\001\255\255\255\255\255\255\048\001\255\255\050\001\051\001\255\255\255\255\054\001\055\001\255\255\255\255\255\255\255\255\060\001\061\001\062\001\063\001\064\001\065\001\034\001\035\001\004\001\255\255\038\001\255\255\040\001\255\255\010\001\043\001\012\001\255\255\255\255\255\255\048\001\255\255\050\001\051\001\255\255\255\255\054\001\055\001\255\255\255\255\255\255\255\255\060\001\061\001\062\001\063\001\064\001\065\001\034\001\035\001\004\001\255\255\038\001\010\001\040\001\255\255\255\255\043\001\012\001\255\255\255\255\255\255\048\001\255\255\050\001\051\001\255\255\255\255\054\001\055\001\255\255\255\255\255\255\255\255\060\001\061\001\062\001\063\001\064\001\065\001\034\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\045\001\046\001\047\001\255\255\255\255\255\255\048\001\052\001\050\001\051\001\255\255\056\001\054\001\055\001\255\255\255\255\255\255\255\255\255\255\061\001\062\001\063\001\064\001\065\001\005\001\006\001\007\001\008\001\255\255\255\255\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\006\001\255\255\255\255\039\001\255\255\011\001\012\001\013\001\014\001\015\001\016\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\006\001\007\001\008\001\058\001\059\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\059\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\006\001\007\001\008\001\058\001\059\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\006\001\007\001\008\001\058\001\059\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\006\001\255\255\255\255\058\001\059\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\006\001\255\255\255\255\255\255\059\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\255\255\007\001\008\001\255\255\059\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\255\255\007\001\008\001\255\255\058\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\006\001\255\255\255\255\255\255\058\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\006\001\007\001\255\255\058\001\059\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\255\255\007\001\008\001\255\255\255\255\011\001\012\001\013\001\014\001\015\001\059\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\255\255\007\001\008\001\255\255\255\255\011\001\012\001\013\001\014\001\015\001\058\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\255\255\007\001\008\001\255\255\255\255\011\001\012\001\013\001\014\001\015\001\058\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\255\255\007\001\008\001\255\255\255\255\011\001\012\001\013\001\014\001\015\001\058\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\006\001\255\255\255\255\255\255\058\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\255\255\007\001\008\001\255\255\255\255\011\001\012\001\255\255\255\255\255\255\059\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\255\255\007\001\008\001\255\255\255\255\011\001\012\001\255\255\255\255\255\255\058\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\006\001\255\255\255\255\255\255\039\001\011\001\012\001\013\001\014\001\015\001\016\001\255\255\005\001\255\255\007\001\008\001\255\255\023\001\024\001\025\001\026\001\027\001\028\001\058\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\006\001\255\255\255\255\255\255\039\001\011\001\012\001\013\001\014\001\015\001\016\001\059\001\005\001\255\255\007\001\008\001\255\255\255\255\255\255\025\001\026\001\027\001\028\001\058\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\059\001\005\001\255\255\007\001\008\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\058\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\005\001\255\255\007\001\008\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\058\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\032\001\033\001\255\255\005\001\255\255\007\001\008\001\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\255\255\255\255\255\255\058\001\029\001\030\001\031\001\032\001\033\001\255\255\005\001\255\255\007\001\008\001\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\255\255\255\255\255\255\058\001\029\001\030\001\031\001\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\006\001\255\255\255\255\255\255\255\255\011\001\012\001\013\001\014\001\015\001\016\001\255\255\255\255\255\255\255\255\255\255\058\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\005\001\031\001\007\001\008\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\017\001\018\001\019\001\020\001\021\001\022\001\255\255\255\255\255\255\255\255\255\255\255\255\029\001\030\001\031\001\032\001\033\001\059\001\005\001\255\255\007\001\008\001\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\017\001\018\001\019\001\020\001\021\001\022\001\255\255\255\255\255\255\255\255\255\255\058\001\029\001\030\001\031\001\032\001\033\001\005\001\255\255\007\001\008\001\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\017\001\018\001\019\001\020\001\021\001\022\001\255\255\255\255\255\255\255\255\255\255\255\255\058\001\030\001\255\255\032\001\033\001\005\001\255\255\007\001\008\001\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\017\001\018\001\019\001\020\001\021\001\022\001\255\255\255\255\255\255\255\255\255\255\255\255\058\001\030\001\255\255\032\001\033\001\005\001\255\255\007\001\008\001\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\017\001\018\001\019\001\020\001\021\001\022\001\255\255\255\255\255\255\255\255\255\255\255\255\058\001\030\001\255\255\032\001\033\001\255\255\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\058\001"
let yynames_const = "COLON\000NEWLINE\000LPAREN\000RPAREN\000LBRACKET\000RBRACKET\000COMMA\000LBRACE\000RBRACE\000PLUS\000MINUS\000TIMES\000DIVIDE\000MOD\000POWER\000PLUSA\000MINUSA\000TIMESA\000DIVIDEA\000MODA\000POWERA\000EQ\000NEQ\000GT\000LT\000GEQ\000LEQ\000AND\000OR\000NAND\000NOR\000XOR\000NOT\000IF\000ELSE\000ELSIF\000WHILE\000ASSIGN\000RETURN\000CLASS\000EXTEND\000SUPER\000INIT\000PRIVATE\000PROTECTED\000PUBLIC\000NULL\000VOID\000THIS\000NEW\000MAIN\000ARRAY\000REFINABLE\000REFINE\000REFINES\000TO\000SEMI\000DOT\000EOF\000"
let yynames_block = "SPACE\000TYPE\000ILIT\000FLIT\000BLIT\000SLIT\000ID\000"
let yyact = [|
(fun _ -> failwith "parser")
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'cdecl) in
Obj.repr(
# 83 "parser.mly"
( [_1] )
# 814 "parser.ml"
: Ast.program))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : Ast.program) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cdecl) in
Obj.repr(
# 84 "parser.mly"
( _2 :: _1 )
# 822 "parser.ml"
: Ast.program))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 2 : string) in
let _3 = (Parsing.peek_val __caml_parser_env 1 : 'extend_opt) in
let _4 = (Parsing.peek_val __caml_parser_env 0 : 'class_section_list) in
Obj.repr(
# 87 "parser.mly"
( { klass = _2;
parent = _3;
sections = set_func_class _2 _4 } )
# 833 "parser.ml"
: 'cdecl))
; (fun __caml_parser_env ->
Obj.repr(
# 91 "parser.mly"
( Some("Object") )
# 839 "parser.ml"
: 'extend_opt))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in
Obj.repr(
# 92 "parser.mly"
( Some(_2) )
# 846 "parser.ml"
: 'extend_opt))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_sections) in
Obj.repr(
# 96 "parser.mly"
( _2 )
# 853 "parser.ml"
: 'class_section_list))
; (fun __caml_parser_env ->
Obj.repr(
# 99 "parser.mly"
( { privates = [];
protects = [];
publics = [];
refines = [];
mains = [] } )
# 863 "parser.ml"
: 'class_sections))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_sections) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'private_list) in
Obj.repr(
# 104 "parser.mly"
( { _1 with privates = (set_mem_section Privates _2) @ _1.privates } )
# 871 "parser.ml"
: 'class_sections))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_sections) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'protect_list) in
Obj.repr(
# 105 "parser.mly"
( { _1 with protects = (set_mem_section Protects _2) @ _1.protects } )
# 879 "parser.ml"
: 'class_sections))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_sections) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'public_list) in
Obj.repr(
# 106 "parser.mly"
( { _1 with publics = (set_mem_section Publics _2) @ _1.publics } )
# 887 "parser.ml"
: 'class_sections))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_sections) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'refine_list) in
Obj.repr(
# 107 "parser.mly"
( { _1 with refines = (set_func_section Refines _2) @ _1.refines } )
# 895 "parser.ml"
: 'class_sections))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_sections) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'main_method) in
Obj.repr(
# 108 "parser.mly"
( { _1 with mains = (set_func_section_to Mains _2) :: _1.mains } )
# 903 "parser.ml"
: 'class_sections))
; (fun __caml_parser_env ->
let _3 = (Parsing.peek_val __caml_parser_env 1 : 'refinements) in
Obj.repr(
# 112 "parser.mly"
( _3 )
# 910 "parser.ml"
: 'refine_list))
; (fun __caml_parser_env ->
Obj.repr(
# 114 "parser.mly"
( [] )
# 916 "parser.ml"
: 'refinements))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'refinements) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'refinement) in
Obj.repr(
# 115 "parser.mly"
( _2 :: _1 )
# 924 "parser.ml"
: 'refinements))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 3 : 'vartype) in
let _2 = (Parsing.peek_val __caml_parser_env 2 : string) in
let _4 = (Parsing.peek_val __caml_parser_env 0 : 'invocable) in
Obj.repr(
# 117 "parser.mly"
( { _4 with returns = Some(_1); host = Some(_2) } )
# 933 "parser.ml"
: 'refinement))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 2 : string) in
let _4 = (Parsing.peek_val __caml_parser_env 0 : 'invocable) in
Obj.repr(
# 118 "parser.mly"
( { _4 with host = Some(_2) } )
# 941 "parser.ml"
: 'refinement))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'member_list) in
Obj.repr(
# 122 "parser.mly"
( _2 )
# 948 "parser.ml"
: 'private_list))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'member_list) in
Obj.repr(
# 124 "parser.mly"
( _2 )
# 955 "parser.ml"
: 'protect_list))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'member_list) in
Obj.repr(
# 126 "parser.mly"
( _2 )
# 962 "parser.ml"
: 'public_list))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'members) in
Obj.repr(
# 130 "parser.mly"
( _2 )
# 969 "parser.ml"
: 'member_list))
; (fun __caml_parser_env ->
Obj.repr(
# 132 "parser.mly"
( [] )
# 975 "parser.ml"
: 'members))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'members) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'member) in
Obj.repr(
# 133 "parser.mly"
( _2 :: _1 )
# 983 "parser.ml"
: 'members))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'vdecl) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'semi) in
Obj.repr(
# 135 "parser.mly"
( VarMem(_1) )
# 991 "parser.ml"
: 'member))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'mdecl) in
Obj.repr(
# 136 "parser.mly"
( MethodMem(_1) )
# 998 "parser.ml"
: 'member))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'init) in
Obj.repr(
# 137 "parser.mly"
( InitMem(_1) )
# 1005 "parser.ml"
: 'member))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'vartype) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'invocable) in
Obj.repr(
# 141 "parser.mly"
( { _2 with returns = Some(_1) } )
# 1013 "parser.ml"
: 'mdecl))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'invocable) in
Obj.repr(
# 142 "parser.mly"
( _2 )
# 1020 "parser.ml"
: 'mdecl))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'callable) in
Obj.repr(
# 146 "parser.mly"
( { _2 with name = "init" } )
# 1027 "parser.ml"
: 'init))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'callable) in
Obj.repr(
# 150 "parser.mly"
( { _2 with name = "main"; static = true } )
# 1034 "parser.ml"
: 'main_method))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'callable) in
Obj.repr(
# 154 "parser.mly"
( { _2 with name = _1 } )
# 1042 "parser.ml"
: 'invocable))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'formals) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'stmt_block) in
Obj.repr(
# 157 "parser.mly"
( { returns = None;
host = None;
name = "";
static = false;
formals = _1;
body = _2;
section = Privates;
inklass = "";
uid = UID.uid_counter ();
builtin = false } )
# 1059 "parser.ml"
: 'callable))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'stmt_list) in
Obj.repr(
# 170 "parser.mly"
( List.rev _2 )
# 1066 "parser.ml"
: 'stmt_block))
; (fun __caml_parser_env ->
Obj.repr(
# 172 "parser.mly"
( [] )
# 1072 "parser.ml"
: 'stmt_list))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'stmt_list) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'stmt) in
Obj.repr(
# 173 "parser.mly"
( _2 :: _1 )
# 1080 "parser.ml"
: 'stmt_list))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'vdecl) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'semi) in
Obj.repr(
# 175 "parser.mly"
( Decl(_1, None) )
# 1088 "parser.ml"
: 'stmt))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 3 : 'vdecl) in
let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in
let _4 = (Parsing.peek_val __caml_parser_env 0 : 'semi) in
Obj.repr(
# 176 "parser.mly"
( Decl(_1, Some(_3)) )
# 1097 "parser.ml"
: 'stmt))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'actuals) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'semi) in
Obj.repr(
# 177 "parser.mly"
( Super(_2) )
# 1105 "parser.ml"
: 'stmt))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'semi) in
Obj.repr(
# 178 "parser.mly"
( Return(Some(_2)) )
# 1113 "parser.ml"
: 'stmt))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'semi) in
Obj.repr(
# 179 "parser.mly"
( Return(None) )
# 1120 "parser.ml"
: 'stmt))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'conditional) in
Obj.repr(
# 180 "parser.mly"
( _1 )
# 1127 "parser.ml"
: 'stmt))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'loop) in
Obj.repr(
# 181 "parser.mly"
( _1 )
# 1134 "parser.ml"
: 'stmt))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'semi) in
Obj.repr(
# 182 "parser.mly"
( Expr(_1) )
# 1142 "parser.ml"
: 'stmt))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 2 : 'pred) in
let _3 = (Parsing.peek_val __caml_parser_env 1 : 'stmt_block) in
let _4 = (Parsing.peek_val __caml_parser_env 0 : 'else_list) in
Obj.repr(
# 186 "parser.mly"
( If((Some(_2), _3) :: _4) )
# 1151 "parser.ml"
: 'conditional))
; (fun __caml_parser_env ->
Obj.repr(
# 188 "parser.mly"
( [] )
# 1157 "parser.ml"
: 'else_list))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'stmt_block) in
Obj.repr(
# 189 "parser.mly"
( [(None, _2)] )
# 1164 "parser.ml"
: 'else_list))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 2 : 'pred) in
let _3 = (Parsing.peek_val __caml_parser_env 1 : 'stmt_block) in
let _4 = (Parsing.peek_val __caml_parser_env 0 : 'else_list) in
Obj.repr(
# 190 "parser.mly"
( (Some(_2), _3) :: _4 )
# 1173 "parser.ml"
: 'else_list))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'pred) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'stmt_block) in
Obj.repr(
# 192 "parser.mly"
( While(_2, _3) )
# 1181 "parser.ml"
: 'loop))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in
Obj.repr(
# 194 "parser.mly"
( _2 )
# 1188 "parser.ml"
: 'pred))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'assignment) in
Obj.repr(
# 199 "parser.mly"
( _1 )
# 1195 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'invocation) in
Obj.repr(
# 200 "parser.mly"
( _1 )
# 1202 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'field) in
Obj.repr(
# 201 "parser.mly"
( _1 )
# 1209 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'value) in
Obj.repr(
# 202 "parser.mly"
( _1 )
# 1216 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'arithmetic) in
Obj.repr(
# 203 "parser.mly"
( _1 )
# 1223 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'test) in
Obj.repr(
# 204 "parser.mly"
( _1 )
# 1230 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'instantiate) in
Obj.repr(
# 205 "parser.mly"
( _1 )
# 1237 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'refineexpr) in
Obj.repr(
# 206 "parser.mly"
( _1 )
# 1244 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'literal) in
Obj.repr(
# 207 "parser.mly"
( _1 )
# 1251 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in
Obj.repr(
# 208 "parser.mly"
( _2 )
# 1258 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
Obj.repr(
# 209 "parser.mly"
( This )
# 1264 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
Obj.repr(
# 210 "parser.mly"
( Null )
# 1270 "parser.ml"
: 'expr))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 213 "parser.mly"
( Assign(_1, _3) )
# 1278 "parser.ml"
: 'assignment))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 214 "parser.mly"
( Assign(_1, Binop(_1, Arithmetic(Add), _3)) )
# 1286 "parser.ml"
: 'assignment))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 215 "parser.mly"
( Assign(_1, Binop(_1, Arithmetic(Sub), _3)) )
# 1294 "parser.ml"
: 'assignment))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 216 "parser.mly"
( Assign(_1, Binop(_1, Arithmetic(Prod), _3)) )
# 1302 "parser.ml"
: 'assignment))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 217 "parser.mly"
( Assign(_1, Binop(_1, Arithmetic(Div), _3)) )
# 1310 "parser.ml"
: 'assignment))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 218 "parser.mly"
( Assign(_1, Binop(_1, Arithmetic(Mod), _3)) )
# 1318 "parser.ml"
: 'assignment))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 219 "parser.mly"
( Assign(_1, Binop(_1, Arithmetic(Pow), _3)) )
# 1326 "parser.ml"
: 'assignment))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 3 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 1 : string) in
let _4 = (Parsing.peek_val __caml_parser_env 0 : 'actuals) in
Obj.repr(
# 222 "parser.mly"
( Invoc(_1, _3, _4) )
# 1335 "parser.ml"
: 'invocation))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'actuals) in
Obj.repr(
# 223 "parser.mly"
( Invoc(This, _1, _2) )
# 1343 "parser.ml"
: 'invocation))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
Obj.repr(
# 226 "parser.mly"
( Field(_1, _3) )
# 1351 "parser.ml"
: 'field))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
Obj.repr(
# 229 "parser.mly"
( Id(_1) )
# 1358 "parser.ml"
: 'value))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 3 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in
Obj.repr(
# 230 "parser.mly"
( Deref(_1, _3) )
# 1366 "parser.ml"
: 'value))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 233 "parser.mly"
( Binop(_1, Arithmetic(Add), _3) )
# 1374 "parser.ml"
: 'arithmetic))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 234 "parser.mly"
( Binop(_1, Arithmetic(Sub), _3) )
# 1382 "parser.ml"
: 'arithmetic))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 235 "parser.mly"
( Binop(_1, Arithmetic(Prod), _3) )
# 1390 "parser.ml"
: 'arithmetic))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 236 "parser.mly"
( Binop(_1, Arithmetic(Div), _3) )
# 1398 "parser.ml"
: 'arithmetic))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 237 "parser.mly"
( Binop(_1, Arithmetic(Mod), _3) )
# 1406 "parser.ml"
: 'arithmetic))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 238 "parser.mly"
( Binop(_1, Arithmetic(Pow), _3) )
# 1414 "parser.ml"
: 'arithmetic))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 239 "parser.mly"
( Unop(Arithmetic(Neg), _2) )
# 1421 "parser.ml"
: 'arithmetic))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 242 "parser.mly"
( Binop(_1, CombTest(And), _3) )
# 1429 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 243 "parser.mly"
( Binop(_1, CombTest(Or), _3) )
# 1437 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 244 "parser.mly"
( Binop(_1, CombTest(Xor), _3) )
# 1445 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 245 "parser.mly"
( Binop(_1, CombTest(Nand), _3) )
# 1453 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 246 "parser.mly"
( Binop(_1, CombTest(Nor), _3) )
# 1461 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 247 "parser.mly"
( Binop(_1, NumTest(Less), _3) )
# 1469 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 248 "parser.mly"
( Binop(_1, NumTest(Leq), _3) )
# 1477 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 249 "parser.mly"
( Binop(_1, NumTest(Eq), _3) )
# 1485 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 250 "parser.mly"
( Binop(_1, NumTest(Neq), _3) )
# 1493 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 251 "parser.mly"
( Binop(_1, NumTest(Geq), _3) )
# 1501 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 252 "parser.mly"
( Binop(_1, NumTest(Grtr), _3) )
# 1509 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 253 "parser.mly"
( Unop(CombTest(Not), _2) )
# 1516 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _3 = (Parsing.peek_val __caml_parser_env 1 : string) in
Obj.repr(
# 254 "parser.mly"
( Refinable(_3) )
# 1523 "parser.ml"
: 'test))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'vartype) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'actuals) in
Obj.repr(
# 257 "parser.mly"
( NewObj(_2, _3) )
# 1531 "parser.ml"
: 'instantiate))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 4 : 'vartype) in
let _3 = (Parsing.peek_val __caml_parser_env 3 : 'actuals) in
let _5 = (Parsing.peek_val __caml_parser_env 1 : 'refinements) in
Obj.repr(
# 258 "parser.mly"
( Anonymous(_2, _3, List.map (set_func_klass _2) _5) )
# 1540 "parser.ml"
: 'instantiate))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 3 : string) in
let _3 = (Parsing.peek_val __caml_parser_env 2 : 'actuals) in
let _5 = (Parsing.peek_val __caml_parser_env 0 : 'vartype) in
Obj.repr(
# 261 "parser.mly"
( Refine(_2, _3, Some(_5)) )
# 1549 "parser.ml"
: 'refineexpr))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 3 : string) in
let _3 = (Parsing.peek_val __caml_parser_env 2 : 'actuals) in
Obj.repr(
# 262 "parser.mly"
( Refine(_2, _3, None) )
# 1557 "parser.ml"
: 'refineexpr))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'lit) in
Obj.repr(
# 265 "parser.mly"
( Literal(_1) )
# 1564 "parser.ml"
: 'literal))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
Obj.repr(
# 269 "parser.mly"
( String(_1) )
# 1571 "parser.ml"
: 'lit))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : int) in
Obj.repr(
# 270 "parser.mly"
( Int(_1) )
# 1578 "parser.ml"
: 'lit))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : float) in
Obj.repr(
# 271 "parser.mly"
( Float(_1) )
# 1585 "parser.ml"
: 'lit))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : bool) in
Obj.repr(
# 272 "parser.mly"
( Bool(_1) )
# 1592 "parser.ml"
: 'lit))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'formals_opt) in
Obj.repr(
# 276 "parser.mly"
( _2 )
# 1599 "parser.ml"
: 'formals))
; (fun __caml_parser_env ->
Obj.repr(
# 278 "parser.mly"
( [] )
# 1605 "parser.ml"
: 'formals_opt))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'formals_list) in
Obj.repr(
# 279 "parser.mly"
( List.rev _1 )
# 1612 "parser.ml"
: 'formals_opt))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'vdecl) in
Obj.repr(
# 281 "parser.mly"
( [_1] )
# 1619 "parser.ml"
: 'formals_list))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'formals_list) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'vdecl) in
Obj.repr(
# 282 "parser.mly"
( _3 :: _1 )
# 1627 "parser.ml"
: 'formals_list))
; (fun __caml_parser_env ->
let _2 = (Parsing.peek_val __caml_parser_env 1 : 'actuals_opt) in
Obj.repr(
# 286 "parser.mly"
( _2 )
# 1634 "parser.ml"
: 'actuals))
; (fun __caml_parser_env ->
Obj.repr(
# 288 "parser.mly"
( [] )
# 1640 "parser.ml"
: 'actuals_opt))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'actuals_list) in
Obj.repr(
# 289 "parser.mly"
( List.rev _1 )
# 1647 "parser.ml"
: 'actuals_opt))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 291 "parser.mly"
( [_1] )
# 1654 "parser.ml"
: 'actuals_list))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 2 : 'actuals_list) in
let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in
Obj.repr(
# 292 "parser.mly"
( _3 :: _1)
# 1662 "parser.ml"
: 'actuals_list))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'vartype) in
let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in
Obj.repr(
# 296 "parser.mly"
( (_1, _2) )
# 1670 "parser.ml"
: 'vdecl))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
Obj.repr(
# 298 "parser.mly"
( _1 )
# 1677 "parser.ml"
: 'vartype))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'vartype) in
Obj.repr(
# 299 "parser.mly"
( _1 ^ "[]" )
# 1684 "parser.ml"
: 'vartype))
; (fun __caml_parser_env ->
Obj.repr(
# 303 "parser.mly"
()
# 1690 "parser.ml"
: 'semi))
; (fun __caml_parser_env ->
let _1 = (Parsing.peek_val __caml_parser_env 1 : 'semi) in
Obj.repr(
# 304 "parser.mly"
()
# 1697 "parser.ml"
: 'semi))
; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
|]
let yytables =
{ Parsing.actions=yyact;
Parsing.transl_const=yytransl_const;
Parsing.transl_block=yytransl_block;
Parsing.lhs=yylhs;
Parsing.len=yylen;
Parsing.defred=yydefred;
Parsing.dgoto=yydgoto;
Parsing.sindex=yysindex;
Parsing.rindex=yyrindex;
Parsing.gindex=yygindex;
Parsing.tablesize=yytablesize;
Parsing.table=yytable;
Parsing.check=yycheck;
Parsing.error_function=parse_error;
Parsing.names_const=yynames_const;
Parsing.names_block=yynames_block }
let cdecls (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
(Parsing.yyparse yytables 1 lexfun lexbuf : Ast.program)