X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/c47dc59adc0864783aedce4c60a35016716aef98..b4cbf822eba2133e123d165603bc5542c5662b33:/TODO diff --git a/TODO b/TODO index 567e5b73..27d2c084 100644 --- a/TODO +++ b/TODO @@ -60,6 +60,31 @@ When implementing multiple-%union support, bare the following in mind: char *sval; } +* Language independent actions + +Currently bison, the generator, transforms $1, $$ and so forth into +direct C code, manipulating the stacks. This is problematic, because +(i) it means that if we want more languages, we need to update the +generator, and (ii), it forces names everywhere (e.g., the C++ +skeleton would be happy to use other naming schemes, and actually, +even other accessing schemes). + +Therefore we want + +1. the generator to replace $1, etc. by M4 macro invocations + (b4_dollar(1), b4_at(3), b4_dollar_dollar) etc. + +2. the skeletons to define these macros. + +But currently the actions are double-quoted, to protect them from M4 +evaluation. So we need to: + +3. stop quoting them + +4. change the [ and ] in the actions into @<:@ and @:>@ + +5. extend the postprocessor to maps these back onto [ and ]. + * Coding system independence Paul notes: