60 |
char *sval; |
char *sval; |
61 |
} |
} |
62 |
|
|
63 |
|
* Language independent actions |
64 |
|
|
65 |
|
Currently bison, the generator, transforms $1, $$ and so forth into |
66 |
|
direct C code, manipulating the stacks. This is problematic, because |
67 |
|
(i) it means that if we want more languages, we need to update the |
68 |
|
generator, and (ii), it forces names everywhere (e.g., the C++ |
69 |
|
skeleton would be happy to use other naming schemes, and actually, |
70 |
|
even other accessing schemes). |
71 |
|
|
72 |
|
Therefore we want |
73 |
|
|
74 |
|
1. the generator to replace $1, etc. by M4 macro invocations |
75 |
|
(b4_dollar(1), b4_at(3), b4_dollar_dollar) etc. |
76 |
|
|
77 |
|
2. the skeletons to define these macros. |
78 |
|
|
79 |
|
But currently the actions are double-quoted, to protect them from M4 |
80 |
|
evaluation. So we need to: |
81 |
|
|
82 |
|
3. stop quoting them |
83 |
|
|
84 |
|
4. change the [ and ] in the actions into @<:@ and @:>@ |
85 |
|
|
86 |
|
5. extend the postprocessor to maps these back onto [ and ]. |
87 |
|
|
88 |
* Coding system independence |
* Coding system independence |
89 |
Paul notes: |
Paul notes: |
90 |
|
|