Commit graph

24 commits

Author SHA1 Message Date
Léonard Gérard
43b8bc15b0 Some Cgen fixes. 2010-09-10 11:53:55 +02:00
Léonard Gérard
a54e570d0f Hept Scoping should be ok and documented,
Hept Parsing too,
all the reset to review carefully,
Typing to cut from all the scoping.
2010-09-09 19:48:20 +02:00
Cédric Pasteur
2956e6feb4 Fix printing of arrays in C code
It should be 
  f(int a[5])
instead of 
  f(int *a)
because the second one does not scale for 
multidimensional arrays, eg
  g(int b[10][5]) is ok
but
  g(int **b) is not.
2010-09-03 15:27:58 +02:00
Adrien Guatto
1d8f2f2a85 Removed useless code for old module handling in cgen. 2010-09-03 11:50:52 +02:00
Léonard Gérard
5c09abeb18 Revet last commit a5f89876c2 and gives the right fix.
Plus remove all the forbidden '\n', replaced with '@.' or '@\n' depending on context.
2010-09-01 14:40:31 +02:00
Léonard Gérard
9df4f625a2 Fixed location to use formatter instead of out_channel. 2010-08-24 17:29:00 +02:00
Adrien Guatto
41bad3d8c4 C backend: "bool" type mandates the inclusion of stdbool.h 2010-07-30 12:44:12 +02:00
Adrien Guatto
f7d08ca221 C backend: put the C code for node_decs into the same file. 2010-07-27 16:28:23 +02:00
Cédric Pasteur
02dd7fa124 Added alias for types (aka typedef)
For instance:
type metres = int
type metres = MyLib.longueur
type matrice = metres^10^100

Code generation in C (with typedef) included. The 
code uses the aliases for traceability.
2010-07-27 09:23:16 +02:00
Léonard Gérard
f124bb4fd7 Refactoring Ident -> Idents ( uniform with Names etc ) 2010-07-23 19:45:19 +02:00
Adrien Guatto
689a10a328 Cgen: $NODE_mem.h should not include itself. 2010-07-23 12:18:27 +02:00
Cédric Pasteur
89ceb8df76 Fixed duplicate declaration of local vars 2010-07-22 17:38:28 +02:00
Cédric Pasteur
1be9f1c789 Fixed code generation for Elambda
- Added block notion in Obc
- Correct translation to C
2010-07-22 09:36:22 +02:00
Adrien Guatto
9301ed0b09 Fixes for correct array literal C generation. 2010-07-19 15:16:14 +02:00
Cédric Pasteur
b6583f22b6 Complete fix for the identifiers problem 2010-07-16 14:09:37 +02:00
Cédric Pasteur
d42e56203b Fix for identifiers in C
Instead of calling cname_of_name before creating 
the C ast, keep original names and convert them
when pretty printing the code.
2010-07-16 13:48:37 +02:00
Cédric Pasteur
cdc9b14a44 Fixed problem with multidimensional arrays in args 2010-07-16 12:38:45 +02:00
Cédric Pasteur
778dfdb3f9 Do not loop forever during code generation
- Detect when the computation of the static exp
using simplif failed and abort.
- Added a better way to compute operators in
Static
2010-07-16 12:04:51 +02:00
Cédric Pasteur
3f7564aaa6 Fix for code generation
A node declared with node is statefull (so has a
context struct) even though it is empty. Use
the global_name ref to get the name of the current 
module.
2010-07-16 11:28:01 +02:00
Cédric Pasteur
5440a073d6 Fixed generation of C code 2010-07-13 16:23:26 +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
4598b29ad2 Forgot to move this file too 2010-07-13 08:47:02 +02:00
Cédric Pasteur
ad2594ebfa Cgen compiles 2010-07-09 09:31:12 +02:00
Cédric Pasteur
cee9eed24a Moved sequential/ to obc/ 2010-07-08 15:20:25 +02:00