X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/2ab9a04ffcf892a695e099c3a01d369d5101b5ea..437c2d80006f7c4729cffd329c106de50dbd4acc:/TODO diff --git a/TODO b/TODO index 52b2457e..7b4b7fd4 100644 --- a/TODO +++ b/TODO @@ -1,50 +1,28 @@ -*- outline -*- -* URGENT: Documenting C++ output -Write a first documentation for C++ output. - +* Header guards -* Error messages -Some are really funky. For instance +From Franc,ois: should we keep the directory part in the CPP guard? - type clash (`%s' `%s') on default action -is really weird. Revisit them all. +* Yacc.c: CPP Macros -* Stupid error messages -An example shows it easily: +Do some people use YYPURE, YYLSP_NEEDED like we do in the test suite? +They should not: it is not documented. But if they need to, let's +find something clean (not like YYLSP_NEEDED...). -src/bison/tests % ./testsuite -k calc,location,error-verbose -l -GNU Bison 1.49a test suite test groups: - NUM: FILENAME:LINE TEST-GROUP-NAME - KEYWORDS - - 51: calc.at:440 Calculator --locations --yyerror-verbose - 52: calc.at:442 Calculator --defines --locations --name-prefix=calc --verbose --yacc --yyerror-verbose - 54: calc.at:445 Calculator --debug --defines --locations --name-prefix=calc --verbose --yacc --yyerror-verbose -src/bison/tests % ./testsuite 51 -d -## --------------------------- ## -## GNU Bison 1.49a test suite. ## -## --------------------------- ## - 51: calc.at:440 ok -## ---------------------------- ## -## All 1 tests were successful. ## -## ---------------------------- ## -src/bison/tests % cd ./testsuite.dir/51 -tests/testsuite.dir/51 % echo "()" | ./calc -1.2-1.3: parse error, unexpected ')', expecting error or "number" or '-' or '(' +* URGENT: Documenting C++ output +Write a first documentation for C++ output. -* read_pipe.c -This is not portable to DOS for instance. Implement a more portable -scheme. Sources of inspiration include GNU diff, and Free Recode. +* Documentation +Before releasing, make sure the documentation refers to the current +`output' format. -* value_components_used -Was defined but not used: where was it coming from? It can't be to -check if %union is used, since the user is free to $n on her -union, doesn't she? +* GLR & C++ +Currently, the GLR parser cannot compile with a C++ compiler. * Report @@ -72,7 +50,7 @@ a sample text exhibiting the (LALR) ambiguity. See the paper from DeRemer and Penello: they already provide the algorithm. -* Extentions +* Extensions ** yyerror, yysymprint interface It should be improved, in particular when using Bison features such as @@ -100,6 +78,17 @@ When implementing multiple-%union support, bare the following in mind: char *sval; } +** %if and the like +It should be possible to have %if/%else/%endif. The implementation is +not clear: should it be lexical or syntactic. Vadim Maslow thinks it +must be in the scanner: we must not parse what is in a switched off +part of %if. Akim Demaille thinks it should be in the parser, so as +to avoid falling into another CPP mistake. + +** -D, --define-muscle NAME=VALUE +To define muscles via cli. Or maybe support directly NAME=VALUE? + + * Unit rules Maybe we could expand unit rules, i.e., transform @@ -121,19 +110,31 @@ this issue. Does anybody have it? * Documentation -** Vocabulary -Explain $axiom (and maybe change its name: BTYacc names it `goal', -byacc `$accept' probably based on AT&T Yacc, Meta `Start'...). -Complete the glossary (item, axiom, ?). Should we also rename `$'? -BYacc uses `$end'. `$eof' is attracting, but after all we may be -parsing a string, a stream etc. - ** History/Bibliography Some history of Bison and some bibliography would be most welcome. Are there any Texinfo standards for bibliography? +* Java, Fortran, etc. + + +** Java + +There are a couple of proposed outputs: + +- BYACC/J + which is based on Byacc. + + +- Bison Java + which is based on Bison. + + +Sébastien Serrurier (serrur_s@epita.fr) is working on this: he is +expected to contact the authors, design the output, and implement it +into Bison. + * Coding system independence Paul notes: @@ -154,21 +155,11 @@ Paul notes: Show reductions. [] * Broken options ? -** %no-lines [ok] ** %no-parser [] -** %pure-parser [] ** %token-table [] -** Options which could use parse_dquoted_param (). -Maybe transfered in lex.c. -*** %skeleton [ok] -*** %output [] -*** %file-prefix [] -*** %name-prefix [] - ** Skeleton strategy. [] Must we keep %no-parser? %token-table? -*** New skeletons. [] * src/print_graph.c Find the best graph parameters. [] @@ -176,7 +167,7 @@ Find the best graph parameters. [] * doc/bison.texinfo ** Update informations about ERROR_VERBOSE. [] -** Add explainations about +** Add explanations about skeleton muscles. [] %skeleton. [] @@ -184,20 +175,19 @@ skeleton muscles. [] ** tests/pure-parser.at [] New tests. -* input synclines -Some users create their foo.y files, and equip them with #line. Bison -should recognize these, and preserve them. - * BTYacc -See if we can integrate backtracking in Bison. Contact the BTYacc -maintainers. +See if we can integrate backtracking in Bison. Charles-Henri de +Boysson is working on this, and already has some +results. Vadim Maslow, the maintainer of BTYacc was contacted, and we +stay in touch with him. Adjusting the Bison grammar parser will be +needed to support some extra BTYacc features. This is less urgent. ** Keeping the conflicted actions First, analyze the differences between byacc and btyacc (I'm referring to the executables). Find where the conflicts are preserved. ** Compare with the GLR tables -See how isomorphic the way BTYacc and the way the GLR adjustements in +See how isomorphic the way BTYacc and the way the GLR adjustments in Bison are compatible. *As much as possible* one should try to use the same implementation in the Bison executables. I insist: it should be very feasible to use the very same conflict tables.