equal
deleted
inserted
replaced
420 for (int i = 0; i < symbol->n; i++) { |
420 for (int i = 0; i < symbol->n; i++) { |
421 symbol_c* dimension = array_dimension_iterator->next(); |
421 symbol_c* dimension = array_dimension_iterator->next(); |
422 if (dimension == NULL) ERROR; |
422 if (dimension == NULL) ERROR; |
423 |
423 |
424 s4o.print("[("); |
424 s4o.print("[("); |
425 symbol->elements[i]->accept(*this); |
425 symbol->get_element(i)->accept(*this); |
426 s4o.print(") - ("); |
426 s4o.print(") - ("); |
427 dimension->accept(*this); |
427 dimension->accept(*this); |
428 s4o.print(")]"); |
428 s4o.print(")]"); |
429 } |
429 } |
430 delete array_dimension_iterator; |
430 delete array_dimension_iterator; |
923 /********************/ |
923 /********************/ |
924 /* B 3.2 Statements */ |
924 /* B 3.2 Statements */ |
925 /********************/ |
925 /********************/ |
926 void *visit(statement_list_c *symbol) { |
926 void *visit(statement_list_c *symbol) { |
927 for(int i = 0; i < symbol->n; i++) { |
927 for(int i = 0; i < symbol->n; i++) { |
928 print_line_directive(symbol->elements[i]); |
928 print_line_directive(symbol->get_element(i)); |
929 s4o.print(s4o.indent_spaces); |
929 s4o.print(s4o.indent_spaces); |
930 symbol->elements[i]->accept(*this); |
930 symbol->get_element(i)->accept(*this); |
931 s4o.print(";\n"); |
931 s4o.print(";\n"); |
932 } |
932 } |
933 return NULL; |
933 return NULL; |
934 } |
934 } |
935 |
935 |
1211 * (__case_expression == 42) || |
1211 * (__case_expression == 42) || |
1212 * (__case_expression >= 15 && __case_expression <= 99)) { |
1212 * (__case_expression >= 15 && __case_expression <= 99)) { |
1213 */ |
1213 */ |
1214 if (0 != i) s4o.print(" ||\n" + s4o.indent_spaces + " "); |
1214 if (0 != i) s4o.print(" ||\n" + s4o.indent_spaces + " "); |
1215 s4o.print("("); |
1215 s4o.print("("); |
1216 subrange_c *subrange = dynamic_cast<subrange_c *>(symbol->elements[i]); |
1216 subrange_c *subrange = dynamic_cast<subrange_c *>(symbol->get_element(i)); |
1217 if (NULL == subrange) { |
1217 if (NULL == subrange) { |
1218 s4o.print("__case_expression == "); |
1218 s4o.print("__case_expression == "); |
1219 symbol->elements[i]->accept(*this); |
1219 symbol->get_element(i)->accept(*this); |
1220 } else { |
1220 } else { |
1221 s4o.print("__case_expression >= "); |
1221 s4o.print("__case_expression >= "); |
1222 subrange->lower_limit->accept(*this); |
1222 subrange->lower_limit->accept(*this); |
1223 s4o.print(" && __case_expression <= "); |
1223 s4o.print(" && __case_expression <= "); |
1224 subrange->upper_limit->accept(*this); |
1224 subrange->upper_limit->accept(*this); |