From: Akim Demaille Date: Wed, 24 Apr 2002 11:23:13 +0000 (+0000) Subject: Language independent actions. X-Git-Tag: BISON-1_49a~14 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/b4cbf822eba2133e123d165603bc5542c5662b33 Language independent actions. --- 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: