mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 18:23:03 +00:00
Update.
This commit is contained in:
36
TODO
36
TODO
@@ -12,18 +12,16 @@ They should not: it is not documented. But if they need to, let's
|
|||||||
find something clean (not like YYLSP_NEEDED...).
|
find something clean (not like YYLSP_NEEDED...).
|
||||||
|
|
||||||
|
|
||||||
* URGENT: Documenting C++ output
|
|
||||||
Write a first documentation for C++ output.
|
|
||||||
|
|
||||||
|
|
||||||
* Documentation
|
* Documentation
|
||||||
Before releasing, make sure the documentation ("Understanding your
|
Before releasing, make sure the documentation ("Understanding your
|
||||||
parser") refers to the current `output' format.
|
parser") refers to the current `output' format.
|
||||||
|
|
||||||
|
* lalr1.cc
|
||||||
|
** vector
|
||||||
|
Move to using vector, drop stack.hh.
|
||||||
|
|
||||||
* GLR & C++
|
** I18n
|
||||||
Currently, the GLR parser cannot compile with a C++ compiler.
|
Catch up with yacc.c.
|
||||||
|
|
||||||
|
|
||||||
* Report
|
* Report
|
||||||
|
|
||||||
@@ -52,14 +50,7 @@ DeRemer and Penello: they already provide the algorithm.
|
|||||||
|
|
||||||
* Extensions
|
* Extensions
|
||||||
|
|
||||||
** %destructor
|
** Labeling the symbols
|
||||||
I think we should document it as experimental, and allow its use in
|
|
||||||
the next releases. But we also need to port it to GLR. What about
|
|
||||||
lalr1.cc? Well, read what Hans reported, maybe we don't want
|
|
||||||
%detructor. On the other hand, there is no reason not to provide it:
|
|
||||||
users can avoid its use.
|
|
||||||
|
|
||||||
** $foo
|
|
||||||
Have a look at the Lemon parser generator: instead of $1, $2 etc. they
|
Have a look at the Lemon parser generator: instead of $1, $2 etc. they
|
||||||
can name the values. This is much more pleasant. For instance:
|
can name the values. This is much more pleasant. For instance:
|
||||||
|
|
||||||
@@ -69,6 +60,21 @@ I love this. I have been bitten too often by the removal of the
|
|||||||
symbol, and forgetting to shift all the $n to $n-1. If you are
|
symbol, and forgetting to shift all the $n to $n-1. If you are
|
||||||
unlucky, it compiles...
|
unlucky, it compiles...
|
||||||
|
|
||||||
|
But instead of using $a etc., we can use regular variables. And
|
||||||
|
instead of using (), I propose to use `:' (again). Paul suggests
|
||||||
|
supporting `->' in addition to `:' to separate LHS and RHS. In other
|
||||||
|
words:
|
||||||
|
|
||||||
|
r:exp -> a:exp '+' b:exp { r = a + b; };
|
||||||
|
|
||||||
|
That requires an significant improvement of the grammar parser. Using
|
||||||
|
GLR would be nice. It also requires that Bison know the type of the
|
||||||
|
symbols (which will be useful for %include anyway). So we have some
|
||||||
|
time before...
|
||||||
|
|
||||||
|
Note that there remains the problem of locations: `@r'?
|
||||||
|
|
||||||
|
|
||||||
** $-1
|
** $-1
|
||||||
We should find a means to provide an access to values deep in the
|
We should find a means to provide an access to values deep in the
|
||||||
stack. For instance, instead of
|
stack. For instance, instead of
|
||||||
|
|||||||
Reference in New Issue
Block a user