1247 return NULL; |
1247 return NULL; |
1248 } |
1248 } |
1249 |
1249 |
1250 void *print_datatypes_error_c::visit(while_statement_c *symbol) { |
1250 void *print_datatypes_error_c::visit(while_statement_c *symbol) { |
1251 symbol->expression->accept(*this); |
1251 symbol->expression->accept(*this); |
1252 if (symbol->candidate_datatypes.size() != 1) { |
1252 if (!is_type_valid(symbol->expression->datatype)) { |
1253 STAGE3_ERROR(0, symbol, symbol, "Invalid data type for 'WHILE' condition."); |
1253 STAGE3_ERROR(0, symbol, symbol, "Invalid data type for 'WHILE' condition."); |
1254 return NULL; |
1254 return NULL; |
1255 } |
1255 } |
1256 if (NULL != symbol->statement_list) |
1256 if (NULL != symbol->statement_list) |
1257 symbol->statement_list->accept(*this); |
1257 symbol->statement_list->accept(*this); |
1258 return NULL; |
1258 return NULL; |
1259 } |
1259 } |
1260 |
1260 |
1261 void *print_datatypes_error_c::visit(repeat_statement_c *symbol) { |
1261 void *print_datatypes_error_c::visit(repeat_statement_c *symbol) { |
1262 if (symbol->candidate_datatypes.size() != 1) { |
1262 if (!is_type_valid(symbol->expression->datatype)) { |
1263 STAGE3_ERROR(0, symbol, symbol, "Invalid data type for 'REPEAT' condition."); |
1263 STAGE3_ERROR(0, symbol, symbol, "Invalid data type for 'REPEAT' condition."); |
1264 return NULL; |
1264 return NULL; |
1265 } |
1265 } |
1266 if (NULL != symbol->statement_list) |
1266 if (NULL != symbol->statement_list) |
1267 symbol->statement_list->accept(*this); |
1267 symbol->statement_list->accept(*this); |