Cédric Pasteur
73bd2d080e
Correctly set the name of generated nodes
2010-07-13 16:01:42 +02:00
Cédric Pasteur
0d9a35a8b6
Fixed Callgraph_mapfold
2010-07-13 15:37:29 +02:00
Cédric Pasteur
dab569d8ad
Add missing case for ifthenelse
2010-07-13 14:42:46 +02:00
Cédric Pasteur
ee767064b1
Instantiation of parametrized nodes (v2)
...
- Many changes to make Hept2mls, mls2obc, etc
compile with the api changes
- Added Callgraph_mapfold: starting from a main
program, generates the list of instances of each
node necessary and creates them.
- Mls2seq deals with giving to the code generators
the correct source (mls or obc, wit or without
static parameters)
It is now possible to use parametrized nodes that
are defined in other files. For that to work, the
first file has to be compiled to an object file:
heptc -c mylib.ept
which creates a mylib.epo file. Compiling the main
file will then generate all the instances of
parametrized nodes from the lib (only the called
nodes will be compiled, but all the nodes in the
main file are compiled).
2010-07-13 14:03:39 +02:00
Cédric Pasteur
b8f69492b9
Add mapfold for other types in Signature
2010-07-13 13:55:29 +02:00
Cédric Pasteur
4598b29ad2
Forgot to move this file too
2010-07-13 08:47:02 +02:00
Cédric Pasteur
e2af987967
Compile fix
2010-07-13 08:38:51 +02:00
Cédric Pasteur
30a78632d2
Fix the order of args in the signature
2010-07-12 10:45:00 +02:00
Cédric Pasteur
eb85bfd282
Fix for tuple consts in Initialization
...
We also need a skeleton fun for consts as there
can be a const tuple
TODO : do the same in Clocking ??
2010-07-12 10:22:57 +02:00
Cédric Pasteur
89249e8252
Fix for Initialization
...
Make eg 0 -> (pre x + 1) legal. This is a temporary
fix until safe/unsafe functions are correctly handled.
2010-07-12 10:16:16 +02:00
Cédric Pasteur
c5184b5d66
Booleans can be used in a switch
2010-07-12 09:25:36 +02:00
Cédric Pasteur
eb625cd5d7
Fix operator args (some args have become static)
2010-07-12 09:07:57 +02:00
Cédric Pasteur
af0d28fda0
More refactoring of reset
...
Use exp option to store resets instead of introducing
a new type.
2010-07-09 16:05:31 +02:00
Cédric Pasteur
f752f895ce
Reset_mapfold
...
- Also refactored most of the code (why the hell
would anyone use arrays to iterate over lists
with an index ?!?)
2010-07-09 15:28:26 +02:00
Cédric Pasteur
9e7c013fe2
Completion_mapfold
...
- Added it_gather combinator to create simply
a version of an iterating function using a gather
to combine accumulator values
Completion_mapfold and every_mapfold seems to work
2010-07-09 13:27:06 +02:00
Cédric Pasteur
e7bd251b35
Added Global_mapfold and Mls_mapfold
...
- Global_mapfold is used to iterate over types
defined in Types or Signature (the iterators
from Types were moved here)
- Mls_mapfold to iterate over Minils AST (we
do not iterate over clocks yet: is it useful ?)
2010-07-09 11:33:17 +02:00
Cédric Pasteur
87cb705fcb
Added some tests file
...
- Arrays, parametrized nodes
- hierarchie.ept is a node with nested automaton
(generated a lot of variables, good test for
performance)
2010-07-09 10:35:54 +02:00
Cédric Pasteur
3153a8f241
Add missing cases
2010-07-09 10:28:16 +02:00
Cédric Pasteur
3bf2d82d45
Make sure to run check_type on every
...
Types declared by the user must be checked (this
will also replaced names with the correct longname).
2010-07-09 10:28:09 +02:00
Cédric Pasteur
03b792a220
Fix for scoping
2010-07-09 09:41:29 +02:00
Cédric Pasteur
ad2594ebfa
Cgen compiles
2010-07-09 09:31:12 +02:00
Cédric Pasteur
23e232cd1f
Rewrite Every using Hept_mapfold
2010-07-08 18:13:32 +02:00
Léonard Gérard
000dc91d69
Heptagon and Types mapfold.
2010-07-08 17:41:00 +02:00
Cédric Pasteur
226ddd5c28
Updates for Obc
2010-07-08 17:22:13 +02:00
Cédric Pasteur
b0a5a7f13e
Heptcheck compiles !!
2010-07-08 15:25:26 +02:00
Cédric Pasteur
68ecd0e781
Added consts in the signature of a module
2010-07-08 15:23:13 +02:00
Léonard Gérard
5baa30f7c1
Last refactor ? and hept_mapred shows in !
2010-07-08 15:22:26 +02:00
Cédric Pasteur
0e224bf368
Port Static to recent api changes
2010-07-08 15:21:30 +02:00
Cédric Pasteur
587ed634ea
Updated Obc Ast
2010-07-08 15:21:30 +02:00
Cédric Pasteur
72ee834641
Proposition for improved Obc AST
2010-07-08 15:20:55 +02:00
Cédric Pasteur
3690585710
Added static records in static_exp
2010-07-08 15:20:55 +02:00
Cédric Pasteur
0b253d22db
typing_static_exp should return the static exp
...
We need to return the static exp because we have
to replace constructor with their longname.
2010-07-08 15:20:54 +02:00
Cédric Pasteur
cee9eed24a
Moved sequential/ to obc/
2010-07-08 15:20:25 +02:00
Cédric Pasteur
662e81d810
Add location and type to static exps
2010-07-08 15:20:25 +02:00
Cédric Pasteur
2fd0860ba8
Renamed Scoping and Parsetree
2010-07-08 15:19:04 +02:00
Cédric Pasteur
7ed81a8950
Moved Obc_printer to a separate file
2010-07-08 15:19:04 +02:00
Cédric Pasteur
978313de1e
Moved sequential to compiler/ dir
2010-07-08 15:19:04 +02:00
Cédric Pasteur
24cea56666
Add support for any type of constants
2010-07-08 15:18:08 +02:00
Léonard Gérard
5cc57cd3b0
Static_exps should be in types. field name of ops is a param.
2010-07-08 15:17:08 +02:00
Cédric Pasteur
037f9be664
Remove unused code
2010-07-08 15:16:27 +02:00
Cédric Pasteur
769cb1d881
Updated ast for Static
...
- Static are used for consts in Heptagon and Minils.
For now, node static parameters remain int only
(ie they are type parameters). Do we need more ?
- Also updated Parsetree AST to the recent changes
in API
2010-07-08 15:16:27 +02:00
Cédric Pasteur
c46896ca55
Same api change in Heptagon as in Minils
2010-07-08 15:12:34 +02:00
Léonard Gérard
3cc1652425
Minils and signature tweaked further.
2010-07-08 15:12:02 +02:00
Léonard Gérard
50bd90183d
Good static Constructors names.
2010-07-08 15:10:59 +02:00
Adrien Guatto
ed280669ec
Efields and Etuple are op
2010-07-08 15:04:57 +02:00
Léonard Gérard
d58e83a985
Proposition 1.
2010-07-08 15:04:57 +02:00
Adrien Guatto
7918332353
Temporary fix for array literals.
2010-07-08 12:44:34 +02:00
Cédric Pasteur
d594ace895
This case is unused
2010-07-07 17:03:36 +02:00
Adrien Guatto
0712378133
Fixed output structure allocation in C backend
2010-07-07 14:44:43 +02:00
Cédric Pasteur
c123000eef
Always generate a f_out struct
...
Generate it even if the node has no output. It
should be noted that it is impossible to call
a node without an output in an Heptagon program.
This is only useful to provide a simple interface
eg for the generation of main().
2010-07-07 09:58:23 +02:00