todo: update

Reformulate and give more details on my thoughts concerning the graphical
visualization, and add an entry about a bug in the options processing for
warnings as errors.

* TODO: Here.
This commit is contained in:
Theophile Ranquet
2013-01-31 12:18:37 +01:00
parent 74ce3cfbf6
commit f29f8af3ed

50
TODO
View File

@@ -1,16 +1,50 @@
* Short term
** Laxism in Bison invocation arguments:
The flag_argmatch functions were meant to be generic. The introduction of
-Werror= in generic code is a bit troublesome, and generates weird
behaviour. Because seeing "error=" causes Bison to match the subsequent
categories with a generic procedure, but on a very specific variable, the
following commands are legal, and equivalent:
$ bison -Werror=yacc # OK
$ bison --warnings=error=yacc # err, looks very weird?
$ bison -rerror=itemsets # this value of 'report' enum has a value
# of '1 << 1', just like Wyacc
$ bison --report=error=itemsets # (same)
$ bison -ferror=caret # (same)
$ bison --feature=error=caret # (same)
Basically, writing -rerror={THINGS} or -ferror={FEATURE} is not prohibited,
and results in UB.
I don't think there is any reason for the user to expect anything out of
these options (this implementation-driven behavior is not documented of
course, as it isn't exactly a feature), so this bug isn't critical but
should be addressed some day nonetheless.
** Graphviz display code thoughts
The code for the --graph option is over two files: print_graph, and
graphviz. I believe this is because Bison used to also produce VCG graphs,
but since this is no longer true, maybe we could consider these files for
fusion.
graphviz. This is because Bison used to also produce VCG graphs, but since
this is no longer true, maybe we could consider these files for fusion.
Little effort factoring seems to have been given to factoring in these files,
and their print-xml and print counterpart. We would very much like to re-use
the pretty format of states from .output in the .dot
An other consideration worth noting is that print_graph.c (correct me if I
am wrong) should contain generic functions, whereas graphviz.c and other
potential files should contain just the specific code for that output
format. It will probably prove difficult to tell if the implementation is
actually generic whilst only having support for a single format, but it
would be nice to keep stuff a bit tidier: right now, the construction of the
bitset used to show reductions is in the graphviz-specific code, and on the
opposite side we have some use of \l, which is graphviz-specific, in what
should be generic code.
Also, the underscore in print_graph.[ch] isn't very fitting considering
the dashes in the other filenames.
Little effort seems to have been given to factoring these files and their
rint{,-xml} counterpart. We would very much like to re-use the pretty format
of states from .output for the graphs, etc.
Also, the underscore in print_graph.[ch] isn't very fitting considering the
dashes in the other filenames.
Since graphviz dies on medium-to-big grammars, maybe consider an other tool?
** push-parser
Check it too when checking the different kinds of parsers. And be