mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-20 17:53:02 +00:00
Language independent actions.
This commit is contained in:
25
TODO
25
TODO
@@ -60,6 +60,31 @@ When implementing multiple-%union support, bare the following in mind:
|
|||||||
char *sval;
|
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
|
* Coding system independence
|
||||||
Paul notes:
|
Paul notes:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user