equal
deleted
inserted
replaced
589 return NULL; |
589 return NULL; |
590 } |
590 } |
591 |
591 |
592 /* subscript_list ',' subscript */ |
592 /* subscript_list ',' subscript */ |
593 // SYM_LIST(subscript_list_c) |
593 // SYM_LIST(subscript_list_c) |
594 /* NOTE: we inherit from iterator visitor, so we do not need to implement this method... */ |
594 void *print_datatypes_error_c::visit(subscript_list_c *symbol) { |
595 // void *print_datatypes_error_c::visit(subscript_list_c *symbol) |
595 for (int i = 0; i < symbol->n; i++) { |
|
596 if (NULL == symbol->elements[i]->datatype) |
|
597 STAGE3_ERROR(0, symbol, symbol, "Invalid data type for array subscript field."); |
|
598 } |
|
599 return NULL; |
|
600 } |
596 |
601 |
597 |
602 |
598 /* record_variable '.' field_selector */ |
603 /* record_variable '.' field_selector */ |
599 /* WARNING: input and/or output variables of function blocks |
604 /* WARNING: input and/or output variables of function blocks |
600 * may be accessed as fields of a structured variable! |
605 * may be accessed as fields of a structured variable! |