equal
deleted
inserted
replaced
546 } |
546 } |
547 TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO |
547 TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO |
548 #endif |
548 #endif |
549 |
549 |
550 |
550 |
|
551 /********************************/ |
|
552 /* B 1.3.3 - Derived data types */ |
|
553 /********************************/ |
|
554 |
|
555 /* ARRAY '[' array_subrange_list ']' OF non_generic_type_name */ |
|
556 void *visit(array_specification_c *symbol) { |
|
557 symbol->non_generic_type_name->accept(*this); |
|
558 return NULL; |
|
559 } |
|
560 |
551 /*********************/ |
561 /*********************/ |
552 /* B 1.4 - Variables */ |
562 /* B 1.4 - Variables */ |
553 /*********************/ |
563 /*********************/ |
554 |
564 |
555 void *visit(symbolic_variable_c *symbol) { |
565 void *visit(symbolic_variable_c *symbol) { |
674 return NULL; |
684 return NULL; |
675 } |
685 } |
676 |
686 |
677 /* subscript_list ',' subscript */ |
687 /* subscript_list ',' subscript */ |
678 void *visit(subscript_list_c *symbol) { |
688 void *visit(subscript_list_c *symbol) { |
|
689 array_dimension_iterator_c* array_dimension_iterator = new array_dimension_iterator_c(current_array_type); |
679 for (int i = 0; i < symbol->n; i++) { |
690 for (int i = 0; i < symbol->n; i++) { |
680 s4o.print("[__"); |
691 symbol_c* dimension = array_dimension_iterator->next(); |
681 current_array_type->accept(*this); |
692 if (dimension == NULL) ERROR; |
682 s4o.print("_TRANSIDX("); |
693 |
683 print_integer(i); |
694 s4o.print("[("); |
684 s4o.print(","); |
|
685 symbol->elements[i]->accept(*this); |
695 symbol->elements[i]->accept(*this); |
|
696 s4o.print(") - ("); |
|
697 dimension->accept(*this); |
686 s4o.print(")]"); |
698 s4o.print(")]"); |
687 } |
699 } |
|
700 delete array_dimension_iterator; |
688 return NULL; |
701 return NULL; |
689 } |
702 } |
690 |
703 |
691 /******************************************/ |
704 /******************************************/ |
692 /* B 1.4.3 - Declaration & Initialisation */ |
705 /* B 1.4.3 - Declaration & Initialisation */ |