let yyact = [|
  (fun _ -> failwith "parser")
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'formula) in
    Obj.repr(
# 84 "src/aorai/ltlparser.mly"
                      ((_1,observed_expressions))
# 332 "src/aorai/ltlparser.ml"
               : (Ltlast.formula * (string, (Cil_types.exp* string*Cil_types.predicate)) Hashtbl.t)))
; (fun __caml_parser_env ->
    Obj.repr(
# 90 "src/aorai/ltlparser.mly"
            (Ltlast.LTrue)
# 338 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    Obj.repr(
# 92 "src/aorai/ltlparser.mly"
     (Ltlast.LFalse)
# 344 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'formula) in
    Obj.repr(
# 94 "src/aorai/ltlparser.mly"
     ( _2 )
# 351 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'formula) in
    Obj.repr(
# 97 "src/aorai/ltlparser.mly"
     ( Ltlast.LGlobally(_2) )
# 358 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'formula) in
    Obj.repr(
# 99 "src/aorai/ltlparser.mly"
     ( Ltlast.LFatally(_2) )
# 365 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'formula) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'formula) in
    Obj.repr(
# 101 "src/aorai/ltlparser.mly"
     ( Ltlast.LUntil(_1,_3) )
# 373 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'formula) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'formula) in
    Obj.repr(
# 103 "src/aorai/ltlparser.mly"
     ( Ltlast.LRelease(_1,_3) )
# 381 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'formula) in
    Obj.repr(
# 105 "src/aorai/ltlparser.mly"
     ( Ltlast.LNext(_2) )
# 388 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'formula) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'formula) in
    Obj.repr(
# 108 "src/aorai/ltlparser.mly"
     ( Ltlast.LOr(_1,_3) )
# 396 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'formula) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'formula) in
    Obj.repr(
# 110 "src/aorai/ltlparser.mly"
     ( Ltlast.LAnd(_1,_3) )
# 404 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'formula) in
    Obj.repr(
# 112 "src/aorai/ltlparser.mly"
     ( Ltlast.LNot(_2) )
# 411 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'formula) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'formula) in
    Obj.repr(
# 114 "src/aorai/ltlparser.mly"
     ( Ltlast.LImplies(_1,_3) )
# 419 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'formula) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'formula) in
    Obj.repr(
# 116 "src/aorai/ltlparser.mly"
     ( Ltlast.LIff(_1,_3) )
# 427 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 : string) in
    Obj.repr(
# 119 "src/aorai/ltlparser.mly"
     ( Ltlast.LCall(_3))
# 434 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 : string) in
    Obj.repr(
# 121 "src/aorai/ltlparser.mly"
     ( Ltlast.LReturn(_3))
# 441 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 : string) in
    Obj.repr(
# 123 "src/aorai/ltlparser.mly"
     ( Ltlast.LCallOrReturn(_3))
# 448 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'logic_relation) in
    Obj.repr(
# 127 "src/aorai/ltlparser.mly"
     (
              let id = get_fresh_ident () in
              let (pred,exp) = _1 in
                Hashtbl.add observed_expressions id 
                  (exp, (Pretty_utils.sfprintf "%a" Cil.d_exp exp), pred);
                Ltlast.LIdent(id)
            )
# 461 "src/aorai/ltlparser.ml"
               : 'formula))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arith_relation) in
    Obj.repr(
# 140 "src/aorai/ltlparser.mly"
            ( (        Prel(Cil_types.ReqLogic_utils.expr_to_term ~cast:true _1 ,Logic_utils.expr_to_term ~cast:true  _3),
                new_exp (BinOp(Cil_types.Eq, _1 , _3 , Cil.intType)) )
            )
# 471 "src/aorai/ltlparser.ml"
               : 'logic_relation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arith_relation) in
    Obj.repr(
# 144 "src/aorai/ltlparser.mly"
            ( (        Prel(Cil_types.RltLogic_utils.expr_to_term ~cast:true _1 , Logic_utils.expr_to_term ~cast:true _3),
                new_exp (BinOp(Cil_types.Lt, _1 , _3 , Cil.intType)) )
            )
# 481 "src/aorai/ltlparser.ml"
               : 'logic_relation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arith_relation) in
    Obj.repr(
# 148 "src/aorai/ltlparser.mly"
            ( (        Prel(Cil_types.RgtLogic_utils.expr_to_term ~cast:true _1 , Logic_utils.expr_to_term ~cast:true _3),
                new_exp(BinOp(Cil_types.Gt, _1 , _3 , Cil.intType)) )
            )
# 491 "src/aorai/ltlparser.ml"
               : 'logic_relation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arith_relation) in
    Obj.repr(
# 152 "src/aorai/ltlparser.mly"
            ( (        Prel(Cil_types.RleLogic_utils.expr_to_term ~cast:true _1 , Logic_utils.expr_to_term ~cast:true _3),
                new_exp (BinOp(Cil_types.Le, _1 , _3 , Cil.intType) ))
            )
# 501 "src/aorai/ltlparser.ml"
               : 'logic_relation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arith_relation) in
    Obj.repr(
# 156 "src/aorai/ltlparser.mly"
            ( (        Prel(Cil_types.RgeLogic_utils.expr_to_term ~cast:true _1 , Logic_utils.expr_to_term ~cast:true _3),
                new_exp (BinOp(Cil_types.Ge, _1 , _3 , Cil.intType) ))
            )
# 511 "src/aorai/ltlparser.ml"
               : 'logic_relation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arith_relation) in
    Obj.repr(
# 160 "src/aorai/ltlparser.mly"
            ( (        Prel(Cil_types.Rneq,Logic_utils.expr_to_term ~cast:true _1 , Logic_utils.expr_to_term ~cast:true _3),
                new_exp (BinOp(Cil_types.Ne , _1 , _3 , Cil.intType) ))
            )
# 521 "src/aorai/ltlparser.ml"
               : 'logic_relation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'arith_relation) in
    Obj.repr(
# 164 "src/aorai/ltlparser.mly"
     ( (        Prel(Cil_types.Rneq,Logic_utils.expr_to_term ~cast:true _1 ,
                     Logic_const.term
                       (TConstCInt64(Int64.of_int 0,IInt,Some("0"))))
                       (Ctype Cil.intType)),
                _1)
            )
# 533 "src/aorai/ltlparser.ml"
               : 'logic_relation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation_mul) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arith_relation) in
    Obj.repr(
# 176 "src/aorai/ltlparser.mly"
            ( new_exp (BinOp(Cil_types.PlusA, _1 , _3 , Cil.intType)) )
# 541 "src/aorai/ltlparser.ml"
               : 'arith_relation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation_mul) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arith_relation) in
    Obj.repr(
# 178 "src/aorai/ltlparser.mly"
            ( new_exp (BinOp(Cil_types.MinusA, _1 , _3 , Cil.intType)) )
# 549 "src/aorai/ltlparser.ml"
               : 'arith_relation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'arith_relation_mul) in
    Obj.repr(
# 180 "src/aorai/ltlparser.mly"
     ( _1 )
# 556 "src/aorai/ltlparser.ml"
               : 'arith_relation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation_mul) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'access_or_const) in
    Obj.repr(
# 186 "src/aorai/ltlparser.mly"
            ( new_exp (BinOp(Cil_types.Div, _1 , _3 , Cil.intType)) )
# 564 "src/aorai/ltlparser.ml"
               : 'arith_relation_mul))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation_mul) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'access_or_const) in
    Obj.repr(
# 188 "src/aorai/ltlparser.mly"
            ( new_exp (BinOp(Cil_types.Mult, _1 , _3 , Cil.intType)) )
# 572 "src/aorai/ltlparser.ml"
               : 'arith_relation_mul))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arith_relation_mul) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'access_or_const) in
    Obj.repr(
# 190 "src/aorai/ltlparser.mly"
            ( new_exp (BinOp(Cil_types.Mod, _1 , _3 , Cil.intType)) )
# 580 "src/aorai/ltlparser.ml"
               : 'arith_relation_mul))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'access_or_const) in
    Obj.repr(
# 192 "src/aorai/ltlparser.mly"
     ( _1 )
# 587 "src/aorai/ltlparser.ml"
               : 'arith_relation_mul))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
    Obj.repr(
# 198 "src/aorai/ltlparser.mly"
            ( new_exp (Const(CInt64(Int64.of_string _1,IIntSome(_1)))))
# 594 "src/aorai/ltlparser.ml"
               : 'access_or_const))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'access) in
    Obj.repr(
# 200 "src/aorai/ltlparser.mly"
            ( new_exp (Lval(_1)) )
# 601 "src/aorai/ltlparser.ml"
               : 'access_or_const))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'arith_relation) in
    Obj.repr(
# 202 "src/aorai/ltlparser.mly"
     ( _2 )
# 608 "src/aorai/ltlparser.ml"
               : 'access_or_const))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'access_array) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'access) in
    Obj.repr(
# 209 "src/aorai/ltlparser.mly"
            ( Aorai_option.fatal "NOT YET IMPLEMENTED : A->B pointed structure filed access." )
# 616 "src/aorai/ltlparser.ml"
               : 'access))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'access) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
    Obj.repr(
# 211 "src/aorai/ltlparser.mly"
            ( let (my_host,my_offset) = (_1) in
              
              let new_offset = Utils_parser.add_offset my_offset (Utils_parser.get_new_offset my_host my_offset _3) in
              (my_host,new_offset))
# 627 "src/aorai/ltlparser.ml"
               : 'access))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'access_array) in
    Obj.repr(
# 216 "src/aorai/ltlparser.mly"
     (_1)
# 634 "src/aorai/ltlparser.ml"
               : 'access))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'access_array) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'access_or_const) in
    Obj.repr(
# 220 "src/aorai/ltlparser.mly"
     ( Cil.addOffsetLval (Index (_3,NoOffset)) _1)
# 642 "src/aorai/ltlparser.ml"
               : 'access_array))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'access_leaf) in
    Obj.repr(
# 222 "src/aorai/ltlparser.mly"
     (_1)
# 649 "src/aorai/ltlparser.ml"
               : 'access_array))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'access) in
    Obj.repr(
# 227 "src/aorai/ltlparser.mly"
            ( Aorai_option.fatal "NOT YET IMPLEMENTED : &A 'address of' access." )
# 656 "src/aorai/ltlparser.ml"
               : 'access_leaf))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'access) in
    Obj.repr(
# 229 "src/aorai/ltlparser.mly"
            ( Aorai_option.fatal "NOT YET IMPLEMENTED : *A dereferencement access.")
# 663 "src/aorai/ltlparser.ml"
               : 'access_leaf))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
    Obj.repr(
# 231 "src/aorai/ltlparser.mly"
     ( Cil.var ( Data_for_aorai.get_varinfo _1) )
# 670 "src/aorai/ltlparser.ml"
               : 'access_leaf))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'access) in
    Obj.repr(
# 233 "src/aorai/ltlparser.mly"
     ( _2 )
# 677 "src/aorai/ltlparser.ml"
               : 'access_leaf))
(* Entry ltl *)
; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
|]