Commit Graph

21 Commits

Author SHA1 Message Date
Arnaud DABY-SEESARAM
51ed84504f [pre propagation] done. 2022-12-13 14:25:48 +01:00
Antoine Grimod
e9d586dfe7 adding automaton 2022-12-13 11:51:46 +01:00
Arnaud DABY-SEESARAM
19be2200f3 Catch syntax errors 2022-12-13 11:43:23 +01:00
Arnaud DABY-SEESARAM
8ef4d035a3 Reject programs with var initialized twice 2022-12-13 10:26:55 +01:00
Arnaud DABY-SEESARAM
54d806f149 [pp] add typing information 2022-12-10 17:20:02 +01:00
Arnaud DABY-SEESARAM
5551237414 [parser] types of both side of equations are lists 2022-12-10 17:14:54 +01:00
45d64f6960 Add reset keyword 2022-12-10 02:18:04 +01:00
dcf7320c0d Add one-line comment support and make some semi-column optional
Make possible the parsing of the counting example of *Clock-directed Modular Code Generation for Synchronous Data-flow Languages* (https://www.di.ens.fr/~pouzet/bib/lctes08a.pdf).

```
-- count the number of top between two tick
node counting (tick:bool; top:bool)
returns (o: int)
var v: int;
let o = if tick then v else 0 -> pre o + v;
    v = if top then 1 else 0;
tel;
```

The one-line comment rule was inspired from https://mukulrathi.com/create-your-own-programming-language/parsing-ocamllex-menhir/. Note their typo using `single_line_comment` instead of `read_single_line_comment`.
2022-12-10 01:58:09 +01:00
Arnaud DABY-SEESARAM
8775edc6fc [parser] working equation type-checker 2022-12-10 00:33:14 +01:00
a17b3c6fdd Make real type works
Otherwise for the following code:

```
node test (i: real) returns (o: real);
let
    o = 0.0;
tel
```

was experiencing:

```
Fatal error: exception Stdlib.Parsing.Parse_error
Raised at Stdlib__Parsing.yyparse.loop in file "parsing.ml", line 139, characters 8-25
Called from Stdlib__Parsing.yyparse in file "parsing.ml", line 165, characters 4-28
Re-raised at Stdlib__Parsing.yyparse in file "parsing.ml", line 184, characters 8-17
Called from Parser.main in file "parser.ml" (inlined), line 1110, characters 4-44
Called from Main in file "main.ml", line 70, characters 16-68
```

Note that `%token REAL` doesn't help to solve this error, but it doesn't seem to be any reason for not having it.
2022-12-10 00:05:07 +01:00
dsac
eb469bc960 Cleanning after last merge + parser factorisation 2022-12-10 00:00:17 +01:00
Arnaud DABY-SEESARAM
53e356ff55 merge: fby: transformation -> pre dans le parseur 2022-12-09 23:22:05 +01:00
Arnaud DABY-SEESARAM
347cb3a11d [parser] ajout de fby (proposition alternative) + type checker (sera factorisé) 2022-12-09 23:18:13 +01:00
e9dd3fbde4 Add FBY instruction 2022-12-09 22:56:51 +01:00
Arnaud DABY-SEESARAM
a29666f673 [parser] type-checking 2022-12-08 17:52:19 +01:00
Antoine Grimod
0c2341fa0b finished parser for now 2022-12-09 17:01:04 +01:00
Arnaud DABY-SEESARAM
428b0a75e2 [parser] (wip) explicitely typing the language 2022-12-09 16:33:07 +01:00
Arnaud DABY-SEESARAM
f84279c5d8 [parser] fixes + pretty_printers 2022-12-09 15:47:27 +01:00
Arnaud DABY-SEESARAM
74c04a0e4e [parser] new parser, no more pp (for now) 2022-12-09 14:26:28 +01:00
dsac
839f7b77af [parser] adding support for expressions 2022-12-07 21:56:38 +01:00
dsac
e9e5cdcf4d [parser] parses and dumps content (without expressions) 2022-12-07 16:45:55 +01:00