Léonard Gérard
7d3b6a4679
Bug fix Cgen
2010-12-15 11:26:29 +01:00
Léonard Gérard
2ae809c971
Fresh vars, and ident refactoring.
...
Idents.enter_node should be called when entering a node, it is done automagically by the mapfold unless you call directly Hept_mapfold.node_dec.
2010-12-15 11:26:29 +01:00
Léonard Gérard
9998d7ea39
Added a unit type. Tunit.
2010-12-10 00:39:25 +01:00
Léonard Gérard
3e2fb0b4b1
Rename [lhs] to [pattern] in obc
...
lhs was verrrry bad.
2010-11-05 16:27:44 +01:00
Léonard Gérard
7b4f34a521
Cgen only stdbool.h booleans no more TRUE and FALSE.
2010-11-04 18:06:11 +01:00
Léonard Gérard
c47e371a11
assigned a TODO in obc.
2010-10-07 20:19:02 +02:00
Adrien Guatto
6ff8ed993f
Switched back to plain strings for some compiler options.
...
To be consistent or to be convenient, that is the question.
2010-10-04 00:35:12 +02:00
Adrien Guatto
381e4e84f7
Csubst: added missing recursive call for array indexes.
2010-10-02 13:22:04 +02:00
Adrien Guatto
7b6690d443
Cgen: proper assignment from structs.
2010-10-02 13:19:21 +02:00
Adrien Guatto
0ce7b4efb0
Cgen: proper assignments from constant variables.
2010-10-02 13:17:12 +02:00
Adrien Guatto
412fd1f81b
New operator: modulo (written (%))!
2010-10-02 13:01:35 +02:00
Adrien Guatto
faf232ad64
Fixed silent error (missing @.)
2010-10-01 16:49:11 +02:00
Adrien Guatto
a4c3d9e856
Relevant command-line options are now stored as qualnames.
2010-09-30 21:40:04 +02:00
Cédric Pasteur
df12e081ae
Refactored Misc
...
Created two new files:
- utilities/global/compiler_options.ml: contains
the options that can be set using the cli
- utilities/global/errors.ml: contains global
errors definition
Misc now only contains helper functions that have
nothing to do with the ast or the compiler.
2010-09-15 09:38:52 +02:00
Léonard Gérard
02db2ad6b4
Changed compile flags, and cleaned a bit.
...
Warn as error for partial match.
Warn for unused variables : added some TODO to check.
PS : I'll deal with callgraph which is doing things that Modules does.
2010-09-14 09:39:02 +02:00
Cédric Pasteur
d8dffe15d8
Fixed remainings non exhaustive patterns
...
Now the only shown warnings are the X type that
we don't care about
2010-09-13 16:02:33 +02:00
Cédric Pasteur
5aa83246ca
Use qualnames for types and fields in C
...
We need qualnames because we try to find types and
fields in the environment during the generation of
the code.
2010-09-13 15:20:25 +02:00
Cédric Pasteur
50223653a4
Do not forget to flush the output
...
The end of some header files was not printed.
2010-09-13 15:20:17 +02:00
Cédric Pasteur
0b5d1cd471
Do not print Pervasives
2010-09-13 15:20:01 +02:00
Cédric Pasteur
0b12e6a4ae
Enum in Obc should also be qualnames
2010-09-13 15:19:52 +02:00
Cédric Pasteur
3d02b85bd6
Fixed some non exhaustive pattern matchings
...
Added assert_n functions to decompose to get a
tuple from a list of known size, and assert_nmin
when the list has at least n elements.
2010-09-13 15:19:40 +02:00
Cédric Pasteur
653de74a9d
Print qualnames with prefix in C code
...
A qualname is printed as Qual__name
2010-09-13 09:37:58 +02:00
Cédric Pasteur
36addab3cc
Use qualnames in Obc too
2010-09-13 09:03:15 +02:00
Cédric Pasteur
cc039ac42d
Make heptc compile
2010-09-10 14:29:13 +02:00
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
288b0049e4
Improved Obc pretty-printer, still far from perfect.
2010-08-19 12:38:22 +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
Adrien Guatto
c328ecb9bd
Obc_utils can now compute dependencies of an Obc program.
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
dc9bec28bf
Clock refactoring.
2010-07-23 22:13:03 +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
c12f1add0c
Keep params in Obc
...
Remember the parameters of the called node in the
parametrized version of Obc.
2010-07-22 09:44:57 +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
Cédric Pasteur
b6459cdace
Obc_mapfold
...
Because I needed to iterate over Obc and it was
almost as easy to write the generic iterator.
2010-07-21 15:54:41 +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
93fef027f0
Keep the list of static parameters in Obc
2010-07-15 11:31:32 +02:00
Cédric Pasteur
5440a073d6
Fixed generation of C code
2010-07-13 16:23:26 +02:00