-* src/reader.c
-** Complete parse_skel_decl () with parse_dquoted_param (). []
-** Check and cleanup for CPP-out code. []
-
-* src/output.c
-** Output sub-skeleton files. []
-** Cleanup dirty CPP-out code. []
-*** Useful for %no_parser. []
-**** New skeleton. []
-** s/definitions/prologue/ s/user_code/epilogue/. [ok]
-** s/macro/muscle/. [ok]
-** Synchronize `#line' directive with user file. []
-
-* src/getargs.c src/lex.c
-** Synchronize percent and command line options. []
-
-* src/macrotab.[ch]
-** Removing warnings when compiling. (gcc-warnings). [ok]
-** s/macro/muscle/. [ok]
-*** Rename files. []
-*** Rename functions []
-*** Echo modifications src/Makefile src/output.c src/reader.c
-*** src/main.c src/macrotab.c. []
+* Prologue
+The %union is declared after the user C declarations. It can be
+a problem if YYSTYPE is declared after the user part. []
+
+Actually, the real problem seems that the %union ought to be output
+where it was defined. For instance, in gettext/intl/plural.y, we
+have:
+
+ %{
+ ...
+ #include "gettextP.h"
+ ...
+ %}
+
+ %union {
+ unsigned long int num;
+ enum operator op;
+ struct expression *exp;
+ }
+
+ %{
+ ...
+ static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
+ ...
+ %}
+
+Where the first part defines struct expression, the second uses it to
+define YYSTYPE, and the last uses YYSTYPE. Only this order is valid.
+
+* --graph
+Show reductions. []
+
+* Broken options ?
+** %no-lines [ok]
+** %no-parser []
+** %pure-parser []
+** %semantic-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. []