Commit graph

175 commits

Author SHA1 Message Date
Cédric Pasteur 66078effbd Added support for tuples in normalize
- (v1, v2, ... ) fby (e1, e2, ...) is translated to
(v1 fby e1, v2 fby e2, ...)

This has made the code even more complex. This will
need to be refactored at some point.
2010-07-15 17:58:32 +02:00
Cédric Pasteur 0c1860ccbd Fixed problem with tuple consts in Mls2obc 2010-07-15 13:12:11 +02:00
Cédric Pasteur 93fef027f0 Keep the list of static parameters in Obc 2010-07-15 11:31:32 +02:00
Cédric Pasteur aad8545055 Set the correct location for obj_dec 2010-07-15 10:06:16 +02:00
Cédric Pasteur 4f9d6b2d82 Added v_loc in Minils too 2010-07-15 10:02:42 +02:00
Cédric Pasteur 46a09cf369 Make Efield an op (as in Minils)
The fact that this commit mostly removes code proves
that this was a good choice.
2010-07-15 09:56:21 +02:00
Léonard Gérard c657ce8ecb Schedule with the iterator and eqs/var_decs added in mapfold. 2010-07-14 03:45:38 +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 e2af987967 Compile fix 2010-07-13 08:38:51 +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 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
Léonard Gérard d58e83a985 Proposition 1. 2010-07-08 15:04:57 +02:00
Cédric Pasteur 01d0cd02c3 Remove bounds hack in Eselect_dyn
We no longer need to store the bounds as the 
bounds check expression is generated from MiniLS
code where the type is directly available.
2010-06-30 13:46:46 +02:00
Cédric Pasteur b4419a6760 Better deal with memory less nodes
There are now 3 kinds of nodes: Eprim : primitive 
nodes, Enode: nodes with memory, Efun: nodes 
without memory.

Typing now sets correct eq_statefull and b_statefull
for equations and blocks. Resets are only added 
when a node with memory is called.

The calling convention is the generated code needs
to be modified so that we can remove the context 
for nodes without memory.
2010-06-30 13:37:54 +02:00
Léonard Gérard 0c5a8d8ffe compilers refactoring. and bug fix of heptc vs heptcheck. 2010-06-29 19:21:07 +02:00
Léonard Gérard 7c0c2e0415 v_name -> v_ident for idents.... 2010-06-29 19:21:01 +02:00
Léonard Gérard 0f2d046d59 Gros blop pour que Mlsc compile.
-* Séparation du fichier minils avec création de mls_utils
-* Lexer et Parser qui fonctionnent (pas complets encore)
-* Use of menhir with --explain pour debug du parser
-* Quelques refactoring (ident/name...)
2010-06-28 18:06:39 +02:00
Adrien Guatto ff07d77667 Assertion generation for C back-end. 2010-06-27 23:28:38 +02:00
Adrien Guatto b4ddefa65c Tabs, trailing ws and long lines shall receive no mercy! 2010-06-26 17:17:28 +02:00
Cédric Pasteur c57ae52862 Do not forget to write the interface file 2010-06-24 05:01:10 +02:00
Léonard Gérard 9fff8e4ad8 Refactoring and organisation.
Separate parser, lexer and printer of hpetagon (Hetp_*) from the minils ones (Mls_*)
ident_of_var -> ident_of_name
get_current_location -> current_loc
2010-06-24 03:30:14 +02:00
Léonard Gérard 60a3ad15f8 move to subfolder compiler. 2010-06-21 11:58:57 +02:00