let mk_action ~loc a =
let term_lval lv =
Logic_const.term ~loc (TLval lv) (Cil.typeOfTermLval lv)
in
match a with
| Counter_init lv ->
[Logic_const.prel ~loc
(Req, term_lval lv, Logic_const.tinteger ~loc ~ikind:IInt 1)]
| Counter_incr lv ->
[Logic_const.prel ~loc
(Req, term_lval lv,
Logic_const.term ~loc
(TBinOp (PlusA,
Logic_const.told ~loc (term_lval lv),
Logic_const.tinteger ~loc ~ikind:IInt 1))
(Cil.typeOfTermLval lv))]
| Pebble_init _ | Pebble_move _ -> []
| Copy_value (lv,t) ->
[Logic_const.prel ~loc
(Req, term_lval lv, Logic_const.told t)]