From defb63f5f27aee18f5429ffda8de7e7424ebe953 Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Tue, 29 May 2007 23:04:09 +0000 Subject: [PATCH] 2007-05-30 01:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcompdf.h * harbour/include/hbexprb.c * harbour/source/common/expropt1.c * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/macro/macro.y * harbour/source/macro/macro.yyc ! fixed bug in operator precedence - seems that it existed from beginning and partially were fixed in xHarbour. This code exploits the problem: #define EOL chr(13)+chr(10) #command ? [] => [outstd( );]outstd(EOL) #command TEST => BEGIN SEQUENCE ; ; ? ; ; RECOVER USING oErr ; ; ? "Error:", oErr:subCode, ; oErr:description, oErr:operation ; ; END proc main() local oErr, s1:="X", s2:="Y", t:=.T. errorBlock({|oErr|break(oErr)}) TEST t != s1 $ s2 TEST t == s1 $ s2 TEST t = s1 $ s2 TEST t < s1 $ s2 TEST t <= s1 $ s2 TEST t > s1 $ s2 TEST t >= s1 $ s2 TEST s1 $ s2 != t TEST s1 $ s2 == t TEST s1 $ s2 = t TEST s1 $ s2 > t TEST s1 $ s2 < t TEST s1 $ s2 >= t TEST s1 $ s2 <= t return --- harbour/ChangeLog | 38 + harbour/include/hbcompdf.h | 4 +- harbour/include/hbexprb.c | 4 +- harbour/source/common/expropt1.c | 14 +- harbour/source/compiler/harbour.y | 11 +- harbour/source/compiler/harbour.yyc | 1142 +++++++++++++-------------- harbour/source/macro/macro.y | 5 +- harbour/source/macro/macro.yyc | 418 +++++----- 8 files changed, 838 insertions(+), 798 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 3fc98b090d..a910ab1267 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,44 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-05-30 01:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbcompdf.h + * harbour/include/hbexprb.c + * harbour/source/common/expropt1.c + * harbour/source/compiler/harbour.y + * harbour/source/compiler/harbour.yyc + * harbour/source/macro/macro.y + * harbour/source/macro/macro.yyc + ! fixed bug in operator precedence - seems that it existed from + beginning and partially were fixed in xHarbour. This code exploits + the problem: + #define EOL chr(13)+chr(10) + #command ? [] => [outstd( );]outstd(EOL) + #command TEST => BEGIN SEQUENCE ; + ; ? ; + ; RECOVER USING oErr ; + ; ? "Error:", oErr:subCode, ; + oErr:description, oErr:operation ; + ; END + proc main() + local oErr, s1:="X", s2:="Y", t:=.T. + errorBlock({|oErr|break(oErr)}) + TEST t != s1 $ s2 + TEST t == s1 $ s2 + TEST t = s1 $ s2 + TEST t < s1 $ s2 + TEST t <= s1 $ s2 + TEST t > s1 $ s2 + TEST t >= s1 $ s2 + TEST s1 $ s2 != t + TEST s1 $ s2 == t + TEST s1 $ s2 = t + TEST s1 $ s2 > t + TEST s1 $ s2 < t + TEST s1 $ s2 >= t + TEST s1 $ s2 <= t + return + 2007-05-29 10:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/makefile.vc * synced with BETA branch diff --git a/harbour/include/hbcompdf.h b/harbour/include/hbcompdf.h index 031a5fea36..a9eab5008b 100644 --- a/harbour/include/hbcompdf.h +++ b/harbour/include/hbcompdf.h @@ -326,12 +326,12 @@ typedef enum HB_EO_NOT, HB_EO_EQUAL, /* relational operators */ HB_EO_EQ, + HB_EO_NE, + HB_EO_IN, HB_EO_LT, HB_EO_GT, HB_EO_LE, HB_EO_GE, - HB_EO_NE, - HB_EO_IN, HB_EO_PLUS, /* addition */ HB_EO_MINUS, HB_EO_MULT, /* multiple */ diff --git a/harbour/include/hbexprb.c b/harbour/include/hbexprb.c index 5a8b7e8648..0014a029e1 100644 --- a/harbour/include/hbexprb.c +++ b/harbour/include/hbexprb.c @@ -189,12 +189,12 @@ const HB_EXPR_FUNC_PTR hb_comp_ExprTable[ HB_EXPR_COUNT ] = { hb_compExprUseNot, hb_compExprUseEqual, /* relational operators */ hb_compExprUseEQ, + hb_compExprUseNE, + hb_compExprUseIN, hb_compExprUseLT, hb_compExprUseGT, hb_compExprUseLE, hb_compExprUseGE, - hb_compExprUseNE, - hb_compExprUseIN, hb_compExprUsePlus, /* addition */ hb_compExprUseMinus, hb_compExprUseMult, /* multiple */ diff --git a/harbour/source/common/expropt1.c b/harbour/source/common/expropt1.c index e9be7bddc7..23938faa9c 100644 --- a/harbour/source/common/expropt1.c +++ b/harbour/source/common/expropt1.c @@ -101,12 +101,12 @@ static const char * s_OperTable[ HB_EXPR_COUNT ] = { ".NOT.", "=", /* relational operators */ "==", + "!=", + "$", "<", ">", "<=", ">=", - "!=", - "$", "+", /* addition */ "-", "*", /* multiple */ @@ -165,12 +165,12 @@ static const BYTE s_PrecedTable[ HB_EXPR_COUNT ] = { HB_ET_NIL, /* HB_EO_NOT, */ HB_EO_EQUAL, /* HB_EO_EQUAL, relational operators */ HB_EO_EQUAL, /* HB_EO_EQ, */ - HB_EO_EQUAL, /* HB_EO_LT, */ - HB_EO_EQUAL, /* HB_EO_GT, */ - HB_EO_EQUAL, /* HB_EO_LE, */ - HB_EO_EQUAL, /* HB_EO_GE, */ HB_EO_EQUAL, /* HB_EO_NE, */ - HB_EO_EQUAL, /* HB_EO_IN, */ + HB_EO_LT, /* HB_EO_IN, */ + HB_EO_LT, /* HB_EO_LT, */ + HB_EO_LT, /* HB_EO_GT, */ + HB_EO_LT, /* HB_EO_LE, */ + HB_EO_LT, /* HB_EO_GE, */ HB_EO_PLUS, /* HB_EO_PLUS, addition */ HB_EO_PLUS, /* HB_EO_MINUS, */ HB_EO_MULT, /* HB_EO_MULT, multiple */ diff --git a/harbour/source/compiler/harbour.y b/harbour/source/compiler/harbour.y index c78cb48a96..72302263e5 100644 --- a/harbour/source/compiler/harbour.y +++ b/harbour/source/compiler/harbour.y @@ -173,9 +173,9 @@ extern void yyerror( HB_COMP_DECL, char * ); /* parsing error management fun /*the lowest precedence*/ /*postincrement and postdecrement*/ -%left POST +%left POST /*assigment - from right to left*/ -%right INASSIGN +%right INASSIGN %right PLUSEQ MINUSEQ %right MULTEQ DIVEQ MODEQ %right EXPEQ @@ -184,17 +184,18 @@ extern void yyerror( HB_COMP_DECL, char * ); /* parsing error management fun %right AND %right NOT /*relational operators*/ -%right '=' '<' '>' EQ NE1 NE2 LE GE '$' +%right '=' EQ NE1 NE2 +%right '<' '>' LE GE '$' /*mathematical operators*/ %right '+' '-' %right '*' '/' '%' %right POWER -%right UNARY +%right UNARY /*preincrement and predecrement*/ %right PRE /*special operators*/ %right ALIASOP '&' '@' -%right '\n' ';' ',' +%right '\n' ';' ',' /*the highest precedence*/ %type IdentName IDENTIFIER MACROVAR MACROTEXT CompTimeStr InAlias diff --git a/harbour/source/compiler/harbour.yyc b/harbour/source/compiler/harbour.yyc index bd97d200e4..8e384acdd7 100644 --- a/harbour/source/compiler/harbour.yyc +++ b/harbour/source/compiler/harbour.yyc @@ -712,10 +712,10 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 118, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 108, 113, 116, 2, + 2, 2, 2, 2, 2, 2, 106, 113, 116, 2, 121, 122, 111, 109, 120, 110, 2, 112, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 125, 119, - 106, 105, 107, 2, 117, 2, 2, 2, 2, 2, + 107, 105, 108, 2, 117, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 127, 2, 126, 2, 2, 2, 2, 2, 2, @@ -929,9 +929,9 @@ static const yytype_int16 yyrhs[] = -1, 219, 111, 219, -1, 219, 112, 219, -1, 219, 113, 219, -1, 219, 58, 219, -1, 219, 27, 219, -1, 219, 28, 219, -1, 219, 31, 219, -1, 219, - 106, 219, -1, 219, 107, 219, -1, 219, 49, 219, + 107, 219, -1, 219, 108, 219, -1, 219, 49, 219, -1, 219, 50, 219, -1, 219, 32, 219, -1, 219, - 33, 219, -1, 219, 108, 219, -1, 219, 105, 219, + 33, 219, -1, 219, 106, 219, -1, 219, 105, 219, -1, 243, 126, -1, 127, 222, -1, 243, 120, 222, -1, 243, 126, 127, 222, -1, 206, -1, 244, 120, 206, -1, -1, 95, 246, 247, 128, -1, -1, 102, @@ -1009,69 +1009,69 @@ static const yytype_int16 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 265, 265, 266, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 283, 288, 296, 296, - 297, 297, 298, 298, 299, 299, 302, 303, 304, 305, - 308, 309, 310, 311, 314, 315, 318, 319, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 344, 345, 353, 354, - 355, 356, 357, 358, 364, 370, 371, 372, 373, 374, - 375, 376, 377, 379, 379, 385, 386, 387, 399, 399, - 422, 424, 422, 428, 430, 428, 434, 435, 436, 437, - 438, 439, 439, 453, 456, 464, 477, 477, 480, 481, - 482, 483, 484, 485, 497, 498, 499, 500, 503, 504, - 505, 506, 509, 510, 513, 514, 517, 518, 521, 522, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 547, 548, - 551, 559, 560, 565, 568, 573, 579, 584, 589, 590, - 593, 598, 601, 612, 615, 620, 623, 626, 627, 630, - 633, 634, 639, 642, 647, 648, 651, 656, 659, 666, - 667, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 688, 689, 690, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 721, 722, - 723, 724, 725, 726, 731, 732, 733, 734, 735, 736, - 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, - 747, 748, 751, 754, 754, 757, 758, 758, 759, 759, - 763, 766, 769, 770, 773, 774, 777, 778, 779, 780, - 781, 784, 785, 790, 791, 792, 798, 799, 800, 803, - 806, 811, 811, 814, 823, 824, 825, 826, 827, 828, - 829, 830, 830, 831, 832, 833, 834, 835, 836, 837, - 838, 839, 840, 840, 841, 842, 843, 843, 844, 845, - 845, 846, 847, 848, 849, 850, 851, 852, 853, 856, - 857, 858, 859, 859, 860, 860, 861, 864, 865, 868, - 869, 872, 873, 874, 875, 876, 877, 878, 885, 886, - 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, - 897, 898, 899, 900, 901, 902, 903, 904, 905, 911, - 912, 915, 918, 919, 922, 923, 924, 927, 928, 929, - 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, - 940, 941, 942, 943, 944, 945, 946, 947, 950, 953, - 956, 959, 962, 965, 968, 971, 972, 973, 974, 975, - 976, 979, 980, 981, 982, 983, 984, 987, 988, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1002, 1008, - 1009, 1010, 1013, 1014, 1017, 1017, 1023, 1024, 1025, 1026, - 1029, 1030, 1033, 1034, 1037, 1039, 1038, 1074, 1075, 1077, - 1080, 1089, 1093, 1096, 1096, 1098, 1098, 1100, 1100, 1110, - 1111, 1114, 1115, 1123, 1124, 1126, 1130, 1139, 1139, 1156, - 1159, 1156, 1188, 1194, 1197, 1198, 1199, 1202, 1202, 1210, - 1211, 1214, 1215, 1218, 1218, 1221, 1222, 1225, 1225, 1248, - 1248, 1249, 1250, 1251, 1251, 1254, 1255, 1258, 1259, 1260, - 1261, 1264, 1264, 1286, 1286, 1342, 1343, 1344, 1345, 1348, - 1349, 1352, 1355, 1356, 1357, 1358, 1359, 1360, 1363, 1364, - 1365, 1366, 1367, 1368, 1371, 1372, 1373, 1374, 1375, 1376, - 1377, 1378, 1381, 1382, 1383, 1384, 1388, 1390, 1387, 1395, - 1395, 1399, 1401, 1399, 1409, 1411, 1409, 1420, 1423, 1428, - 1432, 1436, 1439, 1445, 1450, 1457, 1457, 1460, 1461, 1469, - 1470, 1469, 1481, 1482, 1481, 1494, 1494, 1494, 1496, 1496, - 1501, 1506, 1500, 1520, 1523, 1524, 1528, 1540, 1545, 1527, - 1585, 1586, 1589, 1590, 1593, 1596, 1599, 1602, 1607, 1608, - 1611, 1612, 1615, 1616, 1619, 1620, 1625, 1631, 1640, 1624, - 1660, 1661, 1665, 1664, 1677, 1684, 1692, 1691, 1701, 1702, - 1710, 1710, 1713, 1713, 1716, 1718, 1721, 1721, 1721, 1726, - 1733, 1741, 1751, 1725, 1775, 1776, 1779, 1787, 1788, 1789, - 1792, 1803, 1821, 1822, 1826, 1825, 1833, 1832, 1843, 1844, - 1847, 1848, 1849, 1850, 1851, 1854, 1855, 1856, 1857, 1858, - 1862, 1861, 1884, 1885 + 0, 266, 266, 267, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 284, 289, 297, 297, + 298, 298, 299, 299, 300, 300, 303, 304, 305, 306, + 309, 310, 311, 312, 315, 316, 319, 320, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 345, 346, 354, 355, + 356, 357, 358, 359, 365, 371, 372, 373, 374, 375, + 376, 377, 378, 380, 380, 386, 387, 388, 400, 400, + 423, 425, 423, 429, 431, 429, 435, 436, 437, 438, + 439, 440, 440, 454, 457, 465, 478, 478, 481, 482, + 483, 484, 485, 486, 498, 499, 500, 501, 504, 505, + 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, + 1734, 1742, 1752, 1726, 1776, 1777, 1780, 1788, 1789, 1790, + 1793, 1804, 1822, 1823, 1827, 1826, 1834, 1833, 1844, 1845, + 1848, 1849, 1850, 1851, 1852, 1855, 1856, 1857, 1858, 1859, + 1863, 1862, 1885, 1886 }; #endif @@ -1097,7 +1097,7 @@ static const char *const yytname[] = "AS_DATE_ARRAY", "AS_LOGICAL_ARRAY", "AS_NUMERIC_ARRAY", "AS_OBJECT_ARRAY", "PROCREQ", "CBSTART", "DOIDENT", "FOREACH", "DESCEND", "DOSWITCH", "WITHOBJECT", "NUM_DATE", "EPSILON", "HASHOP", "POST", "'='", - "'<'", "'>'", "'$'", "'+'", "'-'", "'*'", "'/'", "'%'", "UNARY", "PRE", + "'$'", "'<'", "'>'", "'+'", "'-'", "'*'", "'/'", "'%'", "UNARY", "PRE", "'&'", "'@'", "'\\n'", "';'", "','", "'('", "')'", "'{'", "'}'", "':'", "']'", "'['", "'|'", "$accept", "Main", "Source", "Line", "Function", "@1", "@2", "@3", "@4", "FunScope", "Params", "AsType", "AsArrayType", @@ -1157,7 +1157,7 @@ static const yytype_uint16 yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 61, 60, 62, 36, 43, + 355, 356, 357, 358, 359, 61, 36, 60, 62, 43, 45, 42, 47, 37, 360, 361, 38, 64, 10, 59, 44, 40, 41, 123, 125, 58, 93, 91, 124 }; @@ -1371,7 +1371,7 @@ static const yytype_uint16 yydefact[] = 0, 113, 0, 0, 532, 519, 0, 538, 520, 540, 0, 586, 0, 584, 79, 0, 437, 36, 0, 0, 424, 426, 309, 272, 303, 283, 287, 290, 387, 388, - 389, 394, 395, 392, 393, 386, 397, 390, 391, 396, + 389, 394, 395, 392, 393, 386, 397, 396, 390, 391, 381, 382, 383, 384, 385, 507, 305, 92, 117, 119, 434, 36, 0, 0, 455, 0, 454, 546, 449, 0, 0, 0, 428, 0, 0, 590, 74, 605, 0, 16, @@ -1508,7 +1508,7 @@ static const yytype_int16 yypact[] = 8412, -899, 7261, 326, -899, -899, 390, -899, -899, -899, 7261, -899, 423, -899, -899, 7261, 641, 596, 150, 8412, -899, -899, 7618, -899, -899, -899, -899, -899, 3201, 3691, - 2405, 2405, 2405, 2405, 2405, 594, 2405, 2405, 2405, 2405, + 2405, 2405, 2405, 749, 749, 594, 2405, 749, 749, 749, 380, 380, 161, 161, 161, -899, -899, -899, -899, -899, 644, 596, 8368, 326, -899, 8412, -899, 3691, -899, 8412, 8412, 326, -899, 326, 4810, -899, -899, -899, 636, -899, @@ -1659,14 +1659,14 @@ static const yytype_int16 yytable[] = 481, 81, 788, 73, 531, 981, 811, 70, 530, 913, 85, 117, 885, 637, 73, 646, -134, -134, -134, -134, 216, -134, -134, 737, 992, 85, -130, 875, 707, 774, - 0, 372, 775, 0, 0, 0, 0, 87, 0, 0, - 220, 0, -130, 0, 0, 217, -130, 0, -130, 0, + 0, 372, 775, 0, 0, 0, 0, 87, 498, 499, + 220, 0, -130, 0, 0, 217, -130, 500, -130, 0, 0, 0, 75, 0, 0, 0, -321, 0, 299, 0, 0, 0, 0, 75, 0, 0, 0, -134, 0, 0, 0, 81, 87, 0, 0, 73, 0, 221, 81, 68, 85, 0, 85, -134, 0, 0, 117, -134, 0, -134, - 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 87, 70, 0, 730, 0, 0, 0, + 0, 0, 87, 0, 0, 502, 503, 504, 505, 506, + 507, 508, 509, 87, 70, 0, 730, 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 87, 0, 0, 117, 0, 0, 75, 0, 85, 0, 0, 0, 85, 0, 0, 0, 0, 85, 85, 0, 0, 0, @@ -2519,14 +2519,14 @@ static const yytype_int16 yycheck[] = 149, 59, 692, 460, 240, 969, 718, 532, 239, 867, 770, 629, 825, 449, 471, 468, 54, 55, 56, 57, 570, 59, 60, 570, 987, 785, 105, 817, 534, 652, - -1, 89, 652, -1, -1, -1, -1, 704, -1, -1, - 275, -1, 121, -1, -1, 570, 125, -1, 127, -1, + -1, 89, 652, -1, -1, -1, -1, 704, 49, 50, + 275, -1, 121, -1, -1, 570, 125, 58, 127, -1, -1, -1, 460, -1, -1, -1, 125, -1, 127, -1, -1, -1, -1, 471, -1, -1, -1, 105, -1, -1, -1, 129, 739, -1, -1, 532, -1, 275, 136, 629, 840, -1, 842, 121, -1, -1, 704, 125, -1, 127, - -1, -1, 759, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 770, 629, -1, 724, -1, -1, -1, + -1, -1, 759, -1, -1, 106, 107, 108, 109, 110, + 111, 112, 113, 770, 629, -1, 724, -1, -1, -1, -1, -1, -1, 570, -1, -1, -1, -1, 785, -1, -1, 739, -1, -1, 532, -1, 886, -1, -1, -1, 890, -1, -1, -1, -1, 895, 896, -1, -1, -1, @@ -3917,12 +3917,12 @@ yydestruct (yymsg, yytype, yyvaluep, pComp) switch (yytype) { case 19: /* "LITERAL" */ -#line 261 "harbour.y" +#line 262 "harbour.y" { if( (yyvaluep->valChar).dealloc ) hb_xfree( (yyvaluep->valChar).string ); }; #line 3923 "harboury.c" break; case 95: /* "CBSTART" */ -#line 260 "harbour.y" +#line 261 "harbour.y" { if( (yyvaluep->asCodeblock).string ) hb_xfree( (yyvaluep->asCodeblock).string ); }; #line 3928 "harboury.c" break; @@ -4234,17 +4234,17 @@ yyreduce: switch (yyn) { case 9: -#line 274 "harbour.y" +#line 275 "harbour.y" { yyclearin; yyerrok; ;} break; case 15: -#line 280 "harbour.y" +#line 281 "harbour.y" { yyclearin; yyerrok; ;} break; case 16: -#line 284 "harbour.y" +#line 285 "harbour.y" { HB_COMP_PARAM->currModule = hb_compIdentifierNew( HB_COMP_PARAM, (yyvsp[(3) - (4)].valChar).string, (yyvsp[(3) - (4)].valChar).dealloc ? HB_IDENT_FREE : HB_IDENT_STATIC ); HB_COMP_PARAM->currLine = (yyvsp[(2) - (4)].valLong).lNumber; HB_COMP_PARAM->pLex->fEol = FALSE; @@ -4252,7 +4252,7 @@ yyreduce: break; case 17: -#line 289 "harbour.y" +#line 290 "harbour.y" { HB_COMP_PARAM->currModule = hb_compIdentifierNew( HB_COMP_PARAM, (yyvsp[(5) - (6)].valChar).string, (yyvsp[(5) - (6)].valChar).dealloc ? HB_IDENT_FREE : HB_IDENT_STATIC ); HB_COMP_PARAM->currLine = (yyvsp[(2) - (6)].valLong).lNumber; HB_COMP_PARAM->pLex->fEol = FALSE; @@ -4261,187 +4261,187 @@ yyreduce: break; case 18: -#line 296 "harbour.y" +#line 297 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; hb_compFunctionAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), ( HB_SYMBOLSCOPE ) (yyvsp[(1) - (3)].iNumber), 0 ); ;} break; case 20: -#line 297 "harbour.y" +#line 298 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; hb_compFunctionAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), ( HB_SYMBOLSCOPE ) (yyvsp[(1) - (3)].iNumber), FUN_PROCEDURE ); ;} break; case 22: -#line 298 "harbour.y" +#line 299 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; hb_compFunctionAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), ( HB_SYMBOLSCOPE ) (yyvsp[(1) - (3)].iNumber), 0 ); HB_COMP_PARAM->iVarScope = VS_PARAMETER; ;} break; case 24: -#line 299 "harbour.y" +#line 300 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; hb_compFunctionAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), ( HB_SYMBOLSCOPE ) (yyvsp[(1) - (3)].iNumber), FUN_PROCEDURE ); HB_COMP_PARAM->iVarScope = VS_PARAMETER;;} break; case 26: -#line 302 "harbour.y" +#line 303 "harbour.y" { (yyval.iNumber) = HB_FS_PUBLIC; ;} break; case 27: -#line 303 "harbour.y" +#line 304 "harbour.y" { (yyval.iNumber) = HB_FS_STATIC; ;} break; case 28: -#line 304 "harbour.y" +#line 305 "harbour.y" { (yyval.iNumber) = HB_FS_INIT; ;} break; case 29: -#line 305 "harbour.y" +#line 306 "harbour.y" { (yyval.iNumber) = HB_FS_EXIT; ;} break; case 30: -#line 308 "harbour.y" +#line 309 "harbour.y" { (yyval.iNumber) = 0; ;} break; case 31: -#line 309 "harbour.y" +#line 310 "harbour.y" { HB_COMP_PARAM->functions.pLast->fVParams = TRUE; (yyval.iNumber) = 0; ;} break; case 33: -#line 311 "harbour.y" +#line 312 "harbour.y" { HB_COMP_PARAM->functions.pLast->fVParams = TRUE; (yyval.iNumber) = (yyvsp[(1) - (3)].iNumber); ;} break; case 34: -#line 314 "harbour.y" +#line 315 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 36: -#line 318 "harbour.y" +#line 319 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 38: -#line 322 "harbour.y" +#line 323 "harbour.y" { HB_COMP_PARAM->cVarType = 'N'; ;} break; case 39: -#line 323 "harbour.y" +#line 324 "harbour.y" { HB_COMP_PARAM->cVarType = 'C'; ;} break; case 40: -#line 324 "harbour.y" +#line 325 "harbour.y" { HB_COMP_PARAM->cVarType = 'D'; ;} break; case 41: -#line 325 "harbour.y" +#line 326 "harbour.y" { HB_COMP_PARAM->cVarType = 'L'; ;} break; case 42: -#line 326 "harbour.y" +#line 327 "harbour.y" { HB_COMP_PARAM->cVarType = 'B'; ;} break; case 43: -#line 327 "harbour.y" +#line 328 "harbour.y" { HB_COMP_PARAM->cVarType = 'O'; ;} break; case 44: -#line 328 "harbour.y" +#line 329 "harbour.y" { HB_COMP_PARAM->cVarType = 'S'; HB_COMP_PARAM->szFromClass = (yyvsp[(2) - (2)].string); ;} break; case 45: -#line 329 "harbour.y" +#line 330 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 47: -#line 333 "harbour.y" +#line 334 "harbour.y" { HB_COMP_PARAM->cVarType = 'A'; ;} break; case 48: -#line 334 "harbour.y" +#line 335 "harbour.y" { HB_COMP_PARAM->cVarType = 'n'; ;} break; case 49: -#line 335 "harbour.y" +#line 336 "harbour.y" { HB_COMP_PARAM->cVarType = 'c'; ;} break; case 50: -#line 336 "harbour.y" +#line 337 "harbour.y" { HB_COMP_PARAM->cVarType = 'd'; ;} break; case 51: -#line 337 "harbour.y" +#line 338 "harbour.y" { HB_COMP_PARAM->cVarType = 'l'; ;} break; case 52: -#line 338 "harbour.y" +#line 339 "harbour.y" { HB_COMP_PARAM->cVarType = 'a'; ;} break; case 53: -#line 339 "harbour.y" +#line 340 "harbour.y" { HB_COMP_PARAM->cVarType = 'b'; ;} break; case 54: -#line 340 "harbour.y" +#line 341 "harbour.y" { HB_COMP_PARAM->cVarType = 'o'; ;} break; case 55: -#line 341 "harbour.y" +#line 342 "harbour.y" { HB_COMP_PARAM->cVarType = 's'; HB_COMP_PARAM->szFromClass = (yyvsp[(2) - (2)].string); ;} break; case 56: -#line 344 "harbour.y" +#line 345 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); (yyval.iNumber) = 1; ;} break; case 57: -#line 345 "harbour.y" +#line 346 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); (yyval.iNumber)++; ;} break; case 59: -#line 354 "harbour.y" - { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} - break; - - case 60: #line 355 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 61: + case 60: #line 356 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 62: + case 61: #line 357 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 63: + case 62: #line 358 "harbour.y" + { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} + break; + + case 63: +#line 359 "harbour.y" { if( HB_COMP_ISSUPPORTED( HB_COMPFLAG_XBASE ) ) HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); else @@ -4451,7 +4451,7 @@ yyreduce: break; case 64: -#line 364 "harbour.y" +#line 365 "harbour.y" { if( HB_COMP_ISSUPPORTED( HB_COMPFLAG_XBASE ) ) HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); else @@ -4461,53 +4461,53 @@ yyreduce: break; case 65: -#line 370 "harbour.y" - { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} - break; - - case 66: #line 371 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 67: + case 66: #line 372 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 68: + case 67: #line 373 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 69: + case 68: #line 374 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 70: + case 69: #line 375 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 71: + case 70: #line 376 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 72: + case 71: #line 377 "harbour.y" + { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ) ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} + break; + + case 72: +#line 378 "harbour.y" { hb_compGenBreak( HB_COMP_PARAM ); hb_compGenPCode2( HB_P_DOSHORT, 0, HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags |= FUN_BREAK_CODE; ;} break; case 73: -#line 379 "harbour.y" +#line 380 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 74: -#line 380 "harbour.y" +#line 381 "harbour.y" { hb_compGenBreak( HB_COMP_PARAM ); HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); hb_compGenPCode2( HB_P_DOSHORT, 1, HB_COMP_PARAM ); @@ -4516,17 +4516,17 @@ yyreduce: break; case 75: -#line 385 "harbour.y" +#line 386 "harbour.y" { hb_compLoopExit( HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags |= FUN_BREAK_CODE; ;} break; case 76: -#line 386 "harbour.y" +#line 387 "harbour.y" { hb_compLoopLoop( HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags |= FUN_BREAK_CODE; ;} break; case 77: -#line 387 "harbour.y" +#line 388 "harbour.y" { if( HB_COMP_PARAM->wSeqCounter ) { @@ -4542,12 +4542,12 @@ yyreduce: break; case 78: -#line 399 "harbour.y" +#line 400 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_PARAM->cVarType = ' '; ;} break; case 79: -#line 401 "harbour.y" +#line 402 "harbour.y" { HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' '; @@ -4572,12 +4572,12 @@ yyreduce: break; case 80: -#line 422 "harbour.y" +#line 423 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_PARAM->iVarScope = VS_PUBLIC; ;} break; case 81: -#line 424 "harbour.y" +#line 425 "harbour.y" { hb_compRTVariableGen( HB_COMP_PARAM, "__MVPUBLIC" ); HB_COMP_PARAM->cVarType = ' '; HB_COMP_PARAM->iVarScope = VS_NONE; HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; @@ -4585,12 +4585,12 @@ yyreduce: break; case 83: -#line 428 "harbour.y" +#line 429 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_PARAM->iVarScope = VS_PRIVATE; ;} break; case 84: -#line 430 "harbour.y" +#line 431 "harbour.y" { hb_compRTVariableGen( HB_COMP_PARAM, "__MVPRIVATE" ); HB_COMP_PARAM->cVarType = ' '; HB_COMP_PARAM->iVarScope = VS_NONE; HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; @@ -4598,7 +4598,7 @@ yyreduce: break; case 91: -#line 439 "harbour.y" +#line 440 "harbour.y" { if( HB_COMP_PARAM->szAnnounce == NULL ) { @@ -4616,12 +4616,12 @@ yyreduce: break; case 93: -#line 453 "harbour.y" +#line 454 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; case 94: -#line 456 "harbour.y" +#line 457 "harbour.y" { if( (yyvsp[(1) - (1)].valChar).dealloc ) { @@ -4633,7 +4633,7 @@ yyreduce: break; case 95: -#line 464 "harbour.y" +#line 465 "harbour.y" { { char szFileName[ _POSIX_PATH_MAX + 1 ]; @@ -4648,37 +4648,37 @@ yyreduce: break; case 96: -#line 477 "harbour.y" +#line 478 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 98: -#line 480 "harbour.y" +#line 481 "harbour.y" { (yyval.lNumber) = 0; ;} break; case 99: -#line 481 "harbour.y" - { (yyval.lNumber) = 1; ;} - break; - - case 100: #line 482 "harbour.y" { (yyval.lNumber) = 1; ;} break; - case 101: + case 100: #line 483 "harbour.y" + { (yyval.lNumber) = 1; ;} + break; + + case 101: +#line 484 "harbour.y" { (yyval.lNumber) = 0; ;} break; case 102: -#line 484 "harbour.y" +#line 485 "harbour.y" { (yyval.lNumber) = 0; hb_compCheckUnclosedStru( HB_COMP_PARAM ); ;} break; case 103: -#line 485 "harbour.y" +#line 486 "harbour.y" { if( HB_COMP_PARAM->ilastLineErr && HB_COMP_PARAM->ilastLineErr == HB_COMP_PARAM->currLine ) { yyclearin; @@ -4692,132 +4692,132 @@ yyreduce: break; case 113: -#line 510 "harbour.y" +#line 511 "harbour.y" { (yyval.lNumber) += (yyvsp[(2) - (2)].lNumber); ;} break; case 114: -#line 513 "harbour.y" +#line 514 "harbour.y" { (yyval.lNumber) = 0; ;} break; case 116: -#line 517 "harbour.y" +#line 518 "harbour.y" { hb_compExternAdd( HB_COMP_PARAM, (yyvsp[(1) - (1)].string), 0 ); ;} break; case 117: -#line 518 "harbour.y" +#line 519 "harbour.y" { hb_compExternAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), 0 ); ;} break; case 118: -#line 521 "harbour.y" +#line 522 "harbour.y" { hb_compExternAdd( HB_COMP_PARAM, (yyvsp[(1) - (1)].string), HB_FS_DEFERRED ); ;} break; case 119: -#line 522 "harbour.y" +#line 523 "harbour.y" { hb_compExternAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), HB_FS_DEFERRED ); ;} break; case 121: -#line 526 "harbour.y" +#line 527 "harbour.y" { (yyval.string) = "STEP"; ;} break; case 122: -#line 527 "harbour.y" +#line 528 "harbour.y" { (yyval.string) = "TO"; ;} break; case 123: -#line 528 "harbour.y" +#line 529 "harbour.y" { (yyval.string) = "LOOP"; ;} break; case 124: -#line 529 "harbour.y" +#line 530 "harbour.y" { (yyval.string) = "EXIT"; ;} break; case 125: -#line 530 "harbour.y" +#line 531 "harbour.y" { (yyval.string) = "IN"; ;} break; case 126: -#line 531 "harbour.y" - { (yyval.string) = (yyvsp[(1) - (1)].string); ;} - break; - - case 127: #line 532 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 128: + case 127: #line 533 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 129: + case 128: #line 534 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 130: + case 129: #line 535 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 131: + case 130: #line 536 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 132: + case 131: #line 537 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 133: + case 132: #line 538 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 134: + case 133: #line 539 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 135: + case 134: #line 540 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 136: + case 135: #line 541 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 137: + case 136: #line 542 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; + case 137: +#line 543 "harbour.y" + { (yyval.string) = (yyvsp[(1) - (1)].string); ;} + break; + case 138: -#line 547 "harbour.y" +#line 548 "harbour.y" { (yyval.asExpr) = hb_compExprNewDouble( (yyvsp[(1) - (1)].valDouble).dNumber, (yyvsp[(1) - (1)].valDouble).bWidth, (yyvsp[(1) - (1)].valDouble).bDec, HB_COMP_PARAM ); ;} break; case 139: -#line 548 "harbour.y" +#line 549 "harbour.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 140: -#line 551 "harbour.y" +#line 552 "harbour.y" { (yyval.asExpr) = hb_compExprNewDate( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); if( (yyvsp[(1) - (1)].valLong).lNumber == 0 ) { @@ -4827,22 +4827,22 @@ yyreduce: break; case 141: -#line 559 "harbour.y" +#line 560 "harbour.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (2)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 142: -#line 560 "harbour.y" +#line 561 "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 565 "harbour.y" +#line 566 "harbour.y" { (yyval.asExpr) = hb_compExprNewNil( HB_COMP_PARAM ); ;} break; case 145: -#line 573 "harbour.y" +#line 574 "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; @@ -4850,467 +4850,467 @@ yyreduce: break; case 148: -#line 589 "harbour.y" +#line 590 "harbour.y" { (yyval.asExpr) = hb_compExprNewLogical( TRUE, HB_COMP_PARAM ); ;} break; case 149: -#line 590 "harbour.y" +#line 591 "harbour.y" { (yyval.asExpr) = hb_compExprNewLogical( FALSE, HB_COMP_PARAM ); ;} break; case 151: -#line 598 "harbour.y" +#line 599 "harbour.y" { (yyval.asExpr) = hb_compExprNewSelf( HB_COMP_PARAM ); ;} break; case 153: -#line 612 "harbour.y" +#line 613 "harbour.y" { (yyval.asExpr) = hb_compExprNewArray( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 155: -#line 620 "harbour.y" +#line 621 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 157: -#line 626 "harbour.y" +#line 627 "harbour.y" { (yyval.asExpr) = hb_compExprNewHash( NULL, HB_COMP_PARAM ); ;} break; case 158: -#line 627 "harbour.y" +#line 628 "harbour.y" { (yyval.asExpr) = hb_compExprNewHash( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 160: -#line 633 "harbour.y" +#line 634 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 161: -#line 634 "harbour.y" +#line 635 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprAddListExpr( (yyvsp[(1) - (5)].asExpr), (yyvsp[(3) - (5)].asExpr) ), (yyvsp[(5) - (5)].asExpr) ); ;} break; case 162: -#line 639 "harbour.y" +#line 640 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 163: -#line 642 "harbour.y" +#line 643 "harbour.y" { (yyval.asExpr) = hb_compExprNewAlias( (yyvsp[(1) - (2)].string), HB_COMP_PARAM ); ;} break; case 164: -#line 647 "harbour.y" +#line 648 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, '&', (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 165: -#line 648 "harbour.y" +#line 649 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, 0, (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 167: -#line 656 "harbour.y" +#line 657 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( (yyvsp[(2) - (2)].asExpr), 0, NULL, HB_COMP_PARAM ); ;} break; case 169: -#line 666 "harbour.y" +#line 667 "harbour.y" { (yyval.asExpr) = hb_compExprNewAlias( "FIELD", HB_COMP_PARAM ); ;} break; case 170: -#line 667 "harbour.y" +#line 668 "harbour.y" { (yyval.asExpr) = (yyvsp[(3) - (3)].asExpr); ;} break; case 171: -#line 672 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 172: #line 673 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 173: + case 172: #line 674 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 174: + case 173: #line 675 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 175: + case 174: #line 676 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 176: + case 175: #line 677 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 177: + case 176: #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 178: + case 177: #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 179: + case 178: #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 180: + case 179: #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 181: + case 180: #line 682 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 182: + case 181: #line 683 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 183: + case 182: #line 684 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 184: + case 183: #line 685 "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" + { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + break; + case 185: -#line 688 "harbour.y" +#line 689 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 188: -#line 693 "harbour.y" - { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 189: #line 694 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 190: + case 189: #line 695 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 191: + case 190: #line 696 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 192: + case 191: #line 697 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} + { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 193: + case 192: #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 194: + case 193: #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 195: + case 194: #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 196: + case 195: #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 197: + case 196: #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 198: + case 197: #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 199: + case 198: #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 200: + case 199: #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 201: + case 200: #line 706 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 202: + case 201: #line 707 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 203: + case 202: #line 708 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 204: + case 203: #line 709 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 205: + case 204: #line 710 "harbour.y" - { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 206: + case 205: #line 711 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 207: + case 206: #line 712 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 208: -#line 721 "harbour.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + case 207: +#line 713 "harbour.y" + { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 209: + case 208: #line 722 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 210: + case 209: #line 723 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 211: + case 210: #line 724 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 212: + case 211: #line 725 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 213: + case 212: #line 726 "harbour.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 213: +#line 727 "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 731 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 215: #line 732 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 216: + case 215: #line 733 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 217: + case 216: #line 734 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 218: + case 217: #line 735 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 219: + case 218: #line 736 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 220: + case 219: #line 737 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 221: + case 220: #line 738 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 222: + case 221: #line 739 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 223: + case 222: #line 740 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 224: + case 223: #line 741 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 225: + case 224: #line 742 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 226: + case 225: #line 743 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 227: + case 226: #line 744 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 228: + case 227: #line 745 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 229: + case 228: #line 746 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 230: + case 229: #line 747 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 231: + case 230: #line 748 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; + case 231: +#line 749 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + case 233: -#line 754 "harbour.y" +#line 755 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 234: -#line 754 "harbour.y" +#line 755 "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 758 "harbour.y" +#line 759 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 237: -#line 758 "harbour.y" +#line 759 "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 759 "harbour.y" +#line 760 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 239: -#line 759 "harbour.y" +#line 760 "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 763 "harbour.y" +#line 764 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 242: -#line 769 "harbour.y" +#line 770 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 243: -#line 770 "harbour.y" +#line 771 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 246: -#line 777 "harbour.y" +#line 778 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ) ); ;} break; case 247: -#line 778 "harbour.y" - { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} - break; - - case 248: #line 779 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; - case 249: + case 248: #line 780 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; - case 250: + case 249: #line 781 "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" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr)->value.asList.reference = TRUE; ;} break; case 251: -#line 784 "harbour.y" +#line 785 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 253: -#line 790 "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 791 "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: + case 254: #line 792 "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" { 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 )); @@ -5318,457 +5318,457 @@ yyreduce: break; case 256: -#line 798 "harbour.y" +#line 799 "harbour.y" { (yyval.asMessage).value.string = (yyvsp[(1) - (1)].string); (yyval.asMessage).bMacro=FALSE; ;} break; case 257: -#line 799 "harbour.y" - { (yyval.asMessage).value.macro = (yyvsp[(1) - (1)].asExpr); (yyval.asMessage).bMacro=TRUE; ;} - break; - - case 258: #line 800 "harbour.y" { (yyval.asMessage).value.macro = (yyvsp[(1) - (1)].asExpr); (yyval.asMessage).bMacro=TRUE; ;} break; + case 258: +#line 801 "harbour.y" + { (yyval.asMessage).value.macro = (yyvsp[(1) - (1)].asExpr); (yyval.asMessage).bMacro=TRUE; ;} + break; + case 259: -#line 803 "harbour.y" +#line 804 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(3) - (4)].string), HB_COMP_PARAM ); ;} break; case 261: -#line 811 "harbour.y" +#line 812 "harbour.y" {(yyval.bTrue)=HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 262: -#line 811 "harbour.y" +#line 812 "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 830 "harbour.y" +#line 831 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 272: -#line 830 "harbour.y" +#line 831 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 282: -#line 840 "harbour.y" +#line 841 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 283: -#line 840 "harbour.y" +#line 841 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 286: -#line 843 "harbour.y" +#line 844 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 287: -#line 843 "harbour.y" +#line 844 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 289: -#line 845 "harbour.y" +#line 846 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 290: -#line 845 "harbour.y" +#line 846 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 302: -#line 859 "harbour.y" +#line 860 "harbour.y" { HB_COMP_PARAM->cVarType = ' ';;} break; case 303: -#line 859 "harbour.y" +#line 860 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 304: -#line 860 "harbour.y" +#line 861 "harbour.y" { HB_COMP_PARAM->cVarType = ' ';;} break; case 305: -#line 860 "harbour.y" +#line 861 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 307: -#line 864 "harbour.y" +#line 865 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 309: -#line 868 "harbour.y" +#line 869 "harbour.y" { (yyval.asExpr) = hb_compExprNewEmpty( HB_COMP_PARAM ); ;} break; case 311: -#line 872 "harbour.y" +#line 873 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 317: -#line 878 "harbour.y" +#line 879 "harbour.y" { (yyval.asExpr) = hb_compExprListStrip( (yyvsp[(1) - (1)].asExpr), NULL ); ;} break; case 339: -#line 911 "harbour.y" +#line 912 "harbour.y" { (yyval.asExpr) = hb_compExprNewPostInc( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 340: -#line 912 "harbour.y" +#line 913 "harbour.y" { (yyval.asExpr) = hb_compExprNewPostDec( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 341: -#line 915 "harbour.y" +#line 916 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 342: -#line 918 "harbour.y" +#line 919 "harbour.y" { (yyval.asExpr) = hb_compExprNewPreInc( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 343: -#line 919 "harbour.y" +#line 920 "harbour.y" { (yyval.asExpr) = hb_compExprNewPreDec( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 344: -#line 922 "harbour.y" +#line 923 "harbour.y" { (yyval.asExpr) = hb_compExprNewNot( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 345: -#line 923 "harbour.y" +#line 924 "harbour.y" { (yyval.asExpr) = hb_compExprNewNegate( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 346: -#line 924 "harbour.y" +#line 925 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 347: -#line 927 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 348: #line 928 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 349: + case 348: #line 929 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 350: + case 349: #line 930 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 351: + case 350: #line 931 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 352: + case 351: #line 932 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 353: + case 352: #line 933 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 354: + case 353: #line 934 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 355: + case 354: #line 935 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 356: + case 355: #line 936 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 357: + case 356: #line 937 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 358: + case 357: #line 938 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 359: + case 358: #line 939 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 360: + case 359: #line 940 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 361: + case 360: #line 941 "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 = ' ';;} + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 362: + case 361: #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 363: + case 362: #line 943 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + { (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 364: + case 363: #line 944 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 365: + case 364: #line 945 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 366: + case 365: #line 946 "harbour.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 366: +#line 947 "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 947 "harbour.y" +#line 948 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 368: -#line 950 "harbour.y" +#line 951 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 369: -#line 953 "harbour.y" +#line 954 "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 956 "harbour.y" +#line 957 "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 959 "harbour.y" +#line 960 "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 962 "harbour.y" +#line 963 "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 965 "harbour.y" +#line 966 "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 968 "harbour.y" +#line 969 "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 979 "harbour.y" +#line 980 "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 980 "harbour.y" +#line 981 "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 981 "harbour.y" +#line 982 "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 982 "harbour.y" +#line 983 "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 983 "harbour.y" +#line 984 "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 984 "harbour.y" +#line 985 "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 987 "harbour.y" +#line 988 "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 988 "harbour.y" +#line 989 "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 991 "harbour.y" +#line 992 "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 992 "harbour.y" +#line 993 "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 993 "harbour.y" +#line 994 "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 994 "harbour.y" +#line 995 "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 995 "harbour.y" +#line 996 "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 996 "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 997 "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: + case 395: #line 998 "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" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewIN( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 397: -#line 999 "harbour.y" +#line 1000 "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 1008 "harbour.y" +#line 1009 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(0) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 400: -#line 1009 "harbour.y" +#line 1010 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 401: -#line 1010 "harbour.y" +#line 1011 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); ;} break; case 402: -#line 1013 "harbour.y" +#line 1014 "harbour.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 403: -#line 1014 "harbour.y" +#line 1015 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 404: -#line 1017 "harbour.y" +#line 1018 "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 1018 "harbour.y" +#line 1019 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (4)].asExpr); ;} break; case 406: -#line 1023 "harbour.y" +#line 1024 "harbour.y" { (yyval.asExpr) = NULL; ;} break; case 407: -#line 1024 "harbour.y" +#line 1025 "harbour.y" { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 408: -#line 1025 "harbour.y" +#line 1026 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} break; case 409: -#line 1026 "harbour.y" +#line 1027 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); (yyvsp[(0) - (3)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 410: -#line 1029 "harbour.y" +#line 1030 "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 1030 "harbour.y" +#line 1031 "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 1033 "harbour.y" +#line 1034 "harbour.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(0) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} break; case 413: -#line 1034 "harbour.y" +#line 1035 "harbour.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(0) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 415: -#line 1039 "harbour.y" +#line 1040 "harbour.y" { /* 3 */ HB_CBVAR_PTR pVar; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -5796,7 +5796,7 @@ yyreduce: break; case 416: -#line 1064 "harbour.y" +#line 1065 "harbour.y" { /* 6 */ hb_compCodeBlockEnd( HB_COMP_PARAM ); (yyval.asExpr) = hb_compExprSetCodeblockBody( (yyvsp[(1) - (5)].asExpr), @@ -5808,47 +5808,47 @@ yyreduce: break; case 417: -#line 1074 "harbour.y" +#line 1075 "harbour.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 418: -#line 1075 "harbour.y" +#line 1076 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 419: -#line 1077 "harbour.y" +#line 1078 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (3)].asExpr) ;} break; case 421: -#line 1090 "harbour.y" +#line 1091 "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 1096 "harbour.y" +#line 1097 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_LOCAL; hb_compLinePush( HB_COMP_PARAM ); ;} break; case 424: -#line 1097 "harbour.y" +#line 1098 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 425: -#line 1098 "harbour.y" +#line 1099 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_STATIC; hb_compLinePush( HB_COMP_PARAM ); ;} break; case 426: -#line 1099 "harbour.y" +#line 1100 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 427: -#line 1100 "harbour.y" +#line 1101 "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 @@ -5860,44 +5860,44 @@ yyreduce: break; case 428: -#line 1107 "harbour.y" +#line 1108 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 429: -#line 1110 "harbour.y" +#line 1111 "harbour.y" { (yyval.iNumber) = 1; ;} break; case 430: -#line 1111 "harbour.y" +#line 1112 "harbour.y" { (yyval.iNumber)++; ;} break; case 431: -#line 1114 "harbour.y" +#line 1115 "harbour.y" { (yyval.iNumber) = 1; ;} break; case 432: -#line 1115 "harbour.y" +#line 1116 "harbour.y" { (yyval.iNumber)++; ;} break; case 434: -#line 1125 "harbour.y" +#line 1126 "harbour.y" { hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), FALSE ); ;} break; case 435: -#line 1127 "harbour.y" +#line 1128 "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 1131 "harbour.y" +#line 1132 "harbour.y" { USHORT uCount = (USHORT) hb_compExprListLen( (yyvsp[(2) - (3)].asExpr) ); HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); @@ -5907,12 +5907,12 @@ yyreduce: break; case 437: -#line 1139 "harbour.y" +#line 1140 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 438: -#line 1140 "harbour.y" +#line 1141 "harbour.y" { if( HB_COMP_PARAM->iVarScope == VS_STATIC ) { @@ -5932,19 +5932,19 @@ yyreduce: break; case 439: -#line 1156 "harbour.y" +#line 1157 "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 1159 "harbour.y" +#line 1160 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 441: -#line 1160 "harbour.y" +#line 1161 "harbour.y" { HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' '; @@ -5975,32 +5975,32 @@ yyreduce: break; case 442: -#line 1188 "harbour.y" +#line 1189 "harbour.y" { hb_compVariableDim( (yyvsp[(1) - (3)].string), (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 444: -#line 1197 "harbour.y" +#line 1198 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 445: -#line 1198 "harbour.y" +#line 1199 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 446: -#line 1199 "harbour.y" +#line 1200 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr) ); ;} break; case 447: -#line 1202 "harbour.y" +#line 1203 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_FIELD; ;} break; case 448: -#line 1204 "harbour.y" +#line 1205 "harbour.y" { if( (yyvsp[(4) - (5)].string) ) hb_compFieldSetAlias( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), (yyvsp[(3) - (5)].iNumber) ); HB_COMP_PARAM->cVarType = ' '; @@ -6008,52 +6008,52 @@ yyreduce: break; case 449: -#line 1210 "harbour.y" +#line 1211 "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 1211 "harbour.y" +#line 1212 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} break; case 451: -#line 1214 "harbour.y" +#line 1215 "harbour.y" { (yyval.string) = NULL; ;} break; case 452: -#line 1215 "harbour.y" +#line 1216 "harbour.y" { (yyval.string) = (yyvsp[(2) - (2)].string); ;} break; case 453: -#line 1218 "harbour.y" +#line 1219 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_MEMVAR; ;} break; case 454: -#line 1218 "harbour.y" +#line 1219 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 455: -#line 1221 "harbour.y" +#line 1222 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 456: -#line 1222 "harbour.y" +#line 1223 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} break; case 457: -#line 1225 "harbour.y" +#line 1226 "harbour.y" { hb_compDeclaredAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->szDeclaredFun = (yyvsp[(2) - (3)].string); ;} break; case 458: -#line 1226 "harbour.y" +#line 1227 "harbour.y" { if( HB_COMP_PARAM->pLastDeclared ) { @@ -6079,42 +6079,42 @@ yyreduce: break; case 459: -#line 1248 "harbour.y" +#line 1249 "harbour.y" { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (2)].string) ); ;} break; case 460: -#line 1248 "harbour.y" +#line 1249 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 461: -#line 1249 "harbour.y" +#line 1250 "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 1250 "harbour.y" +#line 1251 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 463: -#line 1251 "harbour.y" +#line 1252 "harbour.y" { HB_COMP_PARAM->cDataListType = HB_COMP_PARAM->cVarType; ;} break; case 464: -#line 1251 "harbour.y" +#line 1252 "harbour.y" { HB_COMP_PARAM->cDataListType = 0; HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 471: -#line 1264 "harbour.y" +#line 1265 "harbour.y" { HB_COMP_PARAM->pLastMethod = hb_compMethodAdd( HB_COMP_PARAM, HB_COMP_PARAM->pLastClass, (yyvsp[(1) - (2)].string) ); ;} break; case 472: -#line 1265 "harbour.y" +#line 1266 "harbour.y" { if( HB_COMP_PARAM->pLastMethod ) { @@ -6137,12 +6137,12 @@ yyreduce: break; case 473: -#line 1286 "harbour.y" +#line 1287 "harbour.y" { HB_COMP_PARAM->pLastMethod = hb_compMethodAdd( HB_COMP_PARAM, HB_COMP_PARAM->pLastClass, (yyvsp[(1) - (1)].string) ); ;} break; case 474: -#line 1287 "harbour.y" +#line 1288 "harbour.y" { if( HB_COMP_PARAM->pLastMethod ) { @@ -6199,174 +6199,174 @@ yyreduce: break; case 481: -#line 1352 "harbour.y" +#line 1353 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (1)].asExpr) ); ;} break; case 482: -#line 1355 "harbour.y" +#line 1356 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 483: -#line 1356 "harbour.y" +#line 1357 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_BYREF ); ;} break; case 484: -#line 1357 "harbour.y" +#line 1358 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (5)].string), 'F' ); ;} break; case 485: -#line 1358 "harbour.y" +#line 1359 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} break; case 486: -#line 1359 "harbour.y" +#line 1360 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_BYREF ); ;} break; case 487: -#line 1360 "harbour.y" +#line 1361 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (7)].string), 'F' ); ;} break; case 488: -#line 1363 "harbour.y" +#line 1364 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL ); ;} break; case 489: -#line 1364 "harbour.y" +#line 1365 "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 1365 "harbour.y" +#line 1366 "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 1366 "harbour.y" +#line 1367 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL ); ;} break; case 492: -#line 1367 "harbour.y" +#line 1368 "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 1368 "harbour.y" +#line 1369 "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 1381 "harbour.y" +#line 1382 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (2)].iNumber), HB_COMP_PARAM ); ;} break; case 503: -#line 1382 "harbour.y" +#line 1383 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (3)].iNumber), HB_COMP_PARAM ); ;} break; case 504: -#line 1383 "harbour.y" +#line 1384 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (3)].iNumber), HB_COMP_PARAM ); hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} break; case 505: -#line 1384 "harbour.y" +#line 1385 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (4)].iNumber), HB_COMP_PARAM ); hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} break; case 506: -#line 1388 "harbour.y" +#line 1389 "harbour.y" { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 507: -#line 1390 "harbour.y" +#line 1391 "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 1392 "harbour.y" +#line 1393 "harbour.y" { (yyval.iNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} break; case 509: -#line 1395 "harbour.y" +#line 1396 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; case 511: -#line 1399 "harbour.y" +#line 1400 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; hb_compLinePush( HB_COMP_PARAM ); ;} break; case 512: -#line 1401 "harbour.y" +#line 1402 "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 1405 "harbour.y" +#line 1406 "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 1409 "harbour.y" +#line 1410 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; hb_compLinePush( HB_COMP_PARAM ); ;} break; case 515: -#line 1411 "harbour.y" +#line 1412 "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 1415 "harbour.y" +#line 1416 "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 1420 "harbour.y" +#line 1421 "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 1423 "harbour.y" +#line 1424 "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 1430 "harbour.y" +#line 1431 "harbour.y" { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} break; case 522: -#line 1442 "harbour.y" +#line 1443 "harbour.y" { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} break; case 523: -#line 1446 "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 ); @@ -6374,7 +6374,7 @@ yyreduce: break; case 524: -#line 1451 "harbour.y" +#line 1452 "harbour.y" { if( HB_COMP_PARAM->wCaseCounter ) --HB_COMP_PARAM->wCaseCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); @@ -6382,12 +6382,12 @@ yyreduce: break; case 525: -#line 1457 "harbour.y" +#line 1458 "harbour.y" { ++HB_COMP_PARAM->wCaseCounter; hb_compLinePushIfDebugger( HB_COMP_PARAM );;} break; case 528: -#line 1461 "harbour.y" +#line 1462 "harbour.y" { if( (yyvsp[(2) - (2)].lNumber) > 0 ) { @@ -6397,12 +6397,12 @@ yyreduce: break; case 529: -#line 1469 "harbour.y" +#line 1470 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 530: -#line 1470 "harbour.y" +#line 1471 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); @@ -6410,7 +6410,7 @@ yyreduce: break; case 531: -#line 1475 "harbour.y" +#line 1476 "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 ) ); @@ -6419,12 +6419,12 @@ yyreduce: break; case 532: -#line 1481 "harbour.y" +#line 1482 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 533: -#line 1482 "harbour.y" +#line 1483 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); @@ -6432,7 +6432,7 @@ yyreduce: break; case 534: -#line 1487 "harbour.y" +#line 1488 "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 ) ); @@ -6441,22 +6441,22 @@ yyreduce: break; case 535: -#line 1494 "harbour.y" +#line 1495 "harbour.y" {hb_compLinePushIfDebugger( HB_COMP_PARAM ); ;} break; case 536: -#line 1494 "harbour.y" +#line 1495 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; case 538: -#line 1496 "harbour.y" +#line 1497 "harbour.y" { hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_MAYHEM_IN_CASE, NULL, NULL ); ;} break; case 540: -#line 1501 "harbour.y" +#line 1502 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); (yyval.lNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); @@ -6464,7 +6464,7 @@ yyreduce: break; case 541: -#line 1506 "harbour.y" +#line 1507 "harbour.y" { hb_compLoopHere( HB_COMP_PARAM ); hb_compGenJump( (yyvsp[(1) - (5)].lNumber) - HB_COMP_PARAM->functions.pLast->lPCodePos, HB_COMP_PARAM ); @@ -6472,7 +6472,7 @@ yyreduce: break; case 542: -#line 1511 "harbour.y" +#line 1512 "harbour.y" { hb_compGenJumpHere( (yyvsp[(4) - (7)].lNumber), HB_COMP_PARAM ); if( HB_COMP_PARAM->wWhileCounter ) @@ -6483,22 +6483,22 @@ yyreduce: break; case 543: -#line 1520 "harbour.y" +#line 1521 "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 1523 "harbour.y" - { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} - break; - - case 545: #line 1524 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; + case 545: +#line 1525 "harbour.y" + { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} + break; + case 546: -#line 1528 "harbour.y" +#line 1529 "harbour.y" { /* 5 */ hb_compLinePushIfInside( HB_COMP_PARAM ); (yyvsp[(1) - (4)].lNumber) = HB_COMP_PARAM->currLine; @@ -6513,7 +6513,7 @@ yyreduce: break; case 547: -#line 1540 "harbour.y" +#line 1541 "harbour.y" { /* 9 */ hb_compLoopStart( HB_COMP_PARAM ); (yyval.lNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); @@ -6521,14 +6521,14 @@ yyreduce: break; case 548: -#line 1545 "harbour.y" +#line 1546 "harbour.y" { /* 11 */ (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; ;} break; case 549: -#line 1549 "harbour.y" +#line 1550 "harbour.y" { int iSign, iLine; @@ -6566,80 +6566,80 @@ yyreduce: break; case 552: -#line 1589 "harbour.y" +#line 1590 "harbour.y" { (yyval.asExpr) = NULL; ;} break; case 553: -#line 1590 "harbour.y" +#line 1591 "harbour.y" { (yyval.asExpr) = hb_compExprReduce( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 554: -#line 1593 "harbour.y" +#line 1594 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; case 555: -#line 1596 "harbour.y" +#line 1597 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; case 556: -#line 1599 "harbour.y" +#line 1600 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; case 557: -#line 1602 "harbour.y" +#line 1603 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; case 558: -#line 1607 "harbour.y" +#line 1608 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 559: -#line 1608 "harbour.y" +#line 1609 "harbour.y" { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 560: -#line 1611 "harbour.y" +#line 1612 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 561: -#line 1612 "harbour.y" +#line 1613 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 562: -#line 1615 "harbour.y" +#line 1616 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ); ;} break; case 564: -#line 1619 "harbour.y" +#line 1620 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 565: -#line 1620 "harbour.y" +#line 1621 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 566: -#line 1625 "harbour.y" +#line 1626 "harbour.y" { ++HB_COMP_PARAM->wForCounter; /* 5 */ hb_compLinePushIfInside( HB_COMP_PARAM ); @@ -6648,7 +6648,7 @@ yyreduce: break; case 567: -#line 1631 "harbour.y" +#line 1632 "harbour.y" { /* 7 */ @@ -6660,7 +6660,7 @@ yyreduce: break; case 568: -#line 1640 "harbour.y" +#line 1641 "harbour.y" { /* 9 */ @@ -6669,7 +6669,7 @@ yyreduce: break; case 569: -#line 1646 "harbour.y" +#line 1647 "harbour.y" { hb_compLoopHere( HB_COMP_PARAM ); hb_compEnumNext( HB_COMP_PARAM, (yyvsp[(2) - (10)].asExpr), (yyvsp[(6) - (10)].iNumber) ); @@ -6685,17 +6685,17 @@ yyreduce: break; case 570: -#line 1660 "harbour.y" +#line 1661 "harbour.y" { (yyval.iNumber) = 1; ;} break; case 571: -#line 1661 "harbour.y" +#line 1662 "harbour.y" { (yyval.iNumber) = -1; ;} break; case 572: -#line 1665 "harbour.y" +#line 1666 "harbour.y" { hb_compLoopStart( HB_COMP_PARAM ); hb_compSwitchStart( HB_COMP_PARAM ); @@ -6704,7 +6704,7 @@ yyreduce: break; case 573: -#line 1672 "harbour.y" +#line 1673 "harbour.y" { hb_compSwitchEnd( HB_COMP_PARAM ); hb_compLoopEnd( HB_COMP_PARAM ); @@ -6712,14 +6712,14 @@ yyreduce: break; case 574: -#line 1679 "harbour.y" +#line 1680 "harbour.y" { hb_compGenPCode1( HB_P_POP, HB_COMP_PARAM ); ;} break; case 575: -#line 1685 "harbour.y" +#line 1686 "harbour.y" { if( HB_COMP_PARAM->wSwitchCounter ) --HB_COMP_PARAM->wSwitchCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); @@ -6727,21 +6727,21 @@ yyreduce: break; case 576: -#line 1692 "harbour.y" +#line 1693 "harbour.y" { ++HB_COMP_PARAM->wSwitchCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 577: -#line 1696 "harbour.y" +#line 1697 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); ;} break; case 579: -#line 1702 "harbour.y" +#line 1703 "harbour.y" { if( (yyvsp[(2) - (2)].lNumber) > 0 ) { @@ -6751,27 +6751,27 @@ yyreduce: break; case 580: -#line 1710 "harbour.y" +#line 1711 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); hb_compLinePush( HB_COMP_PARAM ); ;} break; case 582: -#line 1713 "harbour.y" +#line 1714 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].asExpr) ); hb_compLinePush( HB_COMP_PARAM ); ;} break; case 586: -#line 1721 "harbour.y" +#line 1722 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, NULL ); hb_compLinePush( HB_COMP_PARAM ); ;} break; case 587: -#line 1721 "harbour.y" +#line 1722 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; case 589: -#line 1726 "harbour.y" +#line 1727 "harbour.y" { /* 2 */ hb_compLinePushIfInside( HB_COMP_PARAM ); ++HB_COMP_PARAM->wSeqCounter; @@ -6780,7 +6780,7 @@ yyreduce: break; case 590: -#line 1733 "harbour.y" +#line 1734 "harbour.y" { /* 5 */ /* Set jump address for HB_P_SEQBEGIN opcode - this address * will be used in BREAK code if there is no RECOVER clause @@ -6791,7 +6791,7 @@ yyreduce: break; case 591: -#line 1741 "harbour.y" +#line 1742 "harbour.y" { /* 7 */ /* Replace END address with RECOVER address in * HB_P_SEQBEGIN opcode if there is RECOVER clause @@ -6804,7 +6804,7 @@ yyreduce: break; case 592: -#line 1751 "harbour.y" +#line 1752 "harbour.y" { /* 9 */ HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); if( (yyvsp[(8) - (8)].lNumber) ) @@ -6829,12 +6829,12 @@ yyreduce: break; case 594: -#line 1775 "harbour.y" +#line 1776 "harbour.y" { (yyval.lNumber) = 0; ;} break; case 596: -#line 1780 "harbour.y" +#line 1781 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6843,12 +6843,12 @@ yyreduce: break; case 597: -#line 1787 "harbour.y" +#line 1788 "harbour.y" { (yyval.lNumber) = 0; HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; case 600: -#line 1793 "harbour.y" +#line 1794 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6860,7 +6860,7 @@ yyreduce: break; case 601: -#line 1804 "harbour.y" +#line 1805 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6873,12 +6873,12 @@ yyreduce: break; case 604: -#line 1826 "harbour.y" +#line 1827 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL; ;} break; case 605: -#line 1828 "harbour.y" +#line 1829 "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); @@ -6886,12 +6886,12 @@ yyreduce: break; case 606: -#line 1833 "harbour.y" +#line 1834 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL; ;} break; case 607: -#line 1835 "harbour.y" +#line 1836 "harbour.y" { hb_compAutoOpenAdd( HB_COMP_PARAM, (yyvsp[(1) - (3)].string) ); /* DOIDENT is the only one identifier which can be returned in lower letters */ @@ -6901,47 +6901,47 @@ yyreduce: break; case 608: -#line 1843 "harbour.y" +#line 1844 "harbour.y" { (yyval.asExpr) = NULL; ;} break; case 609: -#line 1844 "harbour.y" +#line 1845 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 610: -#line 1847 "harbour.y" +#line 1848 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), hb_compExprNewNil( HB_COMP_PARAM ) ); ;} break; case 611: -#line 1848 "harbour.y" +#line 1849 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), (yyvsp[(2) - (2)].asExpr) ); ;} break; case 612: -#line 1849 "harbour.y" +#line 1850 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 613: -#line 1850 "harbour.y" +#line 1851 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (2)].asExpr), hb_compExprNewNil( HB_COMP_PARAM ) ); ;} break; case 614: -#line 1851 "harbour.y" +#line 1852 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 615: -#line 1854 "harbour.y" +#line 1855 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 620: -#line 1862 "harbour.y" +#line 1863 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); @@ -6952,7 +6952,7 @@ yyreduce: break; case 621: -#line 1871 "harbour.y" +#line 1872 "harbour.y" { if( HB_COMP_PARAM->wWithObjectCnt ) --HB_COMP_PARAM->wWithObjectCnt; if( (yyvsp[(5) - (6)].lNumber) ) @@ -6967,7 +6967,7 @@ yyreduce: break; case 622: -#line 1884 "harbour.y" +#line 1885 "harbour.y" { HB_COMP_PARAM->fError = FALSE; ;} break; @@ -7190,7 +7190,7 @@ yyreturn: } -#line 1888 "harbour.y" +#line 1889 "harbour.y" /* diff --git a/harbour/source/macro/macro.y b/harbour/source/macro/macro.y index 1f08d309ad..3cbab5d06b 100644 --- a/harbour/source/macro/macro.y +++ b/harbour/source/macro/macro.y @@ -185,7 +185,8 @@ static void hb_macroIdentNew( HB_COMP_DECL, char * ); %right AND %right NOT /*relational operators*/ -%right '=' '<' '>' EQ NE1 NE2 LE GE '$' +%right '=' EQ NE1 NE2 +%right '<' '>' LE GE '$' /*mathematical operators*/ %right '+' '-' %right '*' '/' '%' @@ -195,7 +196,7 @@ static void hb_macroIdentNew( HB_COMP_DECL, char * ); %right PRE /*special operators*/ %right ALIASOP '&' '@' -%right ',' +%right ',' /*the highest precedence*/ %type IDENTIFIER MACROVAR MACROTEXT diff --git a/harbour/source/macro/macro.yyc b/harbour/source/macro/macro.yyc index dbc574673e..604c0218ee 100644 --- a/harbour/source/macro/macro.yyc +++ b/harbour/source/macro/macro.yyc @@ -721,28 +721,28 @@ static const yytype_int8 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 239, 239, 248, 256, 264, 269, 278, 279, 282, - 285, 290, 295, 300, 301, 306, 311, 316, 321, 322, - 325, 326, 332, 335, 340, 343, 362, 367, 370, 377, - 378, 383, 384, 385, 386, 387, 390, 391, 394, 395, - 396, 397, 398, 399, 400, 409, 410, 411, 412, 413, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 439, 442, 447, - 450, 451, 454, 455, 456, 459, 460, 465, 466, 467, - 472, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 507, 508, 511, 512, 515, 515, 529, 530, 534, 535, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 564, 565, 571, 574, 575, 578, 579, 580, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 606, 609, 612, 615, 618, 621, 624, 625, 626, 627, - 628, 629, 632, 633, 634, 635, 636, 637, 640, 641, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 655, - 661, 662, 663, 666, 667, 671, 670, 678, 679, 684, - 685, 686, 687, 690, 691, 694, 695, 698, 701, 705 + 0, 240, 240, 249, 257, 265, 270, 279, 280, 283, + 286, 291, 296, 301, 302, 307, 312, 317, 322, 323, + 326, 327, 333, 336, 341, 344, 363, 368, 371, 378, + 379, 384, 385, 386, 387, 388, 391, 392, 395, 396, + 397, 398, 399, 400, 401, 410, 411, 412, 413, 414, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 440, 443, 448, + 451, 452, 455, 456, 457, 460, 461, 466, 467, 468, + 473, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 508, 509, 512, 513, 516, 516, 530, 531, 535, 536, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 565, 566, 572, 575, 576, 579, 580, 581, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 607, 610, 613, 616, 619, 622, 625, 626, 627, 628, + 629, 630, 633, 634, 635, 636, 637, 638, 641, 642, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 656, + 662, 663, 664, 667, 668, 672, 671, 679, 680, 685, + 686, 687, 688, 691, 692, 695, 696, 699, 702, 706 }; #endif @@ -925,7 +925,7 @@ static const yytype_int16 yypact[] = 787, 681, -267, 1062, -267, 1062, -267, 734, 87, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 74, 1062, 1062, 1062, 1062, 1062, 1062, 94, 1062, 1096, 1062, - 1127, 1127, 1127, 1127, 1127, 114, 1127, 1127, 1127, 1127, + 1127, 1127, 1127, 779, 779, 114, 1127, 779, 779, 779, 98, 98, 42, 42, 42, -267, 787, 1062, 1062, 1062, 1062, 1062, 1062, -267, -267, -267, 1062, -267, 1062, 1062, 681, -267, 840, -267, -267, -267, 77, 97, 1028, -267, @@ -1033,9 +1033,9 @@ static const yytype_int16 yytable[] = 224, 0, 0, 0, 0, 0, 18, 19, 0, 0, 0, 0, 0, 20, 21, 0, 0, 22, 0, 23, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, - 0, 0, 11, 0, 0, 0, 12, 13, 0, 0, - 14, 0, 0, 15, 16, 17, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, + 0, 0, 11, 167, 168, 0, 12, 13, 0, 0, + 14, 0, 169, 15, 16, 17, 0, 0, 171, 172, + 173, 174, 175, 176, 177, 178, 0, 0, 0, 18, 19, 0, 0, 0, 0, 0, 20, 21, 0, 0, 22, 0, 23, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, 0, 0, 11, 0, 0, 0, 12, @@ -1155,9 +1155,9 @@ static const yytype_int16 yycheck[] = 36, -1, -1, -1, -1, -1, 42, 43, -1, -1, -1, -1, -1, 49, 50, -1, -1, 53, -1, 55, 3, 4, 5, -1, 7, 8, 9, 10, 11, 12, - -1, -1, 15, -1, -1, -1, 19, 20, -1, -1, - 23, -1, -1, 26, 27, 28, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, + -1, -1, 15, 24, 25, -1, 19, 20, -1, -1, + 23, -1, 33, 26, 27, 28, -1, -1, 39, 40, + 41, 42, 43, 44, 45, 46, -1, -1, -1, 42, 43, -1, -1, -1, -1, -1, 49, 50, -1, -1, 53, -1, 55, 3, 4, 5, -1, 7, 8, 9, 10, 11, 12, -1, -1, 15, -1, -1, -1, 19, @@ -2053,7 +2053,7 @@ yyreduce: switch (yyn) { case 2: -#line 239 "macro.y" +#line 240 "macro.y" { HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (2)].asExpr) ); if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) @@ -2065,7 +2065,7 @@ yyreduce: break; case 3: -#line 248 "macro.y" +#line 249 "macro.y" { HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (1)].asExpr) ); if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) @@ -2077,7 +2077,7 @@ yyreduce: break; case 4: -#line 256 "macro.y" +#line 257 "macro.y" { HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (1)].asExpr) ); if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) @@ -2089,7 +2089,7 @@ yyreduce: break; case 5: -#line 264 "macro.y" +#line 265 "macro.y" { HB_TRACE(HB_TR_DEBUG, ("macro -> invalid expression: %s", HB_MACRO_DATA->string)); hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); @@ -2098,7 +2098,7 @@ yyreduce: break; case 6: -#line 269 "macro.y" +#line 270 "macro.y" { HB_TRACE(HB_TR_DEBUG, ("macro -> invalid syntax: %s", HB_MACRO_DATA->string)); hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); @@ -2107,99 +2107,99 @@ yyreduce: break; case 7: -#line 278 "macro.y" +#line 279 "macro.y" { (yyval.asExpr) = hb_compExprNewDouble( (yyvsp[(1) - (1)].valDouble).dNumber, (yyvsp[(1) - (1)].valDouble).bWidth, (yyvsp[(1) - (1)].valDouble).bDec, HB_COMP_PARAM ); ;} break; case 8: -#line 279 "macro.y" +#line 280 "macro.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 9: -#line 282 "macro.y" +#line 283 "macro.y" { (yyval.asExpr) = hb_compExprNewDate( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 10: -#line 285 "macro.y" +#line 286 "macro.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (2)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 11: -#line 290 "macro.y" +#line 291 "macro.y" { (yyval.asExpr) = hb_compExprNewNil( HB_COMP_PARAM ); ;} break; case 12: -#line 295 "macro.y" +#line 296 "macro.y" { (yyval.asExpr) = hb_compExprNewString( (yyvsp[(1) - (1)].valChar).string, (yyvsp[(1) - (1)].valChar).length, FALSE, HB_COMP_PARAM ); ;} break; case 13: -#line 300 "macro.y" +#line 301 "macro.y" { (yyval.asExpr) = hb_compExprNewLogical( TRUE, HB_COMP_PARAM ); ;} break; case 14: -#line 301 "macro.y" +#line 302 "macro.y" { (yyval.asExpr) = hb_compExprNewLogical( FALSE, HB_COMP_PARAM ); ;} break; case 15: -#line 306 "macro.y" +#line 307 "macro.y" { (yyval.asExpr) = hb_compExprNewSelf( HB_COMP_PARAM ); ;} break; case 16: -#line 311 "macro.y" +#line 312 "macro.y" { (yyval.asExpr) = hb_compExprNewArray( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 17: -#line 316 "macro.y" +#line 317 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 18: -#line 321 "macro.y" +#line 322 "macro.y" { (yyval.asExpr) = hb_compExprNewHash( NULL, HB_COMP_PARAM ); ;} break; case 19: -#line 322 "macro.y" +#line 323 "macro.y" { (yyval.asExpr) = hb_compExprNewHash( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 20: -#line 325 "macro.y" +#line 326 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 21: -#line 326 "macro.y" +#line 327 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprAddListExpr( (yyvsp[(1) - (5)].asExpr), (yyvsp[(3) - (5)].asExpr) ), (yyvsp[(5) - (5)].asExpr) ); ;} break; case 22: -#line 332 "macro.y" +#line 333 "macro.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 23: -#line 335 "macro.y" +#line 336 "macro.y" { (yyval.asExpr) = hb_compExprNewAlias( (yyvsp[(1) - (2)].string), HB_COMP_PARAM ); ;} break; case 24: -#line 340 "macro.y" +#line 341 "macro.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, '&', (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 25: -#line 343 "macro.y" +#line 344 "macro.y" { BOOL fNewString; char * szVarName = hb_macroTextSymbol( (yyvsp[(1) - (1)].string), strlen( (yyvsp[(1) - (1)].string) ), &fNewString ); if( szVarName ) @@ -2220,296 +2220,296 @@ yyreduce: break; case 26: -#line 362 "macro.y" +#line 363 "macro.y" { hb_compExprMacroAsAlias( (yyvsp[(1) - (2)].asExpr) ); ;} break; case 27: -#line 367 "macro.y" +#line 368 "macro.y" { (yyval.asExpr) = hb_compExprNewMacro( (yyvsp[(2) - (2)].asExpr), 0, NULL, HB_COMP_PARAM ); ;} break; case 29: -#line 377 "macro.y" +#line 378 "macro.y" { (yyval.asExpr) = hb_compExprNewAlias( "FIELD", HB_COMP_PARAM ); ;} break; case 30: -#line 378 "macro.y" +#line 379 "macro.y" { (yyval.asExpr) = (yyvsp[(3) - (3)].asExpr); ;} break; case 31: -#line 383 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 32: #line 384 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 33: + case 32: #line 385 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 34: + case 33: #line 386 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 35: + case 34: #line 387 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; + case 35: +#line 388 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + case 36: -#line 390 "macro.y" +#line 391 "macro.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 38: -#line 394 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 39: #line 395 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 40: + case 39: #line 396 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 41: + case 40: #line 397 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 42: + case 41: #line 398 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 43: + case 42: #line 399 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 44: + case 43: #line 400 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 45: -#line 409 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + case 44: +#line 401 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 46: + case 45: #line 410 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 47: + case 46: #line 411 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 48: + case 47: #line 412 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 49: + case 48: #line 413 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 50: -#line 418 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + case 49: +#line 414 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 51: + case 50: #line 419 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 52: + case 51: #line 420 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 53: + case 52: #line 421 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 54: + case 53: #line 422 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 55: + case 54: #line 423 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 56: + case 55: #line 424 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 57: + case 56: #line 425 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 58: + case 57: #line 426 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 59: + case 58: #line 427 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 60: + case 59: #line 428 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 61: + case 60: #line 429 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 62: + case 61: #line 430 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 63: + case 62: #line 431 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 64: + case 63: #line 432 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 65: + case 64: #line 433 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 66: + case 65: #line 434 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; + case 66: +#line 435 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + case 67: -#line 439 "macro.y" +#line 440 "macro.y" { (yyval.asExpr) = hb_macroExprNewFunCall( hb_compExprNewFunName( (yyvsp[(1) - (4)].string), HB_COMP_PARAM ), (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 68: -#line 442 "macro.y" +#line 443 "macro.y" { (yyval.asExpr) = hb_macroExprNewFunCall( (yyvsp[(1) - (4)].asExpr), (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 69: -#line 447 "macro.y" +#line 448 "macro.y" { (yyval.asExpr) = hb_compExprNewFunRef( (yyvsp[(2) - (4)].string), HB_COMP_PARAM ); ;} break; case 70: -#line 450 "macro.y" +#line 451 "macro.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 71: -#line 451 "macro.y" +#line 452 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 73: -#line 455 "macro.y" +#line 456 "macro.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ); ;} break; case 74: -#line 456 "macro.y" +#line 457 "macro.y" { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 75: -#line 459 "macro.y" +#line 460 "macro.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 77: -#line 465 "macro.y" +#line 466 "macro.y" { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].string), NULL, HB_COMP_PARAM ); ;} break; case 78: -#line 466 "macro.y" - { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 79: #line 467 "macro.y" { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; + case 79: +#line 468 "macro.y" + { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + case 80: -#line 472 "macro.y" +#line 473 "macro.y" { (yyval.asExpr) = hb_compExprNewMethodCall( (yyvsp[(1) - (4)].asExpr), (yyvsp[(3) - (4)].asExpr) ); ;} break; case 102: -#line 497 "macro.y" - { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} - break; - - case 103: #line 498 "macro.y" { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} break; - case 104: + case 103: #line 499 "macro.y" { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} break; - case 110: -#line 507 "macro.y" - { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} + case 104: +#line 500 "macro.y" + { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} break; - case 111: + case 110: #line 508 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; + case 111: +#line 509 "macro.y" + { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} + break; + case 112: -#line 511 "macro.y" +#line 512 "macro.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 114: -#line 515 "macro.y" +#line 516 "macro.y" { if( !(HB_MACRO_DATA->Flags & HB_MACRO_GEN_LIST) ) { @@ -2521,7 +2521,7 @@ yyreduce: break; case 115: -#line 523 "macro.y" +#line 524 "macro.y" { HB_MACRO_DATA->uiListElements = 1; (yyval.asExpr) = hb_compExprAddListExpr( ( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PARE ) ? hb_compExprNewList( (yyvsp[(1) - (4)].asExpr), HB_COMP_PARAM ) : hb_compExprNewArgList( (yyvsp[(1) - (4)].asExpr), HB_COMP_PARAM ), (yyvsp[(4) - (4)].asExpr) ); @@ -2529,363 +2529,363 @@ yyreduce: break; case 117: -#line 530 "macro.y" +#line 531 "macro.y" { HB_MACRO_DATA->uiListElements++; (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 118: -#line 534 "macro.y" +#line 535 "macro.y" { (yyval.asExpr) = hb_compExprNewEmpty( HB_COMP_PARAM ); ;} break; case 141: -#line 564 "macro.y" +#line 565 "macro.y" { (yyval.asExpr) = hb_compExprNewPostInc( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 142: -#line 565 "macro.y" +#line 566 "macro.y" { (yyval.asExpr) = hb_compExprNewPostDec( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 143: -#line 571 "macro.y" +#line 572 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 144: -#line 574 "macro.y" +#line 575 "macro.y" { (yyval.asExpr) = hb_compExprNewPreInc( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 145: -#line 575 "macro.y" +#line 576 "macro.y" { (yyval.asExpr) = hb_compExprNewPreDec( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 146: -#line 578 "macro.y" +#line 579 "macro.y" { (yyval.asExpr) = hb_compExprNewNot( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 147: -#line 579 "macro.y" +#line 580 "macro.y" { (yyval.asExpr) = hb_compExprNewNegate( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 148: -#line 580 "macro.y" +#line 581 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 149: -#line 583 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 150: #line 584 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 151: + case 150: #line 585 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 152: + case 151: #line 586 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 153: + case 152: #line 587 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 154: + case 153: #line 588 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 155: + case 154: #line 589 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 156: + case 155: #line 590 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 157: + case 156: #line 591 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 158: + case 157: #line 592 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 159: + case 158: #line 593 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 160: + case 159: #line 594 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 161: + case 160: #line 595 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 162: + case 161: #line 596 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 163: + case 162: #line 597 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 164: + case 163: #line 598 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 165: + case 164: #line 599 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 166: + case 165: #line 600 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 167: + case 166: #line 601 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 168: + case 167: #line 602 "macro.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 168: +#line 603 "macro.y" { HB_MACRO_IFENABLED( (yyval.asExpr), hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ), HB_SM_HARBOUR ); ;} break; case 169: -#line 603 "macro.y" +#line 604 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 170: -#line 606 "macro.y" +#line 607 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 171: -#line 609 "macro.y" +#line 610 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 172: -#line 612 "macro.y" +#line 613 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMultEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 173: -#line 615 "macro.y" +#line 616 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDivEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 174: -#line 618 "macro.y" +#line 619 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewModEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 175: -#line 621 "macro.y" +#line 622 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewExpEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 182: -#line 632 "macro.y" +#line 633 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 183: -#line 633 "macro.y" +#line 634 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 184: -#line 634 "macro.y" +#line 635 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMult( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 185: -#line 635 "macro.y" +#line 636 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDiv( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 186: -#line 636 "macro.y" +#line 637 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMod( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 187: -#line 637 "macro.y" +#line 638 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPower( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 188: -#line 640 "macro.y" +#line 641 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewAnd( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 189: -#line 641 "macro.y" +#line 642 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewOr( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 190: -#line 644 "macro.y" +#line 645 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEQ( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 191: -#line 645 "macro.y" +#line 646 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 192: -#line 646 "macro.y" +#line 647 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 193: -#line 647 "macro.y" +#line 648 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 194: -#line 648 "macro.y" +#line 649 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 195: -#line 649 "macro.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 196: #line 650 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 197: + case 196: #line 651 "macro.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 197: +#line 652 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewIN( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 198: -#line 652 "macro.y" +#line 653 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEqual( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 200: -#line 661 "macro.y" +#line 662 "macro.y" { (yyval.asExpr) = hb_macroExprNewArrayAt( (yyvsp[(0) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 201: -#line 662 "macro.y" +#line 663 "macro.y" { (yyval.asExpr) = hb_macroExprNewArrayAt( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 202: -#line 663 "macro.y" +#line 664 "macro.y" { (yyval.asExpr) = hb_macroExprNewArrayAt( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); ;} break; case 203: -#line 666 "macro.y" +#line 667 "macro.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 204: -#line 667 "macro.y" +#line 668 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 205: -#line 671 "macro.y" +#line 672 "macro.y" { (yyval.asExpr) = hb_compExprNewCodeBlock( NULL, 0, 0, HB_COMP_PARAM ); ;} break; case 206: -#line 673 "macro.y" +#line 674 "macro.y" { (yyval.asExpr) = (yyvsp[(3) - (7)].asExpr); ;} break; case 207: -#line 678 "macro.y" +#line 679 "macro.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} break; case 208: -#line 679 "macro.y" +#line 680 "macro.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 209: -#line 684 "macro.y" +#line 685 "macro.y" { (yyval.asExpr) = NULL; ;} break; case 210: -#line 685 "macro.y" +#line 686 "macro.y" { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 211: -#line 686 "macro.y" +#line 687 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} break; case 212: -#line 687 "macro.y" +#line 688 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); (yyvsp[(0) - (3)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 213: -#line 690 "macro.y" +#line 691 "macro.y" { (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (1)].asExpr), (yyvsp[(1) - (1)].string), ' ', HB_COMP_PARAM ); ;} break; case 214: -#line 691 "macro.y" +#line 692 "macro.y" { (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (3)].asExpr), (yyvsp[(3) - (3)].string), ' ', HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 215: -#line 694 "macro.y" +#line 695 "macro.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 216: -#line 695 "macro.y" +#line 696 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 219: -#line 706 "macro.y" +#line 707 "macro.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; @@ -3108,7 +3108,7 @@ yyreturn: } -#line 709 "macro.y" +#line 710 "macro.y"