forked from seehuhn/wisent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
36 lines (30 loc) · 1.05 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
- the following grammar gives incomprehensible
error messages:
module: function* expr* ;
expr: BARELITERAL+ ;
function: DEF NAME expr ENDDEF ;
- conflict resolution leeds to parse errors:
ABC: a X Y c;
X: b | ! ;
Y: b | ;
cannot parse 'a b b c'. Fix this!
- check the computation of expected tokens in case of parse errors
- don't give an error for grammars like
ABC: ( _X | _Y ) b c;
_X: a;
_Y: a;
- write a proper manual page
- Extend the format of grammar files to allow for arbitrary
(i.e. non-string) symbols in the generated parser. Or allow for an
alternative, Python-based input format.
TERMINOLOGY:
rule, production rule, grammar rule --- r, rule
rule index --- k, key
word, string, sequence
(terminal, nonterminal) symbol, token --- X
symbols have "replacements", "expansions", "derivations"
tranparent symbol: name starts with '_', doesn't appear in parse tree
input: (type,value,data) --- x
parser state as a set --- I, U
item (rule with a dot) --- item
parser state as a number --- state