equal
deleted
inserted
replaced
687 search_varfb_instance_type = NULL; |
687 search_varfb_instance_type = NULL; |
688 return NULL; |
688 return NULL; |
689 } |
689 } |
690 |
690 |
691 |
691 |
|
692 /********************************************/ |
|
693 /* B 1.6 Sequential function chart elements */ |
|
694 /********************************************/ |
|
695 void *print_datatypes_error_c::visit(transition_condition_c *symbol) { |
|
696 if (symbol->transition_condition_il != NULL) symbol->transition_condition_il->accept(*this); |
|
697 if (symbol->transition_condition_st != NULL) symbol->transition_condition_st->accept(*this); |
|
698 |
|
699 if (!get_datatype_info_c::is_type_valid(symbol->datatype)) |
|
700 STAGE3_ERROR(0, symbol, symbol, "Transition condition has invalid data type (should be BOOL)."); |
|
701 return NULL; |
|
702 } |
|
703 |
692 |
704 |
693 /********************************/ |
705 /********************************/ |
694 /* B 1.7 Configuration elements */ |
706 /* B 1.7 Configuration elements */ |
695 /********************************/ |
707 /********************************/ |
696 void *print_datatypes_error_c::visit(configuration_declaration_c *symbol) { |
708 void *print_datatypes_error_c::visit(configuration_declaration_c *symbol) { |
1161 |
1173 |
1162 void *print_datatypes_error_c::visit(if_statement_c *symbol) { |
1174 void *print_datatypes_error_c::visit(if_statement_c *symbol) { |
1163 symbol->expression->accept(*this); |
1175 symbol->expression->accept(*this); |
1164 if ((!get_datatype_info_c::is_type_valid(symbol->expression->datatype)) && |
1176 if ((!get_datatype_info_c::is_type_valid(symbol->expression->datatype)) && |
1165 (symbol->expression->candidate_datatypes.size() > 0)) { |
1177 (symbol->expression->candidate_datatypes.size() > 0)) { |
1166 STAGE3_ERROR(0, symbol, symbol, "Invalid data type for 'IF' condition."); |
1178 STAGE3_ERROR(0, symbol, symbol, "Invalid data type for 'IF' condition (should be BOOL)."); |
1167 } |
1179 } |
1168 if (NULL != symbol->statement_list) |
1180 if (NULL != symbol->statement_list) |
1169 symbol->statement_list->accept(*this); |
1181 symbol->statement_list->accept(*this); |
1170 if (NULL != symbol->elseif_statement_list) |
1182 if (NULL != symbol->elseif_statement_list) |
1171 symbol->elseif_statement_list->accept(*this); |
1183 symbol->elseif_statement_list->accept(*this); |
1176 |
1188 |
1177 void *print_datatypes_error_c::visit(elseif_statement_c *symbol) { |
1189 void *print_datatypes_error_c::visit(elseif_statement_c *symbol) { |
1178 symbol->expression->accept(*this); |
1190 symbol->expression->accept(*this); |
1179 if ((!get_datatype_info_c::is_type_valid(symbol->expression->datatype)) && |
1191 if ((!get_datatype_info_c::is_type_valid(symbol->expression->datatype)) && |
1180 (symbol->expression->candidate_datatypes.size() > 0)) { |
1192 (symbol->expression->candidate_datatypes.size() > 0)) { |
1181 STAGE3_ERROR(0, symbol, symbol, "Invalid data type for 'ELSIF' condition."); |
1193 STAGE3_ERROR(0, symbol, symbol, "Invalid data type for 'ELSIF' condition (should be BOOL)."); |
1182 } |
1194 } |
1183 if (NULL != symbol->statement_list) |
1195 if (NULL != symbol->statement_list) |
1184 symbol->statement_list->accept(*this); |
1196 symbol->statement_list->accept(*this); |
1185 return NULL; |
1197 return NULL; |
1186 } |
1198 } |