let yyact = [|
  (fun _ -> failwith "parser")
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 3 : 'opt_dec_list) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : 'opt_proc_list) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'cmd) in
    Obj.repr(
# 35 "parser.mly"
                                                  ( Program(_2,_3,_4) )
# 436 "parser.ml"
               : Syntaxtree.program))
; (fun __caml_parser_env ->
    Obj.repr(
# 39 "parser.mly"
                                                  ( [] )
# 442 "parser.ml"
               : 'opt_dec_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'dec_list) in
    Obj.repr(
# 40 "parser.mly"
                                                  ( _1 )
# 449 "parser.ml"
               : 'opt_dec_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'dec) in
    Obj.repr(
# 44 "parser.mly"
                                                  ( [_1] )
# 456 "parser.ml"
               : 'dec_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'dec) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'dec_list) in
    Obj.repr(
# 45 "parser.mly"
                                                  ( _1::_3 )
# 464 "parser.ml"
               : 'dec_list))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'ide) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'gType) in
    Obj.repr(
# 49 "parser.mly"
                                                  ( Dec(_2,_4) )
# 472 "parser.ml"
               : 'dec))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bType) in
    Obj.repr(
# 53 "parser.mly"
                                                  ( Basic(_1) )
# 479 "parser.ml"
               : 'gType))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 3 : int) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : 'bType) in
    Obj.repr(
# 54 "parser.mly"
                                                  ( Vector(_3,_6) )
# 487 "parser.ml"
               : 'gType))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 5 : int) in
    let _5 = (Parsing.peek_val __caml_parser_env 3 : int) in
    let _8 = (Parsing.peek_val __caml_parser_env 0 : 'bType) in
    Obj.repr(
# 55 "parser.mly"
                                                  ( Matrix(_3,_5,_8) )
# 496 "parser.ml"
               : 'gType))
; (fun __caml_parser_env ->
    Obj.repr(
# 59 "parser.mly"
                                                  ( Int )
# 502 "parser.ml"
               : 'bType))
; (fun __caml_parser_env ->
    Obj.repr(
# 60 "parser.mly"
                                                  ( Float )
# 508 "parser.ml"
               : 'bType))
; (fun __caml_parser_env ->
    Obj.repr(
# 64 "parser.mly"
                                                  ( [] )
# 514 "parser.ml"
               : 'opt_proc_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'proc_list) in
    Obj.repr(
# 65 "parser.mly"
                                                  ( _1 )
# 521 "parser.ml"
               : 'opt_proc_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'proc) in
    Obj.repr(
# 69 "parser.mly"
                                                  ( [_1] )
# 528 "parser.ml"
               : 'proc_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'proc) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'proc_list) in
    Obj.repr(
# 70 "parser.mly"
                                                  ( _1::_3 )
# 536 "parser.ml"
               : 'proc_list))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 5 : 'ide) in
    let _4 = (Parsing.peek_val __caml_parser_env 3 : 'opt_param_list) in
    let _6 = (Parsing.peek_val __caml_parser_env 1 : 'opt_dec_list) in
    let _7 = (Parsing.peek_val __caml_parser_env 0 : 'cmd) in
    Obj.repr(
# 75 "parser.mly"
                                           ( Proc(_2,_4,_6,_7) )
# 546 "parser.ml"
               : 'proc))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 7 : 'ide) in
    let _4 = (Parsing.peek_val __caml_parser_env 5 : 'opt_param_list) in
    let _7 = (Parsing.peek_val __caml_parser_env 2 : 'ret) in
    let _8 = (Parsing.peek_val __caml_parser_env 1 : 'opt_dec_list) in
    let _9 = (Parsing.peek_val __caml_parser_env 0 : 'cmd) in
    Obj.repr(
# 77 "parser.mly"
                                           ( Func(_2,_4,_7,_8,_9) )
# 557 "parser.ml"
               : 'proc))
; (fun __caml_parser_env ->
    Obj.repr(
# 81 "parser.mly"
                                                  ( [] )
# 563 "parser.ml"
               : 'opt_param_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'param_list) in
    Obj.repr(
# 82 "parser.mly"
                                                  ( _1 )
# 570 "parser.ml"
               : 'opt_param_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'param) in
    Obj.repr(
# 86 "parser.mly"
                                                  ( [_1] )
# 577 "parser.ml"
               : 'param_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'param) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'param_list) in
    Obj.repr(
# 87 "parser.mly"
                                                  ( _1::_3 )
# 585 "parser.ml"
               : 'param_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'ide) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'bType) in
    Obj.repr(
# 91 "parser.mly"
                                                  ( Par(_1,_3) )
# 593 "parser.ml"
               : 'param))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bType) in
    Obj.repr(
# 95 "parser.mly"
                                                  ( Ret(_1) )
# 600 "parser.ml"
               : 'ret))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lexp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'aexp) in
    Obj.repr(
# 99 "parser.mly"
                                                  ( Ass(_1,_3) )
# 608 "parser.ml"
               : 'cmd))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'opt_cmd_list) in
    Obj.repr(
# 100 "parser.mly"
                                                  ( Blk(_2) )
# 615 "parser.ml"
               : 'cmd))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 4 : 'bexp) in
    let _4 = (Parsing.peek_val __caml_parser_env 2 : 'cmd) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : 'cmd) in
    Obj.repr(
# 101 "parser.mly"
                                                  ( Ite(_2,_4,_6) )
# 624 "parser.ml"
               : 'cmd))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'bexp) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'cmd) in
    Obj.repr(
# 102 "parser.mly"
                                                  ( While(_2,_4) )
# 632 "parser.ml"
               : 'cmd))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'cmd) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'bexp) in
    Obj.repr(
# 103 "parser.mly"
                                                  ( Repeat(_2,_4) )
# 640 "parser.ml"
               : 'cmd))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 6 : 'ide) in
    let _4 = (Parsing.peek_val __caml_parser_env 4 : 'aexp) in
    let _6 = (Parsing.peek_val __caml_parser_env 2 : 'aexp) in
    let _8 = (Parsing.peek_val __caml_parser_env 0 : 'cmd) in
    Obj.repr(
# 104 "parser.mly"
                                                  ( For(_2,_4,_6,_8) )
# 650 "parser.ml"
               : 'cmd))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'aexp) in
    Obj.repr(
# 105 "parser.mly"
                                                  ( Write(_2) )
# 657 "parser.ml"
               : 'cmd))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 3 : 'ide) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'opt_aexp_list) in
    Obj.repr(
# 106 "parser.mly"
                                                  ( PCall(_2,_4) )
# 665 "parser.ml"
               : 'cmd))
; (fun __caml_parser_env ->
    Obj.repr(
# 110 "parser.mly"
                                                  ( [] )
# 671 "parser.ml"
               : 'opt_cmd_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'cmd_list) in
    Obj.repr(
# 111 "parser.mly"
                                                  ( _1 )
# 678 "parser.ml"
               : 'opt_cmd_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'cmd) in
    Obj.repr(
# 115 "parser.mly"
                                                  ( [_1] )
# 685 "parser.ml"
               : 'cmd_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'cmd) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'cmd_list) in
    Obj.repr(
# 116 "parser.mly"
                                                  ( _1::_3 )
# 693 "parser.ml"
               : 'cmd_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'ide) in
    Obj.repr(
# 120 "parser.mly"
                                                  ( LVar(_1) )
# 700 "parser.ml"
               : 'lexp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'ide) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'aexp) in
    Obj.repr(
# 121 "parser.mly"
                                                  ( LVec(_1,_3) )
# 708 "parser.ml"
               : 'lexp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : 'ide) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : 'aexp) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'aexp) in
    Obj.repr(
# 122 "parser.mly"
                                                  ( LMat(_1,_3,_5) )
# 717 "parser.ml"
               : 'lexp))
; (fun __caml_parser_env ->
    Obj.repr(
# 126 "parser.mly"
                                                  ( B(true) )
# 723 "parser.ml"
               : 'bexp_factor))
; (fun __caml_parser_env ->
    Obj.repr(
# 127 "parser.mly"
                                                  ( B(false) )
# 729 "parser.ml"
               : 'bexp_factor))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'aexp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'aexp) in
    Obj.repr(
# 128 "parser.mly"
                                                  ( Equ(_1,_3) )
# 737 "parser.ml"
               : 'bexp_factor))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'aexp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'aexp) in
    Obj.repr(
# 129 "parser.mly"
                                                  ( LE(_1,_3) )
# 745 "parser.ml"
               : 'bexp_factor))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'aexp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'aexp) in
    Obj.repr(
# 130 "parser.mly"
                                                  ( LT(_1,_3) )
# 753 "parser.ml"
               : 'bexp_factor))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'bexp_factor) in
    Obj.repr(
# 131 "parser.mly"
                                                  ( Not(_2) )
# 760 "parser.ml"
               : 'bexp_factor))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'bexp) in
    Obj.repr(
# 132 "parser.mly"
                                                  ( _2 )
# 767 "parser.ml"
               : 'bexp_factor))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'bexp_term) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'bexp_factor) in
    Obj.repr(
# 136 "parser.mly"
                                                  ( And(_1,_3) )
# 775 "parser.ml"
               : 'bexp_term))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bexp_factor) in
    Obj.repr(
# 137 "parser.mly"
                                                  ( _1 )
# 782 "parser.ml"
               : 'bexp_term))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'bexp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'bexp_term) in
    Obj.repr(
# 141 "parser.mly"
                                                  ( Or(_1,_3) )
# 790 "parser.ml"
               : 'bexp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bexp_term) in
    Obj.repr(
# 142 "parser.mly"
                                                  ( _1 )
# 797 "parser.ml"
               : 'bexp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : int) in
    Obj.repr(
# 146 "parser.mly"
                                                  ( N(_1) )
# 804 "parser.ml"
               : 'aexp_factor))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : float) in
    Obj.repr(
# 147 "parser.mly"
                                                  ( R(_1) )
# 811 "parser.ml"
               : 'aexp_factor))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'ide) in
    Obj.repr(
# 148 "parser.mly"
                                                  ( Var(_1) )
# 818 "parser.ml"
               : 'aexp_factor))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'ide) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'aexp) in
    Obj.repr(
# 149 "parser.mly"
                                                  ( Vec(_1,_3) )
# 826 "parser.ml"
               : 'aexp_factor))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : 'ide) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : 'aexp) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'aexp) in
    Obj.repr(
# 150 "parser.mly"
                                                  ( Mat(_1,_3,_5) )
# 835 "parser.ml"
               : 'aexp_factor))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 3 : 'ide) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'opt_aexp_list) in
    Obj.repr(
# 151 "parser.mly"
                                                  ( FCall(_2,_4) )
# 843 "parser.ml"
               : 'aexp_factor))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'aexp) in
    Obj.repr(
# 152 "parser.mly"
                                                  ( _2 )
# 850 "parser.ml"
               : 'aexp_factor))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'aexp_term) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'aexp_factor) in
    Obj.repr(
# 156 "parser.mly"
                                                  ( Mul(_1,_3) )
# 858 "parser.ml"
               : 'aexp_term))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'aexp_term) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'aexp_factor) in
    Obj.repr(
# 157 "parser.mly"
                                                  ( Div(_1,_3) )
# 866 "parser.ml"
               : 'aexp_term))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'aexp_factor) in
    Obj.repr(
# 158 "parser.mly"
                                                  ( _1 )
# 873 "parser.ml"
               : 'aexp_term))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'aexp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'aexp_term) in
    Obj.repr(
# 162 "parser.mly"
                                                  ( Sum(_1,_3) )
# 881 "parser.ml"
               : 'aexp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'aexp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'aexp_term) in
    Obj.repr(
# 163 "parser.mly"
                                                  ( Sub(_1,_3) )
# 889 "parser.ml"
               : 'aexp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'aexp_term) in
    Obj.repr(
# 164 "parser.mly"
                                                  ( _1 )
# 896 "parser.ml"
               : 'aexp))
; (fun __caml_parser_env ->
    Obj.repr(
# 168 "parser.mly"
                                                  ( [] )
# 902 "parser.ml"
               : 'opt_aexp_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'aexp_list) in
    Obj.repr(
# 169 "parser.mly"
                                                  ( _1 )
# 909 "parser.ml"
               : 'opt_aexp_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'aexp) in
    Obj.repr(
# 173 "parser.mly"
                                                  ( [_1] )
# 916 "parser.ml"
               : 'aexp_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'aexp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'aexp_list) in
    Obj.repr(
# 174 "parser.mly"
                                                  ( _1::_3 )
# 924 "parser.ml"
               : 'aexp_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
    Obj.repr(
# 178 "parser.mly"
                                                  ( Ide(_1) )
# 931 "parser.ml"
               : 'ide))
(* Entry program *)
; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
|]