X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/401b73afdf9694e0d9380968ebfd21d837045a2c..47eced3099712180364f4e01b839242027d9a9d8:/TODO diff --git a/TODO b/TODO index d244a828..c3aac317 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,28 @@ -*- outline -*- * Short term +** Use syntax_error from the scanner? +This would provide a means to raise syntax error from function called +from the scanner. Actually, there is no good solution to report a +lexical error in general. Usually they are kept at the scanner level +only, ignoring the guilty token. But that might not be the best bet, +since we don't benefit from the syntactic error recovery. + +We still have the possibility to return an invalid token number, which +does the trick. But then the error message from the parser is poor +(something like "unexpected $undefined"). Since the scanner probably +already reported the error, we should directly enter error-recovery, +without reporting the error message (i.e., YYERROR's semantics). + +Back to lalr1.cc (whose name is now quite unfortunate, since it also +covers lr and ielr), if we support exceptions from yylex, should we +propose a lexical_error in addition to syntax_error? Should they have +a common root, say parse_error? Should syntax_error be renamed +syntactic_error for consistency with lexical_error? + +** Variable names. +What should we name `variant' and `lex_symbol'? + ** Use b4_symbol in all the skeleton Then remove the older system, including the tables generated by output.c @@ -194,6 +216,13 @@ parser") refers to the current `output' format. * Report +** Figures +Some statistics about the grammar and the parser would be useful, +especially when asking the user to send some information about the +grammars she is working on. We should probably also include some +information about the variables (I'm not sure for instance we even +specify what LR variant was used). + ** GLR How would Paul like to display the conflicted actions? In particular, what when two reductions are possible on a given lookahead token, but one is