Revision c02d255e src/corelang.mli
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 ith 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