650 bool error = false; |
650 bool error = false; |
651 |
651 |
652 if (!(this->*is_data_type)(left_type)) { |
652 if (!(this->*is_data_type)(left_type)) { |
653 if (debug) printf("visit_expression_type_c::compute_expression(): invalid left_type\n"); |
653 if (debug) printf("visit_expression_type_c::compute_expression(): invalid left_type\n"); |
654 if (left_expr != NULL) |
654 if (left_expr != NULL) |
655 STAGE3_ERROR(left_expr, left_expr, "Invalid data type of left operand."); |
655 STAGE3_ERROR(left_expr, left_expr, "Invalid data type of operand, or of data resulting from previous IL instructions."); |
656 error = true; |
656 error = true; |
657 } |
657 } |
658 if (!(this->*is_data_type)(right_type)) { |
658 if (!(this->*is_data_type)(right_type)) { |
659 if (debug) printf("visit_expression_type_c::compute_expression(): invalid right_type\n"); |
659 if (debug) printf("visit_expression_type_c::compute_expression(): invalid right_type\n"); |
660 if (right_expr != NULL) |
660 if (right_expr != NULL) |
661 STAGE3_ERROR(right_expr, right_expr, "Invalid data type of right operand."); |
661 STAGE3_ERROR(right_expr, right_expr, "Invalid data type of operand."); |
662 error = true; |
662 error = true; |
663 } |
663 } |
664 if (!is_compatible_type(left_type, right_type)) { |
664 if (!is_compatible_type(left_type, right_type)) { |
665 if (debug) printf("visit_expression_type_c::compute_expression(): left_type & right_type are incompatible\n"); |
665 if (debug) printf("visit_expression_type_c::compute_expression(): left_type & right_type are incompatible\n"); |
666 if ((left_expr != NULL) && (right_expr != NULL)) |
666 if ((left_expr != NULL) && (right_expr != NULL)) |
962 void *visit_expression_type_c::visit(il_simple_operation_c *symbol) { |
962 void *visit_expression_type_c::visit(il_simple_operation_c *symbol) { |
963 if (il_error) |
963 if (il_error) |
964 return NULL; |
964 return NULL; |
965 |
965 |
966 /* determine the data type of the operand */ |
966 /* determine the data type of the operand */ |
|
967 il_operand = symbol->il_operand; |
967 if (symbol->il_operand != NULL){ |
968 if (symbol->il_operand != NULL){ |
968 il_operand_type = base_type((symbol_c *)symbol->il_operand->accept(*this)); |
969 il_operand_type = base_type((symbol_c *)symbol->il_operand->accept(*this)); |
969 } else { |
970 } else { |
970 il_operand_type = NULL; |
971 il_operand_type = NULL; |
971 } |
972 } |
972 /* recursive call to see whether data types are compatible */ |
973 /* recursive call to see whether data types are compatible */ |
973 symbol->il_simple_operator->accept(*this); |
974 symbol->il_simple_operator->accept(*this); |
974 |
975 |
975 il_operand_type = NULL; |
976 il_operand_type = NULL; |
|
977 il_operand = NULL; |
976 return NULL; |
978 return NULL; |
977 } |
979 } |
978 |
980 |
979 // | function_name [il_operand_list] */ |
981 // | function_name [il_operand_list] */ |
980 //SYM_REF2(il_function_call_c, function_name, il_operand_list) |
982 //SYM_REF2(il_function_call_c, function_name, il_operand_list) |
1250 // SYM_REF0(LDN_operator_c) |
1254 // SYM_REF0(LDN_operator_c) |
1251 void *visit_expression_type_c::visit(LDN_operator_c *symbol) { |
1255 void *visit_expression_type_c::visit(LDN_operator_c *symbol) { |
1252 if(il_operand_type == NULL) |
1256 if(il_operand_type == NULL) |
1253 STAGE3_ERROR(symbol, symbol, "LDN operator requires an operand."); |
1257 STAGE3_ERROR(symbol, symbol, "LDN operator requires an operand."); |
1254 if(!is_ANY_BIT_compatible(il_operand_type)) |
1258 if(!is_ANY_BIT_compatible(il_operand_type)) |
1255 STAGE3_ERROR(symbol, symbol, "invalid data type of LDN operand, should be of type ANY_BIT."); |
1259 STAGE3_ERROR(symbol, il_operand, "invalid data type of LDN operand, should be of type ANY_BIT."); |
1256 il_default_variable_type = il_operand_type; |
1260 il_default_variable_type = il_operand_type; |
1257 return NULL; |
1261 return NULL; |
1258 } |
1262 } |
1259 |
1263 |
1260 // SYM_REF0(ST_operator_c) |
1264 // SYM_REF0(ST_operator_c) |
1276 STAGE3_ERROR(symbol, symbol, "Type mismatch in ST operation."); |
1280 STAGE3_ERROR(symbol, symbol, "Type mismatch in ST operation."); |
1277 /* TODO: check whether il_operand_type is an LVALUE !! */ |
1281 /* TODO: check whether il_operand_type is an LVALUE !! */ |
1278 if(!is_ANY_BIT_compatible(il_default_variable_type)) |
1282 if(!is_ANY_BIT_compatible(il_default_variable_type)) |
1279 STAGE3_ERROR(symbol, symbol, "invalid data type of il_default_variable for STN operand, should be of type ANY_BIT."); |
1283 STAGE3_ERROR(symbol, symbol, "invalid data type of il_default_variable for STN operand, should be of type ANY_BIT."); |
1280 if(!is_ANY_BIT_compatible(il_operand_type)) |
1284 if(!is_ANY_BIT_compatible(il_operand_type)) |
1281 STAGE3_ERROR(symbol, symbol, "invalid data type of STN operand, should be of type ANY_BIT."); |
1285 STAGE3_ERROR(symbol, il_operand, "invalid data type of STN operand, should be of type ANY_BIT."); |
1282 /* data type of il_default_variable_type is unchanged... */ |
1286 /* data type of il_default_variable_type is unchanged... */ |
1283 // il_default_variable_type = il_default_variable_type; |
1287 // il_default_variable_type = il_default_variable_type; |
1284 return NULL; |
1288 return NULL; |
1285 } |
1289 } |
1286 |
1290 |
1287 //SYM_REF0(NOT_operator_c) |
1291 //SYM_REF0(NOT_operator_c) |
1288 void *visit_expression_type_c::visit(NOT_operator_c *symbol) { |
1292 void *visit_expression_type_c::visit(NOT_operator_c *symbol) { |
1289 if(il_operand_type != NULL){ |
1293 if(il_operand_type != NULL){ |
1290 STAGE3_ERROR(symbol, symbol, "NOT operator may not have an operand."); |
1294 STAGE3_ERROR(symbol, il_operand, "NOT operator may not have an operand."); |
1291 return NULL; |
1295 return NULL; |
1292 } |
1296 } |
1293 if(il_default_variable_type == NULL) { |
1297 if(il_default_variable_type == NULL) { |
1294 STAGE3_ERROR(symbol, symbol, "Il default variable should not be NULL."); |
1298 STAGE3_ERROR(symbol, symbol, "Il default variable should not be NULL."); |
1295 return NULL; |
1299 return NULL; |
1305 |
1309 |
1306 // SYM_REF0(S_operator_c) |
1310 // SYM_REF0(S_operator_c) |
1307 void *visit_expression_type_c::visit(S_operator_c *symbol) { |
1311 void *visit_expression_type_c::visit(S_operator_c *symbol) { |
1308 verify_null(symbol); |
1312 verify_null(symbol); |
1309 if (!is_BOOL_type(il_default_variable_type)) {STAGE3_ERROR(symbol, symbol, "IL default variable should be BOOL type.");} |
1313 if (!is_BOOL_type(il_default_variable_type)) {STAGE3_ERROR(symbol, symbol, "IL default variable should be BOOL type.");} |
1310 if (!is_BOOL_type(il_operand_type)) {STAGE3_ERROR(symbol, symbol, "operator S requires operand of type BOOL.");} |
1314 if (!is_BOOL_type(il_operand_type)) {STAGE3_ERROR(symbol, il_operand, "operator S requires operand of type BOOL.");} |
1311 /* TODO: check whether il_operand_type is an LVALUE !! */ |
1315 /* TODO: check whether il_operand_type is an LVALUE !! */ |
1312 /* data type of il_default_variable_type is unchanged... */ |
1316 /* data type of il_default_variable_type is unchanged... */ |
1313 // il_default_variable_type = il_default_variable_type; |
1317 // il_default_variable_type = il_default_variable_type; |
1314 return NULL; |
1318 return NULL; |
1315 } |
1319 } |
1316 |
1320 |
1317 // SYM_REF0(R_operator_c) |
1321 // SYM_REF0(R_operator_c) |
1318 void *visit_expression_type_c::visit(R_operator_c *symbol) { |
1322 void *visit_expression_type_c::visit(R_operator_c *symbol) { |
1319 verify_null(symbol); |
1323 verify_null(symbol); |
1320 if (!is_BOOL_type(il_default_variable_type)) {STAGE3_ERROR(symbol, symbol, "IL default variable should be BOOL type.");} |
1324 if (!is_BOOL_type(il_default_variable_type)) {STAGE3_ERROR(symbol, symbol, "IL default variable should be BOOL type.");} |
1321 if (!is_BOOL_type(il_operand_type)) {STAGE3_ERROR(symbol, symbol, "operator R requires operand of type BOOL.");} |
1325 if (!is_BOOL_type(il_operand_type)) {STAGE3_ERROR(symbol, il_operand, "operator R requires operand of type BOOL.");} |
1322 /* TODO: check whether il_operand_type is an LVALUE !! */ |
1326 /* TODO: check whether il_operand_type is an LVALUE !! */ |
1323 /* data type of il_default_variable_type is unchanged... */ |
1327 /* data type of il_default_variable_type is unchanged... */ |
1324 // il_default_variable_type = il_default_variable_type; |
1328 // il_default_variable_type = il_default_variable_type; |
1325 return NULL; |
1329 return NULL; |
1326 } |
1330 } |
1375 } |
1379 } |
1376 |
1380 |
1377 //SYM_REF0(AND_operator_c) |
1381 //SYM_REF0(AND_operator_c) |
1378 void *visit_expression_type_c::visit(AND_operator_c *symbol) { |
1382 void *visit_expression_type_c::visit(AND_operator_c *symbol) { |
1379 verify_null(symbol); |
1383 verify_null(symbol); |
1380 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible); |
1384 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible, |
|
1385 symbol , il_operand); |
1381 return NULL; |
1386 return NULL; |
1382 } |
1387 } |
1383 |
1388 |
1384 //SYM_REF0(OR_operator_c) |
1389 //SYM_REF0(OR_operator_c) |
1385 void *visit_expression_type_c::visit(OR_operator_c *symbol) { |
1390 void *visit_expression_type_c::visit(OR_operator_c *symbol) { |
1386 verify_null(symbol); |
1391 verify_null(symbol); |
1387 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible); |
1392 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible, |
|
1393 symbol , il_operand); |
1388 return NULL; |
1394 return NULL; |
1389 } |
1395 } |
1390 |
1396 |
1391 //SYM_REF0(XOR_operator_c) |
1397 //SYM_REF0(XOR_operator_c) |
1392 void *visit_expression_type_c::visit(XOR_operator_c *symbol) { |
1398 void *visit_expression_type_c::visit(XOR_operator_c *symbol) { |
1393 verify_null(symbol); |
1399 verify_null(symbol); |
1394 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible); |
1400 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible, |
|
1401 symbol , il_operand); |
1395 return NULL; |
1402 return NULL; |
1396 } |
1403 } |
1397 |
1404 |
1398 // SYM_REF0(ANDN_operator_c) |
1405 // SYM_REF0(ANDN_operator_c) |
1399 void *visit_expression_type_c::visit(ANDN_operator_c *symbol) { |
1406 void *visit_expression_type_c::visit(ANDN_operator_c *symbol) { |
1400 verify_null(symbol); |
1407 verify_null(symbol); |
1401 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible); |
1408 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible, |
|
1409 symbol , il_operand); |
1402 return NULL; |
1410 return NULL; |
1403 } |
1411 } |
1404 |
1412 |
1405 // SYM_REF0(ORN_operator_c) |
1413 // SYM_REF0(ORN_operator_c) |
1406 void *visit_expression_type_c::visit(ORN_operator_c *symbol) { |
1414 void *visit_expression_type_c::visit(ORN_operator_c *symbol) { |
1407 verify_null(symbol); |
1415 verify_null(symbol); |
1408 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible); |
1416 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible, |
|
1417 symbol , il_operand); |
1409 return NULL; |
1418 return NULL; |
1410 } |
1419 } |
1411 |
1420 |
1412 // SYM_REF0(XORN_operator_c) |
1421 // SYM_REF0(XORN_operator_c) |
1413 void *visit_expression_type_c::visit(XORN_operator_c *symbol) { |
1422 void *visit_expression_type_c::visit(XORN_operator_c *symbol) { |
1414 verify_null(symbol); |
1423 verify_null(symbol); |
1415 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible); |
1424 il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_BIT_compatible, |
|
1425 symbol , il_operand); |
1416 return NULL; |
1426 return NULL; |
1417 } |
1427 } |
1418 |
1428 |
1419 // SYM_REF0(ADD_operator_c) |
1429 // SYM_REF0(ADD_operator_c) |
1420 void *visit_expression_type_c::visit(ADD_operator_c *symbol) { |
1430 void *visit_expression_type_c::visit(ADD_operator_c *symbol) { |
1444 else if (is_type(left_type, dt_type_name_c) && is_type(right_type, safetime_type_name_c)) |
1454 else if (is_type(left_type, dt_type_name_c) && is_type(right_type, safetime_type_name_c)) |
1445 il_default_variable_type = &dt_type_name; |
1455 il_default_variable_type = &dt_type_name; |
1446 else if (is_type(left_type, safedt_type_name_c) && is_type(right_type, safetime_type_name_c)) |
1456 else if (is_type(left_type, safedt_type_name_c) && is_type(right_type, safetime_type_name_c)) |
1447 il_default_variable_type = &safedt_type_name; |
1457 il_default_variable_type = &safedt_type_name; |
1448 |
1458 |
1449 else il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_MAGNITUDE_compatible); |
1459 else il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_MAGNITUDE_compatible, |
|
1460 symbol , il_operand); |
1450 return NULL; |
1461 return NULL; |
1451 } |
1462 } |
1452 |
1463 |
1453 // SYM_REF0(SUB_operator_c) |
1464 // SYM_REF0(SUB_operator_c) |
1454 void *visit_expression_type_c::visit(SUB_operator_c *symbol) { |
1465 void *visit_expression_type_c::visit(SUB_operator_c *symbol) { |
1505 else if (is_type(left_type, dt_type_name_c) && is_type(right_type, safedt_type_name_c)) |
1516 else if (is_type(left_type, dt_type_name_c) && is_type(right_type, safedt_type_name_c)) |
1506 il_default_variable_type = &time_type_name; |
1517 il_default_variable_type = &time_type_name; |
1507 else if (is_type(left_type, safedt_type_name_c) && is_type(right_type, safedt_type_name_c)) |
1518 else if (is_type(left_type, safedt_type_name_c) && is_type(right_type, safedt_type_name_c)) |
1508 il_default_variable_type = &safetime_type_name; |
1519 il_default_variable_type = &safetime_type_name; |
1509 |
1520 |
1510 else il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_MAGNITUDE_compatible); |
1521 else il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_MAGNITUDE_compatible, |
|
1522 symbol , il_operand); |
1511 return NULL; |
1523 return NULL; |
1512 } |
1524 } |
1513 |
1525 |
1514 // SYM_REF0(MUL_operator_c) |
1526 // SYM_REF0(MUL_operator_c) |
1515 void *visit_expression_type_c::visit(MUL_operator_c *symbol) { |
1527 void *visit_expression_type_c::visit(MUL_operator_c *symbol) { |
1527 * this next line is really only to check for integers/reals of undefined type on 'right_type'... |
1539 * this next line is really only to check for integers/reals of undefined type on 'right_type'... |
1528 */ |
1540 */ |
1529 else if (is_type(left_type, safetime_type_name_c) && is_ANY_NUM_compatible(right_type)) |
1541 else if (is_type(left_type, safetime_type_name_c) && is_ANY_NUM_compatible(right_type)) |
1530 il_default_variable_type = &safetime_type_name; |
1542 il_default_variable_type = &safetime_type_name; |
1531 |
1543 |
1532 else il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_NUM_compatible); |
1544 else il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_NUM_compatible, |
|
1545 symbol , il_operand); |
1533 return NULL; |
1546 return NULL; |
1534 } |
1547 } |
1535 |
1548 |
1536 // SYM_REF0(DIV_operator_c) |
1549 // SYM_REF0(DIV_operator_c) |
1537 void *visit_expression_type_c::visit(DIV_operator_c *symbol) { |
1550 void *visit_expression_type_c::visit(DIV_operator_c *symbol) { |
1549 * this next line is really only to check for integers/reals of undefined type on 'right_type'... |
1562 * this next line is really only to check for integers/reals of undefined type on 'right_type'... |
1550 */ |
1563 */ |
1551 else if (is_type(left_type, safetime_type_name_c) && is_ANY_NUM_compatible(right_type)) |
1564 else if (is_type(left_type, safetime_type_name_c) && is_ANY_NUM_compatible(right_type)) |
1552 il_default_variable_type = &safetime_type_name; |
1565 il_default_variable_type = &safetime_type_name; |
1553 |
1566 |
1554 else il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_NUM_compatible); |
1567 else il_default_variable_type = compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_NUM_compatible, |
|
1568 symbol , il_operand); |
1555 return NULL; |
1569 return NULL; |
1556 } |
1570 } |
1557 |
1571 |
1558 // SYM_REF0(MOD_operator_c) |
1572 // SYM_REF0(MOD_operator_c) |
1559 void *visit_expression_type_c::visit(MOD_operator_c *symbol) { |
1573 void *visit_expression_type_c::visit(MOD_operator_c *symbol) { |
1563 } |
1577 } |
1564 |
1578 |
1565 // SYM_REF0(GT_operator_c) |
1579 // SYM_REF0(GT_operator_c) |
1566 void *visit_expression_type_c::visit(GT_operator_c *symbol) { |
1580 void *visit_expression_type_c::visit(GT_operator_c *symbol) { |
1567 verify_null(symbol); |
1581 verify_null(symbol); |
1568 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible); |
1582 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible, |
|
1583 symbol , il_operand); |
1569 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1584 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1570 return NULL; |
1585 return NULL; |
1571 } |
1586 } |
1572 |
1587 |
1573 //SYM_REF0(GE_operator_c) |
1588 //SYM_REF0(GE_operator_c) |
1574 void *visit_expression_type_c::visit(GE_operator_c *symbol) { |
1589 void *visit_expression_type_c::visit(GE_operator_c *symbol) { |
1575 verify_null(symbol); |
1590 verify_null(symbol); |
1576 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible); |
1591 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible, |
|
1592 symbol , il_operand); |
1577 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1593 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1578 return NULL; |
1594 return NULL; |
1579 } |
1595 } |
1580 |
1596 |
1581 //SYM_REF0(EQ_operator_c) |
1597 //SYM_REF0(EQ_operator_c) |
1582 void *visit_expression_type_c::visit(EQ_operator_c *symbol) { |
1598 void *visit_expression_type_c::visit(EQ_operator_c *symbol) { |
1583 verify_null(symbol); |
1599 verify_null(symbol); |
1584 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible); |
1600 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible, |
|
1601 symbol , il_operand); |
1585 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1602 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1586 return NULL; |
1603 return NULL; |
1587 } |
1604 } |
1588 |
1605 |
1589 //SYM_REF0(LT_operator_c) |
1606 //SYM_REF0(LT_operator_c) |
1590 void *visit_expression_type_c::visit(LT_operator_c *symbol) { |
1607 void *visit_expression_type_c::visit(LT_operator_c *symbol) { |
1591 verify_null(symbol); |
1608 verify_null(symbol); |
1592 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible); |
1609 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible, |
|
1610 symbol , il_operand); |
1593 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1611 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1594 return NULL; |
1612 return NULL; |
1595 } |
1613 } |
1596 |
1614 |
1597 //SYM_REF0(LE_operator_c) |
1615 //SYM_REF0(LE_operator_c) |
1598 void *visit_expression_type_c::visit(LE_operator_c *symbol) { |
1616 void *visit_expression_type_c::visit(LE_operator_c *symbol) { |
1599 verify_null(symbol); |
1617 verify_null(symbol); |
1600 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible); |
1618 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible, |
|
1619 symbol , il_operand); |
1601 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1620 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1602 return NULL; |
1621 return NULL; |
1603 } |
1622 } |
1604 |
1623 |
1605 //SYM_REF0(NE_operator_c) |
1624 //SYM_REF0(NE_operator_c) |
1606 void *visit_expression_type_c::visit(NE_operator_c *symbol) { |
1625 void *visit_expression_type_c::visit(NE_operator_c *symbol) { |
1607 verify_null(symbol); |
1626 verify_null(symbol); |
1608 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible); |
1627 compute_expression(il_default_variable_type, il_operand_type, &visit_expression_type_c::is_ANY_ELEMENTARY_compatible, |
|
1628 symbol , il_operand); |
1609 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1629 il_default_variable_type = &search_expression_type_c::bool_type_name; |
1610 return NULL; |
1630 return NULL; |
1611 } |
1631 } |
1612 |
1632 |
1613 // SYM_REF0(CAL_operator_c) |
1633 // SYM_REF0(CAL_operator_c) |