76 |
76 |
77 #include "absyntax.hh" |
77 #include "absyntax.hh" |
78 |
78 |
79 |
79 |
80 |
80 |
81 #define SYM_LIST(class_name_c, ...) \ |
81 #define SYM_LIST(class_name_c, ...) virtual void *visit(class_name_c *symbol) = 0; |
82 virtual void *visit(class_name_c *symbol) = 0; |
82 #define SYM_TOKEN(class_name_c, ...) virtual void *visit(class_name_c *symbol) = 0; |
83 |
83 #define SYM_REF0(class_name_c, ...) virtual void *visit(class_name_c *symbol) = 0; |
84 #define SYM_TOKEN(class_name_c, ...) \ |
84 #define SYM_REF1(class_name_c, ref1, ...) virtual void *visit(class_name_c *symbol) = 0; |
85 virtual void *visit(class_name_c *symbol) = 0; |
85 #define SYM_REF2(class_name_c, ref1, ref2, ...) virtual void *visit(class_name_c *symbol) = 0; |
86 |
86 #define SYM_REF3(class_name_c, ref1, ref2, ref3, ...) virtual void *visit(class_name_c *symbol) = 0; |
87 #define SYM_REF0(class_name_c, ...) \ |
87 #define SYM_REF4(class_name_c, ref1, ref2, ref3, ref4, ...) virtual void *visit(class_name_c *symbol) = 0; |
88 virtual void *visit(class_name_c *symbol) = 0; |
88 #define SYM_REF5(class_name_c, ref1, ref2, ref3, ref4, ref5, ...) virtual void *visit(class_name_c *symbol) = 0; |
89 |
89 #define SYM_REF6(class_name_c, ref1, ref2, ref3, ref4, ref5, ref6, ...) virtual void *visit(class_name_c *symbol) = 0; |
90 #define SYM_REF1(class_name_c, ref1, ...) \ |
|
91 virtual void *visit(class_name_c *symbol) = 0; |
|
92 |
|
93 #define SYM_REF2(class_name_c, ref1, ref2, ...) \ |
|
94 virtual void *visit(class_name_c *symbol) = 0; |
|
95 |
|
96 #define SYM_REF3(class_name_c, ref1, ref2, ref3, ...) \ |
|
97 virtual void *visit(class_name_c *symbol) = 0; |
|
98 |
|
99 #define SYM_REF4(class_name_c, ref1, ref2, ref3, ref4, ...) \ |
|
100 virtual void *visit(class_name_c *symbol) = 0; |
|
101 |
|
102 #define SYM_REF5(class_name_c, ref1, ref2, ref3, ref4, ref5, ...) \ |
|
103 virtual void *visit(class_name_c *symbol) = 0; |
|
104 |
|
105 #define SYM_REF6(class_name_c, ref1, ref2, ref3, ref4, ref5, ref6, ...) \ |
|
106 virtual void *visit(class_name_c *symbol) = 0; |
|
107 |
90 |
108 class visitor_c { |
91 class visitor_c { |
109 public: |
92 public: |
110 #include "absyntax.def" |
93 #include "absyntax.def" |
111 |
94 |
125 |
108 |
126 |
109 |
127 |
110 |
128 |
111 |
129 |
112 |
130 #define SYM_LIST(class_name_c, ...) \ |
113 #define SYM_LIST(class_name_c, ...) virtual void *visit(class_name_c *symbol); |
131 virtual void *visit(class_name_c *symbol); |
114 #define SYM_TOKEN(class_name_c, ...) virtual void *visit(class_name_c *symbol); |
132 |
115 #define SYM_REF0(class_name_c, ...) virtual void *visit(class_name_c *symbol); |
133 #define SYM_TOKEN(class_name_c, ...) \ |
116 #define SYM_REF1(class_name_c, ref1, ...) virtual void *visit(class_name_c *symbol); |
134 virtual void *visit(class_name_c *symbol); |
117 #define SYM_REF2(class_name_c, ref1, ref2, ...) virtual void *visit(class_name_c *symbol); |
135 |
118 #define SYM_REF3(class_name_c, ref1, ref2, ref3, ...) virtual void *visit(class_name_c *symbol); |
136 #define SYM_REF0(class_name_c, ...) \ |
119 #define SYM_REF4(class_name_c, ref1, ref2, ref3, ref4, ...) virtual void *visit(class_name_c *symbol); |
137 virtual void *visit(class_name_c *symbol); |
120 #define SYM_REF5(class_name_c, ref1, ref2, ref3, ref4, ref5, ...) virtual void *visit(class_name_c *symbol); |
138 |
121 #define SYM_REF6(class_name_c, ref1, ref2, ref3, ref4, ref5, ref6, ...) virtual void *visit(class_name_c *symbol); |
139 #define SYM_REF1(class_name_c, ref1, ...) \ |
|
140 virtual void *visit(class_name_c *symbol); |
|
141 |
|
142 #define SYM_REF2(class_name_c, ref1, ref2, ...) \ |
|
143 virtual void *visit(class_name_c *symbol); |
|
144 |
|
145 #define SYM_REF3(class_name_c, ref1, ref2, ref3, ...) \ |
|
146 virtual void *visit(class_name_c *symbol); |
|
147 |
|
148 #define SYM_REF4(class_name_c, ref1, ref2, ref3, ref4, ...) \ |
|
149 virtual void *visit(class_name_c *symbol); |
|
150 |
|
151 #define SYM_REF5(class_name_c, ref1, ref2, ref3, ref4, ref5, ...) \ |
|
152 virtual void *visit(class_name_c *symbol); |
|
153 |
|
154 #define SYM_REF6(class_name_c, ref1, ref2, ref3, ref4, ref5, ref6, ...) \ |
|
155 virtual void *visit(class_name_c *symbol); |
|
156 |
122 |
157 |
123 |
158 |
124 |
159 |
125 |
160 |
126 |