Project

General

Profile

Revision c02d255e src/corelang.mli

View differences:

src/corelang.mli
45 45
type var_decl = LustreSpec.var_decl
46 46

  
47 47
type expr =
48
    {expr_tag: tag; (* Unique identifier *)
49
     expr_desc: expr_desc;
50
     mutable expr_type: Types.type_expr;
51
     mutable expr_clock: Clocks.clock_expr;
52
     mutable expr_delay: Delay.delay_expr;
53
     mutable expr_annot: LustreSpec.expr_annot option;
54
     expr_loc: Location.t}
48
  {expr_tag: tag; (* Unique identifier *)
49
   expr_desc: expr_desc;
50
   mutable expr_type: Types.type_expr;
51
   mutable expr_clock: Clocks.clock_expr;
52
   mutable expr_delay: Delay.delay_expr; (* Used for the initialisation check *)
53
   mutable expr_annot: LustreSpec.expr_annot option; (* Spec *)
54
   expr_loc: Location.t}
55 55

  
56 56
and expr_desc =
57
  | Expr_const of constant
58
  | Expr_ident of ident
59
  | Expr_tuple of expr list
60
  | Expr_ite   of expr * expr * expr
61
  | Expr_arrow of expr * expr
62
  | Expr_fby of expr * expr
63
  | Expr_array of expr list
64
  | Expr_access of expr * Dimension.dim_expr
65
  | Expr_power of expr * Dimension.dim_expr
66
  | Expr_pre of expr
67
  | Expr_when of expr * ident * label
68
  | Expr_merge of ident * (label * expr) list
69
  | Expr_appl of ident * expr * (ident * label) option
70
  | Expr_uclock of expr * int
71
  | Expr_dclock of expr * int
72
  | Expr_phclock of expr * rat
57
| Expr_const of constant
58
| Expr_ident of ident
59
| Expr_tuple of expr list
60
| Expr_ite   of expr * expr * expr
61
| Expr_arrow of expr * expr
62
| Expr_fby of expr * expr
63
| Expr_array of expr list
64
| Expr_access of expr * Dimension.dim_expr (* acces(e,i) is the i-th element 
65
					      of array epxression e *)
66
| Expr_power of expr * Dimension.dim_expr (* power(e,n) is the array of 
67
					     size n filled with expression e *)
68
| Expr_pre of expr
69
| Expr_when of expr * ident * label
70
| Expr_merge of ident * (label * expr) list
71
| Expr_appl of call_t
72
| Expr_uclock of expr * int
73
| Expr_dclock of expr * int
74
| Expr_phclock of expr * rat
75
and call_t = ident * expr * (ident * label) option (* The third part denotes the reseting clock label and value *)
73 76

  
74 77
type assert_t = 
75 78
    {
......
223 226
val expr_replace_var: (ident -> ident) -> expr -> expr
224 227
val eq_replace_rhs_var: (ident -> bool) -> (ident -> ident) -> eq -> eq
225 228

  
229
(** rename_prog f_node f_var f_const prog *)
230
val rename_prog: (ident -> ident) -> (ident -> ident) -> (ident -> ident) -> program -> program
231

  
226 232
val update_expr_annot: expr -> LustreSpec.expr_annot -> expr
227 233

  
228 234

  

Also available in: Unified diff