]> git.saurik.com Git - bison.git/blame_incremental - TODO
Regen.
[bison.git] / TODO
... / ...
CommitLineData
1-*- outline -*-
2
3* Header guards
4
5From Franc,ois: should we keep the directory part in the CPP guard?
6
7
8* Yacc.c: CPP Macros
9
10Do some people use YYPURE, YYLSP_NEEDED like we do in the test suite?
11They should not: it is not documented. But if they need to, let's
12find something clean (not like YYLSP_NEEDED...).
13
14
15* readpipe
16
17It should be replaced to avoid tmp files and to improve portability.
18Also, as it is it does not call error () when execve fails, and
19therefore, running M4='m4 --version' bison will silently fail instead
20of:
21
22 bison: cannot run m4 --version: No such file or directory
23
24BTW: I would really like to be able to pass arguments to m4...
25
26
27* URGENT: Documenting C++ output
28Write a first documentation for C++ output.
29
30
31* Documentation
32Before releasing, make sure the documentation refers to the current
33`output' format.
34
35
36* Error messages
37Some are really funky. For instance
38
39 type clash (`%s' `%s') on default action
40
41is really weird. Revisit them all.
42
43
44* read_pipe.c
45This is not portable to DOS for instance. Implement a more portable
46scheme. Sources of inspiration include GNU diff, and Free Recode.
47
48
49* value_components_used
50Was defined but not used: where was it coming from? It can't be to
51check if %union is used, since the user is free to $<foo>n on her
52union, doesn't she?
53
54
55* GLR & C++
56Currently, the GLR parser cannot compile with a C++ compiler.
57
58
59* Report
60
61** GLR
62How would Paul like to display the conflicted actions? In particular,
63what when two reductions are possible on a given lookahead, but one is
64part of $default. Should we make the two reductions explicit, or just
65keep $default? See the following point.
66
67** Disabled Reductions
68See `tests/conflicts.at (Defaulted Conflicted Reduction)', and decide
69what we want to do.
70
71** Documentation
72Extend with error productions. The hard part will probably be finding
73the right rule so that a single state does not exhibit too many yet
74undocumented ``features''. Maybe an empty action ought to be
75presented too. Shall we try to make a single grammar with all these
76features, or should we have several very small grammars?
77
78** --report=conflict-path
79Provide better assistance for understanding the conflicts by providing
80a sample text exhibiting the (LALR) ambiguity. See the paper from
81DeRemer and Penello: they already provide the algorithm.
82
83
84* Extensions
85
86** yyerror, yysymprint interface
87It should be improved, in particular when using Bison features such as
88locations, and YYPARSE_PARAMS. For the time being, it is recommended
89to #define yyerror and yyprint to steal internal variables...
90
91** Several %unions
92I think this is a pleasant (but useless currently) feature, but in the
93future, I want a means to %include other bits of grammars, and _then_
94it will be important for the various bits to define their needs in
95%union.
96
97When implementing multiple-%union support, bare the following in mind:
98
99- when --yacc, this must be flagged as an error. Don't make it fatal
100 though.
101
102- The #line must now appear *inside* the definition of yystype.
103 Something like
104
105 {
106 #line 12 "foo.y"
107 int ival;
108 #line 23 "foo.y"
109 char *sval;
110 }
111
112* Unit rules
113Maybe we could expand unit rules, i.e., transform
114
115 exp: arith | bool;
116 arith: exp '+' exp;
117 bool: exp '&' exp;
118
119into
120
121 exp: exp '+' exp | exp '&' exp;
122
123when there are no actions. This can significantly speed up some
124grammars. I can't find the papers. In particular the book `LR
125parsing: Theory and Practice' is impossible to find, but according to
126`Parsing Techniques: a Practical Guide', it includes information about
127this issue. Does anybody have it?
128
129
130
131* Documentation
132
133** History/Bibliography
134Some history of Bison and some bibliography would be most welcome.
135Are there any Texinfo standards for bibliography?
136
137
138
139* Java, Fortran, etc.
140
141
142** Java
143
144There are a couple of proposed outputs:
145
146- BYACC/J
147 which is based on Byacc.
148 <http://troi.lincom-asg.com/~rjamison/byacc/>
149
150- Bison Java
151 which is based on Bison.
152 <http://www.goice.co.jp/member/mo/hack-progs/bison-java.html>
153
154