Project

General

Profile

« Previous | Next » 

Revision 5538b7ac

Added by Xavier Thirioux about 11 years ago

Added declaration/definition of stateless/stateful nodes.
The 'function' keyword is for stateless nodes only,
the 'node' keyword is any kind of node.
Improves compilation and paves the way for more optimizations.

View differences:

src/corelang.mli
97 97
     mutable node_checks: Dimension.dim_expr list;
98 98
     node_asserts: assert_t list; 
99 99
     node_eqs: eq list;
100
     node_dec_stateless: bool;
100
     mutable node_dec_stateless: bool;
101 101
     mutable node_stateless: bool option;
102 102
     node_spec: LustreSpec.node_annot option;
103 103
     node_annot: LustreSpec.expr_annot option;}
......
153 153
  | No_main_specified
154 154
  | Unbound_symbol of ident
155 155
  | Already_bound_symbol of ident
156
  | Stateful of ident
157 156

  
158 157
exception Error of Location.t * error
159 158

  
......
175 174
val node_inputs: top_decl -> var_decl list
176 175
val node_from_name: ident -> top_decl
177 176
val is_generic_node: top_decl -> bool
178
val check_stateless_node: top_decl -> bool
179 177
val is_imported_node: top_decl -> bool
180 178

  
181 179
val consts_table: (ident, const_desc) Hashtbl.t
......
207 205

  
208 206
val sort_handlers : (label * 'a) list -> (label * 'a) list
209 207

  
210
val is_stateless_expr: expr -> bool
211 208
val is_eq_expr: expr -> expr -> bool
212 209

  
213 210
val pp_error :  Format.formatter -> error -> unit

Also available in: Unified diff