17 |
|
|
18 |
|
|
19 |
* Documentation |
* Documentation |
20 |
Before releasing, make sure the documentation refers to the current |
Before releasing, make sure the documentation ("Understanding your |
21 |
`output' format. |
parser") refers to the current `output' format. |
22 |
|
|
23 |
|
|
24 |
* GLR & C++ |
* GLR & C++ |
52 |
|
|
53 |
* Extensions |
* Extensions |
54 |
|
|
55 |
** yyerror, yysymprint interface |
** %destructor |
56 |
|
I think we should document it as experimental, and allow its use in |
57 |
|
the next releases. But we also need to port it to GLR. What about |
58 |
|
lalr1.cc? Well, read what Hans reported, maybe we don't want |
59 |
|
%detructor. On the other hand, there is no reason not to provide it: |
60 |
|
users can avoid its use. |
61 |
|
|
62 |
|
** $foo |
63 |
|
Have a look at the Lemon parser generator: instead of $1, $2 etc. they |
64 |
|
can name the values. This is much more pleasant. For instance: |
65 |
|
|
66 |
|
exp (res): exp (a) '+' exp (b) { $res = $a + $b; }; |
67 |
|
|
68 |
|
I love this. I have been bitten too often by the removal of the |
69 |
|
symbol, and forgetting to shift all the $n to $n-1. If you are |
70 |
|
unlucky, it compiles... |
71 |
|
|
72 |
|
** $-1 |
73 |
|
We should find a means to provide an access to values deep in the |
74 |
|
stack. For instance, instead of |
75 |
|
|
76 |
|
baz: qux { $$ = $<foo>-1 + $<bar>0 + $1; } |
77 |
|
|
78 |
|
we should be able to have: |
79 |
|
|
80 |
|
foo($foo) bar($bar) baz($bar): qux($qux) { $baz = $foo + $bar + $qux; } |
81 |
|
|
82 |
|
Or something like this. |
83 |
|
|
84 |
|
|
85 |
|
** yysymprint interface |
86 |
It should be improved, in particular when using Bison features such as |
It should be improved, in particular when using Bison features such as |
87 |
locations, and YYPARSE_PARAMS. For the time being, it is recommended |
locations, and YYPARSE_PARAMS. For the time being, it is almost |
88 |
to #define yyerror and yyprint to steal internal variables... |
recommended to yyprint to steal internal variables... |
89 |
|
|
90 |
** Several %unions |
** Several %unions |
91 |
I think this is a pleasant (but useless currently) feature, but in the |
I think this is a pleasant (but useless currently) feature, but in the |