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