-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO
57 lines (41 loc) · 1.73 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Lexer
----------------------------------------------------
* Handle escaped \:\) in semantic actions
CSA
----------------------------------------------------
* in Java we can only have one out Attribute, so be sure
to check this when parsing!
TILING
----------------------------------------------------
* Leaf nodes should not call label() but rather assign costs
right away since no patterns have been recorded for them
anyway.
ERROR HANDLING
----------------------------------------------------
* Provide hooks to register custom error handling functions
in case of errors when 'tiling' or 'evaluating' the IR.
Currently this is hard coded.
CODE GENERATION
----------------------------------------------------
* Provide more cues as comments in the generated code
in order to aid the user while pin pointing bugs in
semantic actions to actually generated code.
Grammar
----------------------------------------------------
* How should we indicate start productions? There
are several possibilities:
- Do it as in Coco/R where the identifier used after
the "COMPILER" keyword is re-used in the productions
to indicate the start symbol
- Do it as the CUP Parser Generator for Java
(see http://www.cs.princeton.edu/~appel/modern/java/CUP/)
does it:
'start with program;'
-> Status Quo: the first production is used as the start symbol.
PROS: No new keywords must be defined.
CONS: Rule order matters for the first production.
Testing
----------------------------------------------------
* We should either use HUnit or Quickcheck in order to verify
that certain invariants are met, and that the correct parse
errors and type errors are found and reported.