diff --git a/harbour/ChangeLog b/harbour/ChangeLog index bb1a0c16c5..deaa0349cb 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,23 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-06-14 00:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbcompat.ch + + added translation rules for extended code blocks + + * harbour/source/compiler/gencc.c + * cleaned C compiler warnings in -gc3 output and SWITCH + statement + + * harbour/source/compiler/complex.c + * harbour/source/compiler/harbour.y + * harbour/source/compiler/harbour.yyc + * allow to use 0d0 and 0d00000000 as empty date value + + * harbour/source/pp/Makefile + * workaround for problems with some GNU make versions, + f.e. 3.76.1 on OS2 + 2007-06-12 23:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/contrib/rdd_ads/ads1.c * cleaned BCC warning diff --git a/harbour/include/hbcompat.ch b/harbour/include/hbcompat.ch index f23d08a328..1f5993e5d4 100644 --- a/harbour/include/hbcompat.ch +++ b/harbour/include/hbcompat.ch @@ -126,6 +126,10 @@ #xcommand CATCH [] => RECOVER [USING ] <-oErr-> #xcommand FINALLY => ALWAYS + /* EXTENDED CODEBLOCKs */ + #xtranslate \<|[]| => {|| + #xcommand > [<*x*>] => } + #endif #endif /* __HARBOUR__ */ diff --git a/harbour/source/compiler/complex.c b/harbour/source/compiler/complex.c index 6703b6161c..112b0f659b 100644 --- a/harbour/source/compiler/complex.c +++ b/harbour/source/compiler/complex.c @@ -335,6 +335,13 @@ int hb_complex( YYSTYPE *yylval_ptr, HB_COMP_DECL ) } else yylval_ptr->valLong.lNumber = 0; + + if( yylval_ptr->valLong.lNumber == 0 && + strcmp( pToken->value + 2, "0" ) != 0 && + strcmp( pToken->value + 2, "00000000" ) != 0 ) + { + hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_INVALID_DATE, pToken->value, NULL ); + } return NUM_DATE; case HB_PP_TOKEN_STRING: diff --git a/harbour/source/compiler/gencc.c b/harbour/source/compiler/gencc.c index 785dc55452..497291681e 100644 --- a/harbour/source/compiler/gencc.c +++ b/harbour/source/compiler/gencc.c @@ -1621,22 +1621,59 @@ static HB_GENC_FUNC( hb_p_switch ) { USHORT usCases = HB_PCODE_MKUSHORT( &pFunc->pCode[ lPCodePos + 1 ] ), us; ULONG ulStart = lPCodePos, ulNewPos; + BOOL fNum = FALSE, fStr = FALSE; HB_GENC_LABEL(); - fprintf( cargo->yyc, "\t{\n\t\tPHB_ITEM pSwitch = hb_stackItemFromTop( -1 );\n" - "\t\tHB_TYPE type = hb_itemType( pSwitch );\n" - "\t\tchar * pszText = (type & HB_IT_STRING) ? hb_itemGetCPtr( pSwitch ) : NULL;\n" - "\t\tlong lVal = (type & HB_IT_NUMINT) ? hb_itemGetNL( pSwitch ) : 0;\n\n" ); + for( us = 0; us < usCases; ++us ) + { + switch( pFunc->pCode[ lPCodePos ] ) + { + case HB_P_PUSHLONG: + fNum = TRUE; + lPCodePos += 5; + break; + case HB_P_PUSHSTRSHORT: + fStr = TRUE; + lPCodePos += 2 + pFunc->pCode[ lPCodePos + 1 ]; + break; + case HB_P_PUSHNIL: + /* default clause */ + lPCodePos++; + break; + } + switch( pFunc->pCode[ lPCodePos ] ) + { + case HB_P_JUMPNEAR: + ulNewPos = lPCodePos + ( signed char ) pFunc->pCode[ lPCodePos + 1 ]; + lPCodePos += 2; + break; + case HB_P_JUMP: + ulNewPos = lPCodePos + HB_PCODE_MKSHORT( &pFunc->pCode[ lPCodePos + 1 ] ); + lPCodePos += 3; + break; + /*case HB_P_JUMPFAR:*/ + default: + ulNewPos = lPCodePos + HB_PCODE_MKINT24( &pFunc->pCode[ lPCodePos + 1 ] ); + lPCodePos += 4; + break; + } + } + + lPCodePos = ulStart; + if( fStr || fNum ) + { + fprintf( cargo->yyc, "\t{\n\t\tPHB_ITEM pSwitch = hb_stackItemFromTop( -1 );\n" + "\t\tHB_TYPE type = hb_itemType( pSwitch );\n" ); + if( fStr ) + fprintf( cargo->yyc, "\t\tchar * pszText = (type & HB_IT_STRING) ? hb_itemGetCPtr( pSwitch ) : NULL;\n" ); + if( fNum ) + fprintf( cargo->yyc, "\t\tlong lVal = (type & HB_IT_NUMINT) ? hb_itemGetNL( pSwitch ) : 0;\n\n" ); + } + lPCodePos += 3; for( us = 0; us < usCases; ++us ) { -#if 0 - /* only for test function - can be removed */ - if( lPCodePos >= pFunc->lPCodePos ) - break; -#endif - switch( pFunc->pCode[ lPCodePos ] ) { case HB_P_PUSHLONG: diff --git a/harbour/source/compiler/harbour.y b/harbour/source/compiler/harbour.y index a3355273ba..357adaf2fb 100644 --- a/harbour/source/compiler/harbour.y +++ b/harbour/source/compiler/harbour.y @@ -549,12 +549,7 @@ NumValue : NUM_DOUBLE { $$ = hb_compExprNewDouble( $1.dNumber, $1.bWi | NUM_LONG { $$ = hb_compExprNewLong( $1.lNumber, HB_COMP_PARAM ); } ; -DateValue : NUM_DATE { $$ = hb_compExprNewDate( $1.lNumber, HB_COMP_PARAM ); - if( $1.lNumber == 0 ) - { - hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_INVALID_DATE, HB_COMP_PARAM->pLex->lasttok, NULL ); - } - } +DateValue : NUM_DATE { $$ = hb_compExprNewDate( $1.lNumber, HB_COMP_PARAM ); } ; NumAlias : NUM_LONG ALIASOP { $$ = hb_compExprNewLong( $1.lNumber, HB_COMP_PARAM ); } diff --git a/harbour/source/compiler/harbour.yyc b/harbour/source/compiler/harbour.yyc index 85b1530f75..92410c7a43 100644 --- a/harbour/source/compiler/harbour.yyc +++ b/harbour/source/compiler/harbour.yyc @@ -1023,55 +1023,55 @@ static const yytype_uint16 yyrline[] = 506, 507, 510, 511, 514, 515, 518, 519, 522, 523, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 548, 549, - 552, 560, 561, 566, 569, 574, 580, 585, 590, 591, - 594, 599, 602, 613, 616, 621, 624, 627, 628, 631, - 634, 635, 640, 643, 648, 649, 652, 657, 660, 667, - 668, 673, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 689, 690, 691, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 722, 723, - 724, 725, 726, 727, 732, 733, 734, 735, 736, 737, - 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, - 748, 749, 752, 755, 755, 758, 759, 759, 760, 760, - 764, 767, 770, 771, 774, 775, 778, 779, 780, 781, - 782, 785, 786, 791, 792, 793, 799, 800, 801, 804, - 807, 812, 812, 815, 824, 825, 826, 827, 828, 829, - 830, 831, 831, 832, 833, 834, 835, 836, 837, 838, - 839, 840, 841, 841, 842, 843, 844, 844, 845, 846, - 846, 847, 848, 849, 850, 851, 852, 853, 854, 857, - 858, 859, 860, 860, 861, 861, 862, 865, 866, 869, - 870, 873, 874, 875, 876, 877, 878, 879, 886, 887, - 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, - 898, 899, 900, 901, 902, 903, 904, 905, 906, 912, - 913, 916, 919, 920, 923, 924, 925, 928, 929, 930, - 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, - 941, 942, 943, 944, 945, 946, 947, 948, 951, 954, - 957, 960, 963, 966, 969, 972, 973, 974, 975, 976, - 977, 980, 981, 982, 983, 984, 985, 988, 989, 992, - 993, 994, 995, 996, 997, 998, 999, 1000, 1003, 1009, - 1010, 1011, 1014, 1015, 1018, 1018, 1024, 1025, 1026, 1027, - 1030, 1031, 1034, 1035, 1038, 1040, 1039, 1075, 1076, 1078, - 1081, 1090, 1094, 1097, 1097, 1099, 1099, 1101, 1101, 1111, - 1112, 1115, 1116, 1124, 1125, 1127, 1131, 1140, 1140, 1157, - 1160, 1157, 1189, 1195, 1198, 1199, 1200, 1203, 1203, 1211, - 1212, 1215, 1216, 1219, 1219, 1222, 1223, 1226, 1226, 1249, - 1249, 1250, 1251, 1252, 1252, 1255, 1256, 1259, 1260, 1261, - 1262, 1265, 1265, 1287, 1287, 1343, 1344, 1345, 1346, 1349, - 1350, 1353, 1356, 1357, 1358, 1359, 1360, 1361, 1364, 1365, - 1366, 1367, 1368, 1369, 1372, 1373, 1374, 1375, 1376, 1377, - 1378, 1379, 1382, 1383, 1384, 1385, 1389, 1391, 1388, 1396, - 1396, 1400, 1402, 1400, 1410, 1412, 1410, 1421, 1424, 1429, - 1433, 1437, 1440, 1446, 1451, 1458, 1458, 1461, 1462, 1470, - 1471, 1470, 1482, 1483, 1482, 1495, 1495, 1495, 1497, 1497, - 1502, 1507, 1501, 1521, 1524, 1525, 1529, 1541, 1546, 1528, - 1586, 1587, 1590, 1591, 1594, 1597, 1600, 1603, 1608, 1609, - 1612, 1613, 1616, 1617, 1620, 1621, 1626, 1632, 1641, 1625, - 1661, 1662, 1666, 1665, 1678, 1685, 1693, 1692, 1702, 1703, - 1711, 1711, 1714, 1714, 1717, 1719, 1722, 1722, 1722, 1727, - 1735, 1745, 1755, 1726, 1779, 1780, 1788, 1789, 1792, 1800, - 1801, 1802, 1805, 1816, 1834, 1835, 1839, 1838, 1846, 1845, - 1856, 1857, 1860, 1861, 1862, 1863, 1864, 1867, 1868, 1869, - 1870, 1871, 1875, 1874, 1897, 1898 + 552, 555, 556, 561, 564, 569, 575, 580, 585, 586, + 589, 594, 597, 608, 611, 616, 619, 622, 623, 626, + 629, 630, 635, 638, 643, 644, 647, 652, 655, 662, + 663, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 684, 685, 686, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 717, 718, + 719, 720, 721, 722, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, + 743, 744, 747, 750, 750, 753, 754, 754, 755, 755, + 759, 762, 765, 766, 769, 770, 773, 774, 775, 776, + 777, 780, 781, 786, 787, 788, 794, 795, 796, 799, + 802, 807, 807, 810, 819, 820, 821, 822, 823, 824, + 825, 826, 826, 827, 828, 829, 830, 831, 832, 833, + 834, 835, 836, 836, 837, 838, 839, 839, 840, 841, + 841, 842, 843, 844, 845, 846, 847, 848, 849, 852, + 853, 854, 855, 855, 856, 856, 857, 860, 861, 864, + 865, 868, 869, 870, 871, 872, 873, 874, 881, 882, + 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, + 893, 894, 895, 896, 897, 898, 899, 900, 901, 907, + 908, 911, 914, 915, 918, 919, 920, 923, 924, 925, + 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, + 936, 937, 938, 939, 940, 941, 942, 943, 946, 949, + 952, 955, 958, 961, 964, 967, 968, 969, 970, 971, + 972, 975, 976, 977, 978, 979, 980, 983, 984, 987, + 988, 989, 990, 991, 992, 993, 994, 995, 998, 1004, + 1005, 1006, 1009, 1010, 1013, 1013, 1019, 1020, 1021, 1022, + 1025, 1026, 1029, 1030, 1033, 1035, 1034, 1070, 1071, 1073, + 1076, 1085, 1089, 1092, 1092, 1094, 1094, 1096, 1096, 1106, + 1107, 1110, 1111, 1119, 1120, 1122, 1126, 1135, 1135, 1152, + 1155, 1152, 1184, 1190, 1193, 1194, 1195, 1198, 1198, 1206, + 1207, 1210, 1211, 1214, 1214, 1217, 1218, 1221, 1221, 1244, + 1244, 1245, 1246, 1247, 1247, 1250, 1251, 1254, 1255, 1256, + 1257, 1260, 1260, 1282, 1282, 1338, 1339, 1340, 1341, 1344, + 1345, 1348, 1351, 1352, 1353, 1354, 1355, 1356, 1359, 1360, + 1361, 1362, 1363, 1364, 1367, 1368, 1369, 1370, 1371, 1372, + 1373, 1374, 1377, 1378, 1379, 1380, 1384, 1386, 1383, 1391, + 1391, 1395, 1397, 1395, 1405, 1407, 1405, 1416, 1419, 1424, + 1428, 1432, 1435, 1441, 1446, 1453, 1453, 1456, 1457, 1465, + 1466, 1465, 1477, 1478, 1477, 1490, 1490, 1490, 1492, 1492, + 1497, 1502, 1496, 1516, 1519, 1520, 1524, 1536, 1541, 1523, + 1581, 1582, 1585, 1586, 1589, 1592, 1595, 1598, 1603, 1604, + 1607, 1608, 1611, 1612, 1615, 1616, 1621, 1627, 1636, 1620, + 1656, 1657, 1661, 1660, 1673, 1680, 1688, 1687, 1697, 1698, + 1706, 1706, 1709, 1709, 1712, 1714, 1717, 1717, 1717, 1722, + 1730, 1740, 1750, 1721, 1774, 1775, 1783, 1784, 1787, 1795, + 1796, 1797, 1800, 1811, 1829, 1830, 1834, 1833, 1841, 1840, + 1851, 1852, 1855, 1856, 1857, 1858, 1859, 1862, 1863, 1864, + 1865, 1866, 1870, 1869, 1892, 1893 }; #endif @@ -4826,31 +4826,26 @@ yyreduce: case 140: #line 552 "harbour.y" - { (yyval.asExpr) = hb_compExprNewDate( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); - if( (yyvsp[(1) - (1)].valLong).lNumber == 0 ) - { - hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_INVALID_DATE, HB_COMP_PARAM->pLex->lasttok, NULL ); - } - ;} + { (yyval.asExpr) = hb_compExprNewDate( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 141: -#line 560 "harbour.y" +#line 555 "harbour.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (2)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 142: -#line 561 "harbour.y" +#line 556 "harbour.y" { (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, hb_compExprNewDouble( (yyvsp[(1) - (2)].valDouble).dNumber, (yyvsp[(1) - (2)].valDouble).bWidth, (yyvsp[(1) - (2)].valDouble).bDec, HB_COMP_PARAM ) ); ;} break; case 143: -#line 566 "harbour.y" +#line 561 "harbour.y" { (yyval.asExpr) = hb_compExprNewNil( HB_COMP_PARAM ); ;} break; case 145: -#line 574 "harbour.y" +#line 569 "harbour.y" { (yyval.asExpr) = hb_compExprNewString( (yyvsp[(1) - (1)].valChar).string, (yyvsp[(1) - (1)].valChar).length, (yyvsp[(1) - (1)].valChar).dealloc, HB_COMP_PARAM ); (yyvsp[(1) - (1)].valChar).dealloc = FALSE; @@ -4858,467 +4853,467 @@ yyreduce: break; case 148: -#line 590 "harbour.y" +#line 585 "harbour.y" { (yyval.asExpr) = hb_compExprNewLogical( TRUE, HB_COMP_PARAM ); ;} break; case 149: -#line 591 "harbour.y" +#line 586 "harbour.y" { (yyval.asExpr) = hb_compExprNewLogical( FALSE, HB_COMP_PARAM ); ;} break; case 151: -#line 599 "harbour.y" +#line 594 "harbour.y" { (yyval.asExpr) = hb_compExprNewSelf( HB_COMP_PARAM ); ;} break; case 153: -#line 613 "harbour.y" +#line 608 "harbour.y" { (yyval.asExpr) = hb_compExprNewArray( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 155: -#line 621 "harbour.y" +#line 616 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 157: -#line 627 "harbour.y" +#line 622 "harbour.y" { (yyval.asExpr) = hb_compExprNewHash( NULL, HB_COMP_PARAM ); ;} break; case 158: -#line 628 "harbour.y" +#line 623 "harbour.y" { (yyval.asExpr) = hb_compExprNewHash( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 160: -#line 634 "harbour.y" +#line 629 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 161: -#line 635 "harbour.y" +#line 630 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprAddListExpr( (yyvsp[(1) - (5)].asExpr), (yyvsp[(3) - (5)].asExpr) ), (yyvsp[(5) - (5)].asExpr) ); ;} break; case 162: -#line 640 "harbour.y" +#line 635 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 163: -#line 643 "harbour.y" +#line 638 "harbour.y" { (yyval.asExpr) = hb_compExprNewAlias( (yyvsp[(1) - (2)].string), HB_COMP_PARAM ); ;} break; case 164: -#line 648 "harbour.y" +#line 643 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, '&', (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 165: -#line 649 "harbour.y" +#line 644 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, 0, (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 167: -#line 657 "harbour.y" +#line 652 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( (yyvsp[(2) - (2)].asExpr), 0, NULL, HB_COMP_PARAM ); ;} break; case 169: -#line 667 "harbour.y" +#line 662 "harbour.y" { (yyval.asExpr) = hb_compExprNewAlias( "FIELD", HB_COMP_PARAM ); ;} break; case 170: -#line 668 "harbour.y" +#line 663 "harbour.y" { (yyval.asExpr) = (yyvsp[(3) - (3)].asExpr); ;} break; case 171: -#line 673 "harbour.y" +#line 668 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 172: -#line 674 "harbour.y" +#line 669 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 173: -#line 675 "harbour.y" +#line 670 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 174: -#line 676 "harbour.y" +#line 671 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 175: -#line 677 "harbour.y" +#line 672 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 176: -#line 678 "harbour.y" +#line 673 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 177: -#line 679 "harbour.y" +#line 674 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 178: -#line 680 "harbour.y" +#line 675 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 179: -#line 681 "harbour.y" +#line 676 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 180: -#line 682 "harbour.y" +#line 677 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 181: -#line 683 "harbour.y" +#line 678 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 182: -#line 684 "harbour.y" +#line 679 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 183: -#line 685 "harbour.y" +#line 680 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 184: -#line 686 "harbour.y" +#line 681 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 185: -#line 689 "harbour.y" +#line 684 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 188: -#line 694 "harbour.y" +#line 689 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 189: -#line 695 "harbour.y" +#line 690 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 190: -#line 696 "harbour.y" +#line 691 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 191: -#line 697 "harbour.y" +#line 692 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 192: -#line 698 "harbour.y" +#line 693 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 193: -#line 699 "harbour.y" +#line 694 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 194: -#line 700 "harbour.y" +#line 695 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 195: -#line 701 "harbour.y" +#line 696 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 196: -#line 702 "harbour.y" +#line 697 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 197: -#line 703 "harbour.y" +#line 698 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 198: -#line 704 "harbour.y" +#line 699 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 199: -#line 705 "harbour.y" +#line 700 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 200: -#line 706 "harbour.y" +#line 701 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 201: -#line 707 "harbour.y" +#line 702 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 202: -#line 708 "harbour.y" +#line 703 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 203: -#line 709 "harbour.y" +#line 704 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 204: -#line 710 "harbour.y" +#line 705 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; case 205: -#line 711 "harbour.y" +#line 706 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 206: -#line 712 "harbour.y" +#line 707 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 207: -#line 713 "harbour.y" +#line 708 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 208: -#line 722 "harbour.y" +#line 717 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 209: -#line 723 "harbour.y" +#line 718 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 210: -#line 724 "harbour.y" +#line 719 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 211: -#line 725 "harbour.y" +#line 720 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 212: -#line 726 "harbour.y" +#line 721 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 213: -#line 727 "harbour.y" +#line 722 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 214: -#line 732 "harbour.y" +#line 727 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 215: -#line 733 "harbour.y" +#line 728 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 216: -#line 734 "harbour.y" +#line 729 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 217: -#line 735 "harbour.y" +#line 730 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 218: -#line 736 "harbour.y" +#line 731 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 219: -#line 737 "harbour.y" +#line 732 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 220: -#line 738 "harbour.y" +#line 733 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 221: -#line 739 "harbour.y" +#line 734 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 222: -#line 740 "harbour.y" +#line 735 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 223: -#line 741 "harbour.y" +#line 736 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 224: -#line 742 "harbour.y" +#line 737 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 225: -#line 743 "harbour.y" +#line 738 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 226: -#line 744 "harbour.y" +#line 739 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 227: -#line 745 "harbour.y" +#line 740 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 228: -#line 746 "harbour.y" +#line 741 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 229: -#line 747 "harbour.y" +#line 742 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 230: -#line 748 "harbour.y" +#line 743 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 231: -#line 749 "harbour.y" +#line 744 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 233: -#line 755 "harbour.y" +#line 750 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 234: -#line 755 "harbour.y" +#line 750 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( hb_compExprNewFunName( (yyvsp[(1) - (5)].string), HB_COMP_PARAM ), (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (5)].bTrue); ;} break; case 236: -#line 759 "harbour.y" +#line 754 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 237: -#line 759 "harbour.y" +#line 754 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(1) - (5)].asExpr), (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (5)].bTrue); ;} break; case 238: -#line 760 "harbour.y" +#line 755 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 239: -#line 760 "harbour.y" +#line 755 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(1) - (5)].asExpr), (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (5)].bTrue); ;} break; case 240: -#line 764 "harbour.y" +#line 759 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 242: -#line 770 "harbour.y" +#line 765 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 243: -#line 771 "harbour.y" +#line 766 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 246: -#line 778 "harbour.y" +#line 773 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ) ); ;} break; case 247: -#line 779 "harbour.y" +#line 774 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; case 248: -#line 780 "harbour.y" +#line 775 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; case 249: -#line 781 "harbour.y" +#line 776 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; case 250: -#line 782 "harbour.y" +#line 777 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr)->value.asList.reference = TRUE; ;} break; case 251: -#line 785 "harbour.y" +#line 780 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 253: -#line 791 "harbour.y" +#line 786 "harbour.y" { (yyval.asExpr) = ((yyvsp[(3) - (3)].asMessage).bMacro ? hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asMessage).value.macro, HB_COMP_PARAM ) : hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asMessage).value.string, NULL, HB_COMP_PARAM )); ;} break; case 254: -#line 792 "harbour.y" +#line 787 "harbour.y" { (yyval.asExpr) = ((yyvsp[(3) - (3)].asMessage).bMacro ? hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asMessage).value.macro, HB_COMP_PARAM ) : hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asMessage).value.string, NULL, HB_COMP_PARAM )); ;} break; case 255: -#line 793 "harbour.y" +#line 788 "harbour.y" { if( HB_COMP_PARAM->wWithObjectCnt == 0 ) hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_WITHOBJECT, NULL, NULL ); (yyval.asExpr) = ((yyvsp[(2) - (2)].asMessage).bMacro ? hb_compExprNewSend( NULL, NULL, (yyvsp[(2) - (2)].asMessage).value.macro, HB_COMP_PARAM ) : hb_compExprNewSend( NULL, (yyvsp[(2) - (2)].asMessage).value.string, NULL, HB_COMP_PARAM )); @@ -5326,457 +5321,457 @@ yyreduce: break; case 256: -#line 799 "harbour.y" +#line 794 "harbour.y" { (yyval.asMessage).value.string = (yyvsp[(1) - (1)].string); (yyval.asMessage).bMacro=FALSE; ;} break; case 257: -#line 800 "harbour.y" +#line 795 "harbour.y" { (yyval.asMessage).value.macro = (yyvsp[(1) - (1)].asExpr); (yyval.asMessage).bMacro=TRUE; ;} break; case 258: -#line 801 "harbour.y" +#line 796 "harbour.y" { (yyval.asMessage).value.macro = (yyvsp[(1) - (1)].asExpr); (yyval.asMessage).bMacro=TRUE; ;} break; case 259: -#line 804 "harbour.y" +#line 799 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(3) - (4)].string), HB_COMP_PARAM ); ;} break; case 261: -#line 812 "harbour.y" +#line 807 "harbour.y" {(yyval.bTrue)=HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 262: -#line 812 "harbour.y" +#line 807 "harbour.y" { (yyval.asExpr) = hb_compExprNewMethodCall( (yyvsp[(1) - (5)].asExpr), (yyvsp[(4) - (5)].asExpr) ); HB_COMP_PARAM->iPassByRef=(yyvsp[(3) - (5)].bTrue); ;} break; case 271: -#line 831 "harbour.y" +#line 826 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 272: -#line 831 "harbour.y" +#line 826 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 282: -#line 841 "harbour.y" +#line 836 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 283: -#line 841 "harbour.y" +#line 836 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 286: -#line 844 "harbour.y" +#line 839 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 287: -#line 844 "harbour.y" +#line 839 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 289: -#line 846 "harbour.y" +#line 841 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 290: -#line 846 "harbour.y" +#line 841 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 302: -#line 860 "harbour.y" +#line 855 "harbour.y" { HB_COMP_PARAM->cVarType = ' ';;} break; case 303: -#line 860 "harbour.y" +#line 855 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 304: -#line 861 "harbour.y" +#line 856 "harbour.y" { HB_COMP_PARAM->cVarType = ' ';;} break; case 305: -#line 861 "harbour.y" +#line 856 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 307: -#line 865 "harbour.y" +#line 860 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 309: -#line 869 "harbour.y" +#line 864 "harbour.y" { (yyval.asExpr) = hb_compExprNewEmpty( HB_COMP_PARAM ); ;} break; case 311: -#line 873 "harbour.y" +#line 868 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 317: -#line 879 "harbour.y" +#line 874 "harbour.y" { (yyval.asExpr) = hb_compExprListStrip( (yyvsp[(1) - (1)].asExpr), NULL ); ;} break; case 339: -#line 912 "harbour.y" +#line 907 "harbour.y" { (yyval.asExpr) = hb_compExprNewPostInc( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 340: -#line 913 "harbour.y" +#line 908 "harbour.y" { (yyval.asExpr) = hb_compExprNewPostDec( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 341: -#line 916 "harbour.y" +#line 911 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 342: -#line 919 "harbour.y" +#line 914 "harbour.y" { (yyval.asExpr) = hb_compExprNewPreInc( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 343: -#line 920 "harbour.y" +#line 915 "harbour.y" { (yyval.asExpr) = hb_compExprNewPreDec( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 344: -#line 923 "harbour.y" +#line 918 "harbour.y" { (yyval.asExpr) = hb_compExprNewNot( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 345: -#line 924 "harbour.y" +#line 919 "harbour.y" { (yyval.asExpr) = hb_compExprNewNegate( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 346: -#line 925 "harbour.y" +#line 920 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 347: -#line 928 "harbour.y" +#line 923 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 348: -#line 929 "harbour.y" +#line 924 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 349: -#line 930 "harbour.y" +#line 925 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 350: -#line 931 "harbour.y" +#line 926 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 351: -#line 932 "harbour.y" +#line 927 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 352: -#line 933 "harbour.y" +#line 928 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 353: -#line 934 "harbour.y" +#line 929 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 354: -#line 935 "harbour.y" +#line 930 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 355: -#line 936 "harbour.y" +#line 931 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 356: -#line 937 "harbour.y" +#line 932 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 357: -#line 938 "harbour.y" +#line 933 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 358: -#line 939 "harbour.y" +#line 934 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 359: -#line 940 "harbour.y" +#line 935 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 360: -#line 941 "harbour.y" +#line 936 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 361: -#line 942 "harbour.y" +#line 937 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} break; case 362: -#line 943 "harbour.y" +#line 938 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} break; case 363: -#line 944 "harbour.y" +#line 939 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 364: -#line 945 "harbour.y" +#line 940 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 365: -#line 946 "harbour.y" +#line 941 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 366: -#line 947 "harbour.y" +#line 942 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} break; case 367: -#line 948 "harbour.y" +#line 943 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 368: -#line 951 "harbour.y" +#line 946 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 369: -#line 954 "harbour.y" +#line 949 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 370: -#line 957 "harbour.y" +#line 952 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 371: -#line 960 "harbour.y" +#line 955 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMultEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 372: -#line 963 "harbour.y" +#line 958 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDivEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 373: -#line 966 "harbour.y" +#line 961 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewModEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 374: -#line 969 "harbour.y" +#line 964 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewExpEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 381: -#line 980 "harbour.y" +#line 975 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 382: -#line 981 "harbour.y" +#line 976 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 383: -#line 982 "harbour.y" +#line 977 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMult( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 384: -#line 983 "harbour.y" +#line 978 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDiv( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 385: -#line 984 "harbour.y" +#line 979 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMod( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 386: -#line 985 "harbour.y" +#line 980 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPower( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 387: -#line 988 "harbour.y" +#line 983 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewAnd( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 388: -#line 989 "harbour.y" +#line 984 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewOr( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 389: -#line 992 "harbour.y" +#line 987 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEQ( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 390: -#line 993 "harbour.y" +#line 988 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 391: -#line 994 "harbour.y" +#line 989 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 392: -#line 995 "harbour.y" +#line 990 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 393: -#line 996 "harbour.y" +#line 991 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 394: -#line 997 "harbour.y" +#line 992 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 395: -#line 998 "harbour.y" +#line 993 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 396: -#line 999 "harbour.y" +#line 994 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewIN( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 397: -#line 1000 "harbour.y" +#line 995 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEqual( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 399: -#line 1009 "harbour.y" +#line 1004 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(0) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 400: -#line 1010 "harbour.y" +#line 1005 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 401: -#line 1011 "harbour.y" +#line 1006 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); ;} break; case 402: -#line 1014 "harbour.y" +#line 1009 "harbour.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 403: -#line 1015 "harbour.y" +#line 1010 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 404: -#line 1018 "harbour.y" +#line 1013 "harbour.y" { (yyval.asExpr) = hb_compExprNewCodeBlock( (yyvsp[(1) - (1)].asCodeblock).string, (yyvsp[(1) - (1)].asCodeblock).length, (yyvsp[(1) - (1)].asCodeblock).flags, HB_COMP_PARAM ); (yyvsp[(1) - (1)].asCodeblock).string = NULL; ;} break; case 405: -#line 1019 "harbour.y" +#line 1014 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (4)].asExpr); ;} break; case 406: -#line 1024 "harbour.y" +#line 1019 "harbour.y" { (yyval.asExpr) = NULL; ;} break; case 407: -#line 1025 "harbour.y" +#line 1020 "harbour.y" { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 408: -#line 1026 "harbour.y" +#line 1021 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} break; case 409: -#line 1027 "harbour.y" +#line 1022 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); (yyvsp[(0) - (3)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 410: -#line 1030 "harbour.y" +#line 1025 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_LOCAL; (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (2)].asExpr), (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType, HB_COMP_PARAM ); HB_COMP_PARAM->cVarType = ' '; ;} break; case 411: -#line 1031 "harbour.y" +#line 1026 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_LOCAL; (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (4)].asExpr), (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType, HB_COMP_PARAM ); HB_COMP_PARAM->cVarType = ' '; ;} break; case 412: -#line 1034 "harbour.y" +#line 1029 "harbour.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(0) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} break; case 413: -#line 1035 "harbour.y" +#line 1030 "harbour.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(0) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 415: -#line 1040 "harbour.y" +#line 1035 "harbour.y" { /* 3 */ HB_CBVAR_PTR pVar; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -5804,7 +5799,7 @@ yyreduce: break; case 416: -#line 1065 "harbour.y" +#line 1060 "harbour.y" { /* 6 */ hb_compCodeBlockEnd( HB_COMP_PARAM ); (yyval.asExpr) = hb_compExprSetCodeblockBody( (yyvsp[(1) - (5)].asExpr), @@ -5816,47 +5811,47 @@ yyreduce: break; case 417: -#line 1075 "harbour.y" +#line 1070 "harbour.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 418: -#line 1076 "harbour.y" +#line 1071 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 419: -#line 1078 "harbour.y" +#line 1073 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (3)].asExpr) ;} break; case 421: -#line 1091 "harbour.y" +#line 1086 "harbour.y" { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(3) - (8)].asExpr), HB_COMP_PARAM ), (yyvsp[(5) - (8)].asExpr) ), (yyvsp[(7) - (8)].asExpr) ) ); ;} break; case 423: -#line 1097 "harbour.y" +#line 1092 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_LOCAL; hb_compLinePush( HB_COMP_PARAM ); ;} break; case 424: -#line 1098 "harbour.y" +#line 1093 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 425: -#line 1099 "harbour.y" +#line 1094 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_STATIC; hb_compLinePush( HB_COMP_PARAM ); ;} break; case 426: -#line 1100 "harbour.y" +#line 1095 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 427: -#line 1101 "harbour.y" +#line 1096 "harbour.y" { if( HB_COMP_PARAM->functions.pLast->bFlags & FUN_USES_LOCAL_PARAMS ) hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_PARAMETERS_NOT_ALLOWED, NULL, NULL ); else @@ -5868,44 +5863,44 @@ yyreduce: break; case 428: -#line 1108 "harbour.y" +#line 1103 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 429: -#line 1111 "harbour.y" +#line 1106 "harbour.y" { (yyval.iNumber) = 1; ;} break; case 430: -#line 1112 "harbour.y" +#line 1107 "harbour.y" { (yyval.iNumber)++; ;} break; case 431: -#line 1115 "harbour.y" +#line 1110 "harbour.y" { (yyval.iNumber) = 1; ;} break; case 432: -#line 1116 "harbour.y" +#line 1111 "harbour.y" { (yyval.iNumber)++; ;} break; case 434: -#line 1126 "harbour.y" +#line 1121 "harbour.y" { hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), FALSE ); ;} break; case 435: -#line 1128 "harbour.y" +#line 1123 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ) ); hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (4)].asExpr), HB_COMP_PARAM ), TRUE ); ;} break; case 436: -#line 1132 "harbour.y" +#line 1127 "harbour.y" { USHORT uCount = (USHORT) hb_compExprListLen( (yyvsp[(2) - (3)].asExpr) ); HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); @@ -5915,12 +5910,12 @@ yyreduce: break; case 437: -#line 1140 "harbour.y" +#line 1135 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 438: -#line 1141 "harbour.y" +#line 1136 "harbour.y" { if( HB_COMP_PARAM->iVarScope == VS_STATIC ) { @@ -5940,19 +5935,19 @@ yyreduce: break; case 439: -#line 1157 "harbour.y" +#line 1152 "harbour.y" { (yyval.iNumber) = HB_COMP_PARAM->iVarScope; hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 440: -#line 1160 "harbour.y" +#line 1155 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 441: -#line 1161 "harbour.y" +#line 1156 "harbour.y" { HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' '; @@ -5983,32 +5978,32 @@ yyreduce: break; case 442: -#line 1189 "harbour.y" +#line 1184 "harbour.y" { hb_compVariableDim( (yyvsp[(1) - (3)].string), (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 444: -#line 1198 "harbour.y" +#line 1193 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 445: -#line 1199 "harbour.y" +#line 1194 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 446: -#line 1200 "harbour.y" +#line 1195 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr) ); ;} break; case 447: -#line 1203 "harbour.y" +#line 1198 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_FIELD; ;} break; case 448: -#line 1205 "harbour.y" +#line 1200 "harbour.y" { if( (yyvsp[(4) - (5)].string) ) hb_compFieldSetAlias( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), (yyvsp[(3) - (5)].iNumber) ); HB_COMP_PARAM->cVarType = ' '; @@ -6016,52 +6011,52 @@ yyreduce: break; case 449: -#line 1211 "harbour.y" +#line 1206 "harbour.y" { (yyval.iNumber)=hb_compFieldsCount( HB_COMP_PARAM ); hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 450: -#line 1212 "harbour.y" +#line 1207 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} break; case 451: -#line 1215 "harbour.y" +#line 1210 "harbour.y" { (yyval.string) = NULL; ;} break; case 452: -#line 1216 "harbour.y" +#line 1211 "harbour.y" { (yyval.string) = (yyvsp[(2) - (2)].string); ;} break; case 453: -#line 1219 "harbour.y" +#line 1214 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_MEMVAR; ;} break; case 454: -#line 1219 "harbour.y" +#line 1214 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 455: -#line 1222 "harbour.y" +#line 1217 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 456: -#line 1223 "harbour.y" +#line 1218 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} break; case 457: -#line 1226 "harbour.y" +#line 1221 "harbour.y" { hb_compDeclaredAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->szDeclaredFun = (yyvsp[(2) - (3)].string); ;} break; case 458: -#line 1227 "harbour.y" +#line 1222 "harbour.y" { if( HB_COMP_PARAM->pLastDeclared ) { @@ -6087,42 +6082,42 @@ yyreduce: break; case 459: -#line 1249 "harbour.y" +#line 1244 "harbour.y" { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (2)].string) ); ;} break; case 460: -#line 1249 "harbour.y" +#line 1244 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 461: -#line 1250 "harbour.y" +#line 1245 "harbour.y" { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 462: -#line 1251 "harbour.y" +#line 1246 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 463: -#line 1252 "harbour.y" +#line 1247 "harbour.y" { HB_COMP_PARAM->cDataListType = HB_COMP_PARAM->cVarType; ;} break; case 464: -#line 1252 "harbour.y" +#line 1247 "harbour.y" { HB_COMP_PARAM->cDataListType = 0; HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 471: -#line 1265 "harbour.y" +#line 1260 "harbour.y" { HB_COMP_PARAM->pLastMethod = hb_compMethodAdd( HB_COMP_PARAM, HB_COMP_PARAM->pLastClass, (yyvsp[(1) - (2)].string) ); ;} break; case 472: -#line 1266 "harbour.y" +#line 1261 "harbour.y" { if( HB_COMP_PARAM->pLastMethod ) { @@ -6145,12 +6140,12 @@ yyreduce: break; case 473: -#line 1287 "harbour.y" +#line 1282 "harbour.y" { HB_COMP_PARAM->pLastMethod = hb_compMethodAdd( HB_COMP_PARAM, HB_COMP_PARAM->pLastClass, (yyvsp[(1) - (1)].string) ); ;} break; case 474: -#line 1288 "harbour.y" +#line 1283 "harbour.y" { if( HB_COMP_PARAM->pLastMethod ) { @@ -6207,174 +6202,174 @@ yyreduce: break; case 481: -#line 1353 "harbour.y" +#line 1348 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (1)].asExpr) ); ;} break; case 482: -#line 1356 "harbour.y" +#line 1351 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 483: -#line 1357 "harbour.y" +#line 1352 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_BYREF ); ;} break; case 484: -#line 1358 "harbour.y" +#line 1353 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (5)].string), 'F' ); ;} break; case 485: -#line 1359 "harbour.y" +#line 1354 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} break; case 486: -#line 1360 "harbour.y" +#line 1355 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_BYREF ); ;} break; case 487: -#line 1361 "harbour.y" +#line 1356 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (7)].string), 'F' ); ;} break; case 488: -#line 1364 "harbour.y" +#line 1359 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL ); ;} break; case 489: -#line 1365 "harbour.y" +#line 1360 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; case 490: -#line 1366 "harbour.y" +#line 1361 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (6)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; case 491: -#line 1367 "harbour.y" +#line 1362 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL ); ;} break; case 492: -#line 1368 "harbour.y" +#line 1363 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(5) - (6)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; case 493: -#line 1369 "harbour.y" +#line 1364 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(5) - (8)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; case 502: -#line 1382 "harbour.y" +#line 1377 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (2)].iNumber), HB_COMP_PARAM ); ;} break; case 503: -#line 1383 "harbour.y" +#line 1378 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (3)].iNumber), HB_COMP_PARAM ); ;} break; case 504: -#line 1384 "harbour.y" +#line 1379 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (3)].iNumber), HB_COMP_PARAM ); hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} break; case 505: -#line 1385 "harbour.y" +#line 1380 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (4)].iNumber), HB_COMP_PARAM ); hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} break; case 506: -#line 1389 "harbour.y" +#line 1384 "harbour.y" { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 507: -#line 1391 "harbour.y" +#line 1386 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (4)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; case 508: -#line 1393 "harbour.y" +#line 1388 "harbour.y" { (yyval.iNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} break; case 509: -#line 1396 "harbour.y" +#line 1391 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; case 511: -#line 1400 "harbour.y" +#line 1395 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; hb_compLinePush( HB_COMP_PARAM ); ;} break; case 512: -#line 1402 "harbour.y" +#line 1397 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; case 513: -#line 1406 "harbour.y" +#line 1401 "harbour.y" { (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, NULL, hb_compGenJump( 0, HB_COMP_PARAM ) ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} break; case 514: -#line 1410 "harbour.y" +#line 1405 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; hb_compLinePush( HB_COMP_PARAM ); ;} break; case 515: -#line 1412 "harbour.y" +#line 1407 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; case 516: -#line 1416 "harbour.y" +#line 1411 "harbour.y" { (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, (yyvsp[(1) - (7)].pVoid), hb_compGenJump( 0, HB_COMP_PARAM ) ); hb_compGenJumpHere( (yyvsp[(6) - (7)].iNumber), HB_COMP_PARAM ); ;} break; case 517: -#line 1421 "harbour.y" +#line 1416 "harbour.y" { if( HB_COMP_PARAM->wIfCounter ) --HB_COMP_PARAM->wIfCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); ;} break; case 518: -#line 1424 "harbour.y" +#line 1419 "harbour.y" { if( HB_COMP_PARAM->wIfCounter ) --HB_COMP_PARAM->wIfCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); ;} break; case 519: -#line 1431 "harbour.y" +#line 1426 "harbour.y" { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} break; case 522: -#line 1443 "harbour.y" +#line 1438 "harbour.y" { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} break; case 523: -#line 1447 "harbour.y" +#line 1442 "harbour.y" { if( HB_COMP_PARAM->wCaseCounter ) --HB_COMP_PARAM->wCaseCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); @@ -6382,7 +6377,7 @@ yyreduce: break; case 524: -#line 1452 "harbour.y" +#line 1447 "harbour.y" { if( HB_COMP_PARAM->wCaseCounter ) --HB_COMP_PARAM->wCaseCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); @@ -6390,12 +6385,12 @@ yyreduce: break; case 525: -#line 1458 "harbour.y" +#line 1453 "harbour.y" { ++HB_COMP_PARAM->wCaseCounter; hb_compLinePushIfDebugger( HB_COMP_PARAM );;} break; case 528: -#line 1462 "harbour.y" +#line 1457 "harbour.y" { if( (yyvsp[(2) - (2)].lNumber) > 0 ) { @@ -6405,12 +6400,12 @@ yyreduce: break; case 529: -#line 1470 "harbour.y" +#line 1465 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 530: -#line 1471 "harbour.y" +#line 1466 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); @@ -6418,7 +6413,7 @@ yyreduce: break; case 531: -#line 1476 "harbour.y" +#line 1471 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, NULL, hb_compGenJump( 0, HB_COMP_PARAM ) ); @@ -6427,12 +6422,12 @@ yyreduce: break; case 532: -#line 1482 "harbour.y" +#line 1477 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 533: -#line 1483 "harbour.y" +#line 1478 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); @@ -6440,7 +6435,7 @@ yyreduce: break; case 534: -#line 1488 "harbour.y" +#line 1483 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, (yyvsp[(1) - (7)].pVoid), hb_compGenJump( 0, HB_COMP_PARAM ) ); @@ -6449,22 +6444,22 @@ yyreduce: break; case 535: -#line 1495 "harbour.y" +#line 1490 "harbour.y" {hb_compLinePushIfDebugger( HB_COMP_PARAM ); ;} break; case 536: -#line 1495 "harbour.y" +#line 1490 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; case 538: -#line 1497 "harbour.y" +#line 1492 "harbour.y" { hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_MAYHEM_IN_CASE, NULL, NULL ); ;} break; case 540: -#line 1502 "harbour.y" +#line 1497 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); (yyval.lNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); @@ -6472,7 +6467,7 @@ yyreduce: break; case 541: -#line 1507 "harbour.y" +#line 1502 "harbour.y" { hb_compLoopHere( HB_COMP_PARAM ); hb_compGenJump( (yyvsp[(1) - (5)].lNumber) - HB_COMP_PARAM->functions.pLast->lPCodePos, HB_COMP_PARAM ); @@ -6480,7 +6475,7 @@ yyreduce: break; case 542: -#line 1512 "harbour.y" +#line 1507 "harbour.y" { hb_compGenJumpHere( (yyvsp[(4) - (7)].lNumber), HB_COMP_PARAM ); if( HB_COMP_PARAM->wWhileCounter ) @@ -6491,22 +6486,22 @@ yyreduce: break; case 543: -#line 1521 "harbour.y" +#line 1516 "harbour.y" { (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; hb_compLinePushIfInside( HB_COMP_PARAM ); ++HB_COMP_PARAM->wWhileCounter; hb_compLoopStart( HB_COMP_PARAM ); ;} break; case 544: -#line 1524 "harbour.y" +#line 1519 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; case 545: -#line 1525 "harbour.y" +#line 1520 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; case 546: -#line 1529 "harbour.y" +#line 1524 "harbour.y" { /* 5 */ hb_compLinePushIfInside( HB_COMP_PARAM ); (yyvsp[(1) - (4)].lNumber) = HB_COMP_PARAM->currLine; @@ -6521,7 +6516,7 @@ yyreduce: break; case 547: -#line 1541 "harbour.y" +#line 1536 "harbour.y" { /* 9 */ hb_compLoopStart( HB_COMP_PARAM ); (yyval.lNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); @@ -6529,14 +6524,14 @@ yyreduce: break; case 548: -#line 1546 "harbour.y" +#line 1541 "harbour.y" { /* 11 */ (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; ;} break; case 549: -#line 1550 "harbour.y" +#line 1545 "harbour.y" { int iSign, iLine; @@ -6574,80 +6569,80 @@ yyreduce: break; case 552: -#line 1590 "harbour.y" +#line 1585 "harbour.y" { (yyval.asExpr) = NULL; ;} break; case 553: -#line 1591 "harbour.y" +#line 1586 "harbour.y" { (yyval.asExpr) = hb_compExprReduce( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 554: -#line 1594 "harbour.y" +#line 1589 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; case 555: -#line 1597 "harbour.y" +#line 1592 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; case 556: -#line 1600 "harbour.y" +#line 1595 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; case 557: -#line 1603 "harbour.y" +#line 1598 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; case 558: -#line 1608 "harbour.y" +#line 1603 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 559: -#line 1609 "harbour.y" +#line 1604 "harbour.y" { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 560: -#line 1612 "harbour.y" +#line 1607 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 561: -#line 1613 "harbour.y" +#line 1608 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 562: -#line 1616 "harbour.y" +#line 1611 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ); ;} break; case 564: -#line 1620 "harbour.y" +#line 1615 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 565: -#line 1621 "harbour.y" +#line 1616 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 566: -#line 1626 "harbour.y" +#line 1621 "harbour.y" { ++HB_COMP_PARAM->wForCounter; /* 5 */ hb_compLinePushIfInside( HB_COMP_PARAM ); @@ -6656,7 +6651,7 @@ yyreduce: break; case 567: -#line 1632 "harbour.y" +#line 1627 "harbour.y" { /* 7 */ @@ -6668,7 +6663,7 @@ yyreduce: break; case 568: -#line 1641 "harbour.y" +#line 1636 "harbour.y" { /* 9 */ @@ -6677,7 +6672,7 @@ yyreduce: break; case 569: -#line 1647 "harbour.y" +#line 1642 "harbour.y" { hb_compLoopHere( HB_COMP_PARAM ); hb_compEnumNext( HB_COMP_PARAM, (yyvsp[(2) - (10)].asExpr), (yyvsp[(6) - (10)].iNumber) ); @@ -6693,17 +6688,17 @@ yyreduce: break; case 570: -#line 1661 "harbour.y" +#line 1656 "harbour.y" { (yyval.iNumber) = 1; ;} break; case 571: -#line 1662 "harbour.y" +#line 1657 "harbour.y" { (yyval.iNumber) = -1; ;} break; case 572: -#line 1666 "harbour.y" +#line 1661 "harbour.y" { hb_compLoopStart( HB_COMP_PARAM ); hb_compSwitchStart( HB_COMP_PARAM ); @@ -6712,7 +6707,7 @@ yyreduce: break; case 573: -#line 1673 "harbour.y" +#line 1668 "harbour.y" { hb_compSwitchEnd( HB_COMP_PARAM ); hb_compLoopEnd( HB_COMP_PARAM ); @@ -6720,14 +6715,14 @@ yyreduce: break; case 574: -#line 1680 "harbour.y" +#line 1675 "harbour.y" { hb_compGenPCode1( HB_P_POP, HB_COMP_PARAM ); ;} break; case 575: -#line 1686 "harbour.y" +#line 1681 "harbour.y" { if( HB_COMP_PARAM->wSwitchCounter ) --HB_COMP_PARAM->wSwitchCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); @@ -6735,21 +6730,21 @@ yyreduce: break; case 576: -#line 1693 "harbour.y" +#line 1688 "harbour.y" { ++HB_COMP_PARAM->wSwitchCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 577: -#line 1697 "harbour.y" +#line 1692 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); ;} break; case 579: -#line 1703 "harbour.y" +#line 1698 "harbour.y" { if( (yyvsp[(2) - (2)].lNumber) > 0 ) { @@ -6759,27 +6754,27 @@ yyreduce: break; case 580: -#line 1711 "harbour.y" +#line 1706 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); hb_compLinePush( HB_COMP_PARAM ); ;} break; case 582: -#line 1714 "harbour.y" +#line 1709 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].asExpr) ); hb_compLinePush( HB_COMP_PARAM ); ;} break; case 586: -#line 1722 "harbour.y" +#line 1717 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, NULL ); hb_compLinePush( HB_COMP_PARAM ); ;} break; case 587: -#line 1722 "harbour.y" +#line 1717 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; case 589: -#line 1727 "harbour.y" +#line 1722 "harbour.y" { /* 2 */ hb_compLinePushIfInside( HB_COMP_PARAM ); ++HB_COMP_PARAM->wSeqCounter; @@ -6788,7 +6783,7 @@ yyreduce: break; case 590: -#line 1735 "harbour.y" +#line 1730 "harbour.y" { /* 6 */ /* Set jump address for HB_P_SEQBEGIN opcode - this address * will be used in BREAK code if there is no RECOVER clause @@ -6801,7 +6796,7 @@ yyreduce: break; case 591: -#line 1745 "harbour.y" +#line 1740 "harbour.y" { /* 8 */ /* Replace END address with RECOVER address in * HB_P_SEQBEGIN opcode if there is RECOVER clause @@ -6814,7 +6809,7 @@ yyreduce: break; case 592: -#line 1755 "harbour.y" +#line 1750 "harbour.y" { /* 10 */ HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); if( (yyvsp[(9) - (9)].lNumber) ) @@ -6839,12 +6834,12 @@ yyreduce: break; case 594: -#line 1779 "harbour.y" +#line 1774 "harbour.y" { (yyval.lNumber) = 0; ;} break; case 595: -#line 1781 "harbour.y" +#line 1776 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); hb_compGenPCode1( HB_P_SEQBLOCK, HB_COMP_PARAM ); @@ -6853,12 +6848,12 @@ yyreduce: break; case 596: -#line 1788 "harbour.y" +#line 1783 "harbour.y" { (yyval.lNumber) = 0; ;} break; case 598: -#line 1793 "harbour.y" +#line 1788 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6867,12 +6862,12 @@ yyreduce: break; case 599: -#line 1800 "harbour.y" +#line 1795 "harbour.y" { (yyval.lNumber) = 0; HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; case 602: -#line 1806 "harbour.y" +#line 1801 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6884,7 +6879,7 @@ yyreduce: break; case 603: -#line 1817 "harbour.y" +#line 1812 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6897,12 +6892,12 @@ yyreduce: break; case 606: -#line 1839 "harbour.y" +#line 1834 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL; ;} break; case 607: -#line 1841 "harbour.y" +#line 1836 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(2) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (4)].bTrue); @@ -6910,12 +6905,12 @@ yyreduce: break; case 608: -#line 1846 "harbour.y" +#line 1841 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL; ;} break; case 609: -#line 1848 "harbour.y" +#line 1843 "harbour.y" { hb_compAutoOpenAdd( HB_COMP_PARAM, (yyvsp[(1) - (3)].string) ); /* DOIDENT is the only one identifier which can be returned in lower letters */ @@ -6925,47 +6920,47 @@ yyreduce: break; case 610: -#line 1856 "harbour.y" +#line 1851 "harbour.y" { (yyval.asExpr) = NULL; ;} break; case 611: -#line 1857 "harbour.y" +#line 1852 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 612: -#line 1860 "harbour.y" +#line 1855 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), hb_compExprNewNil( HB_COMP_PARAM ) ); ;} break; case 613: -#line 1861 "harbour.y" +#line 1856 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), (yyvsp[(2) - (2)].asExpr) ); ;} break; case 614: -#line 1862 "harbour.y" +#line 1857 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 615: -#line 1863 "harbour.y" +#line 1858 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (2)].asExpr), hb_compExprNewNil( HB_COMP_PARAM ) ); ;} break; case 616: -#line 1864 "harbour.y" +#line 1859 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 617: -#line 1867 "harbour.y" +#line 1862 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 622: -#line 1875 "harbour.y" +#line 1870 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); @@ -6976,7 +6971,7 @@ yyreduce: break; case 623: -#line 1884 "harbour.y" +#line 1879 "harbour.y" { if( HB_COMP_PARAM->wWithObjectCnt ) --HB_COMP_PARAM->wWithObjectCnt; if( (yyvsp[(5) - (6)].lNumber) ) @@ -6991,13 +6986,13 @@ yyreduce: break; case 624: -#line 1897 "harbour.y" +#line 1892 "harbour.y" { HB_COMP_PARAM->fError = FALSE; ;} break; /* Line 1268 of yacc.c. */ -#line 7001 "harboury.c" +#line 6996 "harboury.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -7216,7 +7211,7 @@ yyreturn: } -#line 1901 "harbour.y" +#line 1896 "harbour.y" /* diff --git a/harbour/source/pp/Makefile b/harbour/source/pp/Makefile index 9bc3f1da9e..796879c8fe 100644 --- a/harbour/source/pp/Makefile +++ b/harbour/source/pp/Makefile @@ -16,7 +16,9 @@ LIBNAME=pp LIBS=\ common \ -HB_PPGEN_PATH ?= . +ifeq ($(HB_PPGEN_PATH),) + HB_PPGEN_PATH=. +endif include $(TOP)$(ROOT)config/lib.cf diff --git a/harbour/source/rtl/tclass.prg b/harbour/source/rtl/tclass.prg index 9408274fbf..034a786d56 100644 --- a/harbour/source/rtl/tclass.prg +++ b/harbour/source/rtl/tclass.prg @@ -305,15 +305,20 @@ RETURN oInstance STATIC PROCEDURE AddData( cData, xInit, cType, nScope, lNoinit ) + LOCAL c + DEFAULT lNoInit TO .F. DEFAULT nScope TO HB_OO_CLSTP_EXPORTED // Default Init for Logical and numeric IF ! lNoInit .AND. cType != NIL .AND. xInit == NIL - IF Upper( Left( cType, 1 ) ) == "L" + c := Upper( Left( cType, 1 ) ) + IF c == "L" /* Logical */ xInit := .F. - ELSEIF Upper( Left( cType, 1 ) ) $ "NI" /* Numeric Int */ + ELSEIF c $ "NI" /* Numeric or Integer */ xInit := 0 + ELSEIF c == "D" /* Date */ + xInit := Ctod("") ENDIF ENDIF @@ -351,6 +356,8 @@ STATIC PROCEDURE AddClassData( cData, xInit, cType, nScope, lNoInit ) xInit := .F. ELSEIF c $ "NI" /* Numeric or Integer */ xInit := 0 + ELSEIF c == "D" /* Date */ + xInit := Ctod("") ENDIF ENDIF