71 null_visitor_c::~null_visitor_c(void) {return;} |
71 null_visitor_c::~null_visitor_c(void) {return;} |
72 |
72 |
73 #define SYM_LIST(class_name_c) \ |
73 #define SYM_LIST(class_name_c) \ |
74 void *null_visitor_c::visit(class_name_c *symbol) {return NULL;} |
74 void *null_visitor_c::visit(class_name_c *symbol) {return NULL;} |
75 |
75 |
76 #define SYM_TOKEN(class_name_c) \ |
76 #define SYM_TOKEN(class_name_c, ...) \ |
77 void *null_visitor_c::visit(class_name_c *symbol) {return NULL;} |
77 void *null_visitor_c::visit(class_name_c *symbol) {return NULL;} |
78 |
78 |
79 #define SYM_REF0(class_name_c) \ |
79 #define SYM_REF0(class_name_c, ...) \ |
80 void *null_visitor_c::visit(class_name_c *symbol) {return NULL;} |
80 void *null_visitor_c::visit(class_name_c *symbol) {return NULL;} |
81 |
81 |
82 #define SYM_REF1(class_name_c, ref1) \ |
82 #define SYM_REF1(class_name_c, ref1, ...) \ |
83 void *null_visitor_c::visit(class_name_c *symbol) {return NULL;} |
83 void *null_visitor_c::visit(class_name_c *symbol) {return NULL;} |
84 |
84 |
85 #define SYM_REF2(class_name_c, ref1, ref2, ...) \ |
85 #define SYM_REF2(class_name_c, ref1, ref2, ...) \ |
86 void *null_visitor_c::visit(class_name_c *symbol) {return NULL;} |
86 void *null_visitor_c::visit(class_name_c *symbol) {return NULL;} |
87 |
87 |
134 |
134 |
135 |
135 |
136 #define SYM_LIST(class_name_c) \ |
136 #define SYM_LIST(class_name_c) \ |
137 void *iterator_visitor_c::visit(class_name_c *symbol) {return visit_list(symbol);} |
137 void *iterator_visitor_c::visit(class_name_c *symbol) {return visit_list(symbol);} |
138 |
138 |
139 #define SYM_TOKEN(class_name_c) \ |
139 #define SYM_TOKEN(class_name_c, ...) \ |
140 void *iterator_visitor_c::visit(class_name_c *symbol) {return NULL;} |
140 void *iterator_visitor_c::visit(class_name_c *symbol) {return NULL;} |
141 |
141 |
142 #define SYM_REF0(class_name_c) \ |
142 #define SYM_REF0(class_name_c, ...) \ |
143 void *iterator_visitor_c::visit(class_name_c *symbol) {return NULL;} |
143 void *iterator_visitor_c::visit(class_name_c *symbol) {return NULL;} |
144 |
144 |
145 #define SYM_REF1(class_name_c, ref1) \ |
145 #define SYM_REF1(class_name_c, ref1, ...) \ |
146 void *iterator_visitor_c::visit(class_name_c *symbol) { \ |
146 void *iterator_visitor_c::visit(class_name_c *symbol) { \ |
147 if (symbol->ref1!=NULL) symbol->ref1->accept(*this); \ |
147 if (symbol->ref1!=NULL) symbol->ref1->accept(*this); \ |
148 return NULL; \ |
148 return NULL; \ |
149 } |
149 } |
150 |
150 |
236 |
236 |
237 |
237 |
238 #define SYM_LIST(class_name_c) \ |
238 #define SYM_LIST(class_name_c) \ |
239 void *search_visitor_c::visit(class_name_c *symbol) {return visit_list(symbol);} |
239 void *search_visitor_c::visit(class_name_c *symbol) {return visit_list(symbol);} |
240 |
240 |
241 #define SYM_TOKEN(class_name_c) \ |
241 #define SYM_TOKEN(class_name_c, ...) \ |
242 void *search_visitor_c::visit(class_name_c *symbol) {return NULL;} |
242 void *search_visitor_c::visit(class_name_c *symbol) {return NULL;} |
243 |
243 |
244 #define SYM_REF0(class_name_c) \ |
244 #define SYM_REF0(class_name_c, ...) \ |
245 void *search_visitor_c::visit(class_name_c *symbol) {return NULL;} |
245 void *search_visitor_c::visit(class_name_c *symbol) {return NULL;} |
246 |
246 |
247 #define SYM_REF1(class_name_c, ref1) \ |
247 #define SYM_REF1(class_name_c, ref1, ...) \ |
248 void *search_visitor_c::visit(class_name_c *symbol) { \ |
248 void *search_visitor_c::visit(class_name_c *symbol) { \ |
249 if (symbol->ref1) return symbol->ref1->accept(*this); \ |
249 if (symbol->ref1) return symbol->ref1->accept(*this); \ |
250 return NULL; \ |
250 return NULL; \ |
251 } |
251 } |
252 |
252 |