diff --git a/harbour/ChangeLog b/harbour/ChangeLog index d4e8a49853..2b722f2879 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,25 @@ 2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2009-04-02 22:01 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbexpra.c + ! verify all expression POP operation for usage as LValue + + * harbour/include/hbexprb.c + ! fixed possible GPF in unverified send context + + added support for IIF() usage as LValue even if it cannot be + reduced during [macro]compilation + + * harbour/source/macro/macro.yyc + * harbour/source/macro/macro.y + * harbour/source/macro/macrolex.c + * removed support for some characters unsupported by Clipper in + macro expressions like chr(10) as trailing expression character, f.e.: + ? &("DATE()"+chr(10)) + + * harbour/source/compiler/complex.c + * formatting + 2009-04-02 17:21 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * utils/hbmk2/hbmk2.prg + Enabled embedded Harbour compiler. This will simplify diff --git a/harbour/include/hbexpra.c b/harbour/include/hbexpra.c index a7bb5ca603..a264c6b393 100644 --- a/harbour/include/hbexpra.c +++ b/harbour/include/hbexpra.c @@ -709,6 +709,7 @@ HB_EXPR_PTR hb_macroExprGenPop( HB_EXPR_PTR pExpr, HB_COMP_DECL ) { HB_TRACE(HB_TR_DEBUG, ("hb_macroExprGenPop(%i)", pExpr->ExprType)); + HB_EXPR_USE( pExpr, HB_EA_LVALUE ); return HB_EXPR_USE( pExpr, HB_EA_POP_PCODE ); } @@ -732,6 +733,7 @@ HB_EXPR_PTR hb_compExprGenPop( HB_EXPR_PTR pExpr, HB_COMP_DECL ) { HB_TRACE(HB_TR_DEBUG, ("hb_compExprGenPop(%i)", pExpr->ExprType)); + HB_EXPR_USE( pExpr, HB_EA_LVALUE ); return HB_EXPR_USE( pExpr, HB_EA_POP_PCODE ); } diff --git a/harbour/include/hbexprb.c b/harbour/include/hbexprb.c index ea97bf2ba0..18fb3b39a7 100644 --- a/harbour/include/hbexprb.c +++ b/harbour/include/hbexprb.c @@ -460,6 +460,7 @@ static HB_EXPR_FUNC( hb_compExprUseCodeblock ) break; } case HB_EA_POP_PCODE: + break; case HB_EA_PUSH_POP: case HB_EA_STATEMENT: hb_compWarnMeaningless( HB_COMP_PARAM, pSelf ); @@ -851,7 +852,7 @@ static HB_EXPR_FUNC( hb_compExprUseRef ) hb_compErrorRefer( HB_COMP_PARAM, NULL, hb_compExprDescription( pExp ) ); break; } - + case HB_EA_POP_PCODE: break; case HB_EA_PUSH_POP: @@ -880,7 +881,14 @@ static HB_EXPR_FUNC( hb_compExprUseIIF ) break; case HB_EA_LVALUE: - hb_compErrorLValue( HB_COMP_PARAM, pSelf ); + if( HB_SUPPORT_HARBOUR ) + { + HB_EXPR_PTR pExpr = pSelf->value.asList.pExprList->pNext; + HB_EXPR_USE( pExpr, HB_EA_LVALUE ); + HB_EXPR_USE( pExpr->pNext, HB_EA_LVALUE ); + } + else + hb_compErrorLValue( HB_COMP_PARAM, pSelf ); break; case HB_EA_PUSH_PCODE: @@ -904,7 +912,25 @@ static HB_EXPR_FUNC( hb_compExprUseIIF ) break; } case HB_EA_POP_PCODE: + { + /* this is called if all three parts of IIF expression should be generated + */ + LONG lPosFalse, lPosEnd; + HB_EXPR_PTR pExpr = pSelf->value.asList.pExprList; + + HB_EXPR_USE( pExpr, HB_EA_PUSH_PCODE ); + lPosFalse = HB_GEN_FUNC1( JumpFalse, 0 ); + pExpr =pExpr->pNext; + + HB_EXPR_USE( pExpr, HB_EA_POP_PCODE ); + lPosEnd = HB_GEN_FUNC1( Jump, 0 ); + pExpr =pExpr->pNext; + + HB_GEN_FUNC1( JumpHere, lPosFalse ); + HB_EXPR_USE( pExpr, HB_EA_POP_PCODE ); + HB_GEN_FUNC1( JumpHere, lPosEnd ); break; + } case HB_EA_PUSH_POP: case HB_EA_STATEMENT: @@ -2493,7 +2519,10 @@ static HB_EXPR_FUNC( hb_compExprUseSend ) case HB_EA_POP_PCODE: hb_compExprPushSendPop( pSelf, HB_COMP_PARAM ); - HB_EXPR_USE( pSelf->value.asMessage.pParms, HB_EA_PUSH_PCODE ); + if( pSelf->value.asMessage.pParms ) + HB_EXPR_USE( pSelf->value.asMessage.pParms, HB_EA_PUSH_PCODE ); + else + HB_COMP_ERROR_SYNTAX( pSelf ); HB_GEN_FUNC2( PCode2, HB_P_SENDSHORT, 1 ); break; diff --git a/harbour/source/compiler/complex.c b/harbour/source/compiler/complex.c index 5a3ce3959c..087bd3fd5c 100644 --- a/harbour/source/compiler/complex.c +++ b/harbour/source/compiler/complex.c @@ -1225,7 +1225,7 @@ int hb_complex( YYSTYPE *yylval_ptr, HB_COMP_DECL ) } else pLex->iState = IIF; - + return pLex->iState; } else if( HB_PP_LEX_NEEDLEFT( pToken->pNext ) || pLex->iState != LOOKUP ) diff --git a/harbour/source/macro/macro.y b/harbour/source/macro/macro.y index 2d48d33d3b..408cffe3aa 100644 --- a/harbour/source/macro/macro.y +++ b/harbour/source/macro/macro.y @@ -245,16 +245,7 @@ static void hb_macroIdentNew( HB_COMP_DECL, char * ); %% -Main : Expression '\n' { - HB_MACRO_DATA->exprType = hb_compExprType( $1 ); - if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) - hb_macroExprGenPush( $1, HB_COMP_PARAM ); - else - hb_macroExprGenPop( $1, HB_COMP_PARAM ); - hb_macroGenPCode1( HB_P_ENDPROC, HB_COMP_PARAM ); - } - - | Expression { +Main : Expression { HB_MACRO_DATA->exprType = hb_compExprType( $1 ); if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) hb_macroExprGenPush( $1, HB_COMP_PARAM ); @@ -267,14 +258,9 @@ Main : Expression '\n' { if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) hb_macroExprGenPush( $1, HB_COMP_PARAM ); else - hb_macroExprGenPop( $1, HB_COMP_PARAM ); + hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); hb_macroGenPCode1( HB_P_ENDPROC, HB_COMP_PARAM ); } - | Expression error { - HB_TRACE(HB_TR_DEBUG, ("macro -> invalid expression: %s", HB_MACRO_DATA->string)); - hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); - HB_MACRO_ABORT; - } | error { HB_TRACE(HB_TR_DEBUG, ("macro -> invalid syntax: %s", HB_MACRO_DATA->string)); hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); diff --git a/harbour/source/macro/macro.yyc b/harbour/source/macro/macro.yyc index e32937c6ae..35f4c140f0 100644 --- a/harbour/source/macro/macro.yyc +++ b/harbour/source/macro/macro.yyc @@ -575,16 +575,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 102 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1264 +#define YYLAST 1276 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 62 +#define YYNTOKENS 61 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 69 /* YYNRULES -- Number of rules. */ -#define YYNRULES 229 +#define YYNRULES 227 /* YYNRULES -- Number of states. */ -#define YYNSTATES 340 +#define YYNSTATES 338 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -597,18 +597,18 @@ union yyalloc static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 53, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42, 47, 50, 2, - 56, 57, 45, 43, 52, 44, 2, 46, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 58, 2, + 55, 56, 45, 43, 52, 44, 2, 46, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 57, 2, 40, 39, 41, 2, 51, 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, 60, 2, 59, 2, 2, 2, 2, 2, 2, + 2, 59, 2, 58, 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, - 2, 2, 2, 54, 61, 55, 2, 2, 2, 2, + 2, 2, 2, 53, 60, 54, 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, 2, 2, 2, 2, 2, 2, 2, 2, @@ -633,130 +633,129 @@ static const yytype_uint8 yytranslate[] = YYRHS. */ static const yytype_uint16 yyprhs[] = { - 0, 0, 3, 6, 8, 10, 13, 15, 17, 19, - 21, 23, 26, 28, 30, 32, 34, 36, 40, 43, - 47, 51, 55, 61, 63, 66, 68, 70, 73, 76, - 79, 82, 86, 89, 92, 95, 98, 101, 103, 105, + 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, + 20, 22, 24, 26, 28, 30, 34, 37, 41, 45, + 49, 55, 57, 60, 62, 64, 67, 70, 73, 76, + 80, 83, 86, 89, 92, 95, 97, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, 192, 195, - 198, 203, 208, 214, 216, 220, 222, 224, 227, 230, - 233, 236, 239, 241, 243, 247, 251, 255, 260, 262, - 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, - 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, - 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, - 324, 326, 328, 329, 334, 336, 340, 341, 343, 345, - 347, 349, 351, 353, 355, 357, 359, 361, 363, 365, - 367, 369, 371, 373, 375, 377, 379, 381, 383, 385, - 387, 389, 391, 394, 397, 400, 403, 406, 409, 413, - 417, 421, 425, 429, 433, 437, 441, 445, 449, 453, - 457, 461, 465, 469, 473, 477, 481, 485, 489, 493, - 497, 501, 505, 509, 513, 517, 521, 523, 525, 527, - 529, 531, 533, 537, 541, 545, 549, 553, 557, 561, - 565, 569, 573, 577, 581, 585, 589, 593, 597, 601, - 604, 607, 611, 616, 618, 622, 623, 631, 633, 637, - 638, 640, 642, 646, 648, 652, 655, 659, 662, 665 + 168, 171, 174, 177, 180, 183, 186, 189, 192, 197, + 202, 208, 210, 214, 216, 218, 221, 224, 227, 230, + 233, 235, 237, 241, 245, 249, 254, 256, 258, 260, + 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, + 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, + 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, + 322, 323, 328, 330, 334, 335, 337, 339, 341, 343, + 345, 347, 349, 351, 353, 355, 357, 359, 361, 363, + 365, 367, 369, 371, 373, 375, 377, 379, 381, 383, + 385, 388, 391, 394, 397, 400, 403, 407, 411, 415, + 419, 423, 427, 431, 435, 439, 443, 447, 451, 455, + 459, 463, 467, 471, 475, 479, 483, 487, 491, 495, + 499, 503, 507, 511, 515, 517, 519, 521, 523, 525, + 527, 531, 535, 539, 543, 547, 551, 555, 559, 563, + 567, 571, 575, 579, 583, 587, 591, 595, 598, 601, + 605, 610, 612, 616, 617, 625, 627, 631, 632, 634, + 636, 640, 642, 646, 649, 653, 656, 659 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 63, 0, -1, 97, 53, -1, 97, -1, 101, -1, - 97, 1, -1, 1, -1, 5, -1, 7, -1, 8, - -1, 9, -1, 7, 22, -1, 4, -1, 11, -1, - 12, -1, 13, -1, 24, -1, 54, 121, 55, -1, - 72, 119, -1, 54, 23, 55, -1, 54, 75, 55, - -1, 97, 23, 102, -1, 75, 52, 97, 23, 102, - -1, 3, -1, 3, 22, -1, 28, -1, 29, -1, - 78, 22, -1, 50, 128, -1, 80, 22, -1, 27, - 22, -1, 27, 22, 82, -1, 82, 77, -1, 82, - 67, -1, 82, 129, -1, 82, 79, -1, 82, 81, - -1, 3, -1, 78, -1, 67, 84, -1, 79, 84, - -1, 81, 84, -1, 129, 84, -1, 77, 84, -1, - 82, 84, -1, 83, 84, -1, 67, 128, -1, 77, - 128, -1, 79, 128, -1, 81, 128, -1, 129, 128, - -1, 64, 119, -1, 68, 119, -1, 65, 119, -1, - 66, 119, -1, 69, 119, -1, 122, 119, -1, 70, - 119, -1, 74, 119, -1, 71, 119, -1, 76, 119, - -1, 85, 119, -1, 86, 119, -1, 78, 119, -1, - 80, 119, -1, 94, 119, -1, 95, 119, -1, 88, - 119, -1, 130, 119, -1, 128, 119, -1, 3, 56, - 90, 57, -1, 78, 56, 90, 57, -1, 51, 3, - 56, 90, 57, -1, 93, -1, 90, 52, 93, -1, - 102, -1, 92, -1, 51, 3, -1, 51, 78, -1, - 51, 85, -1, 51, 94, -1, 51, 87, -1, 37, - -1, 91, -1, 103, 58, 3, -1, 103, 58, 78, - -1, 103, 58, 80, -1, 94, 56, 90, 57, -1, - 64, -1, 68, -1, 65, -1, 66, -1, 69, -1, - 122, -1, 70, -1, 71, -1, 72, -1, 73, -1, - 74, -1, 85, -1, 86, -1, 78, -1, 80, -1, - 76, -1, 87, -1, 88, -1, 130, -1, 94, -1, - 95, -1, 108, -1, 115, -1, 105, -1, 106, -1, - 107, -1, 116, -1, 117, -1, 118, -1, 89, -1, - 96, -1, 128, -1, 37, -1, 97, -1, -1, 102, - 52, 100, 102, -1, 99, -1, 101, 52, 102, -1, - -1, 97, -1, 64, -1, 68, -1, 65, -1, 66, - -1, 69, -1, 122, -1, 70, -1, 71, -1, 72, - -1, 73, -1, 74, -1, 85, -1, 86, -1, 78, - -1, 80, -1, 76, -1, 87, -1, 128, -1, 88, - -1, 130, -1, 94, -1, 95, -1, 20, -1, 21, - -1, 103, 104, -1, 20, 97, -1, 21, 97, -1, - 16, 97, -1, 44, 97, -1, 43, 97, -1, 64, - 6, 97, -1, 68, 6, 97, -1, 65, 6, 97, - -1, 66, 6, 97, -1, 69, 6, 97, -1, 122, - 6, 97, -1, 70, 6, 97, -1, 71, 6, 97, - -1, 72, 6, 97, -1, 73, 6, 97, -1, 74, - 6, 97, -1, 85, 6, 97, -1, 86, 6, 97, - -1, 78, 6, 97, -1, 80, 6, 97, -1, 76, - 6, 97, -1, 87, 6, 97, -1, 128, 6, 97, - -1, 88, 6, 97, -1, 130, 6, 97, -1, 94, - 6, 97, -1, 95, 6, 97, -1, 103, 30, 97, - -1, 103, 31, 97, -1, 103, 32, 97, -1, 103, - 33, 97, -1, 103, 36, 97, -1, 103, 35, 97, - -1, 109, -1, 110, -1, 111, -1, 112, -1, 113, - -1, 114, -1, 97, 43, 97, -1, 97, 44, 97, - -1, 97, 45, 97, -1, 97, 46, 97, -1, 97, - 47, 97, -1, 97, 34, 97, -1, 97, 14, 97, - -1, 97, 15, 97, -1, 97, 17, 97, -1, 97, - 40, 97, -1, 97, 41, 97, -1, 97, 25, 97, - -1, 97, 26, 97, -1, 97, 18, 97, -1, 97, - 19, 97, -1, 97, 42, 97, -1, 97, 39, 97, - -1, 120, 59, -1, 60, 98, -1, 120, 52, 98, - -1, 120, 59, 60, 98, -1, 93, -1, 121, 52, - 93, -1, -1, 54, 61, 123, 125, 61, 124, 55, - -1, 97, -1, 124, 52, 97, -1, -1, 37, -1, - 126, -1, 126, 52, 37, -1, 3, -1, 126, 52, - 3, -1, 56, 102, -1, 127, 52, 102, -1, 127, - 57, -1, 128, 22, -1, 10, 56, 97, 52, 91, - 52, 91, 57, -1 + 62, 0, -1, 96, -1, 100, -1, 1, -1, 5, + -1, 7, -1, 8, -1, 9, -1, 7, 22, -1, + 4, -1, 11, -1, 12, -1, 13, -1, 24, -1, + 53, 120, 54, -1, 71, 118, -1, 53, 23, 54, + -1, 53, 74, 54, -1, 96, 23, 101, -1, 74, + 52, 96, 23, 101, -1, 3, -1, 3, 22, -1, + 28, -1, 29, -1, 77, 22, -1, 50, 127, -1, + 79, 22, -1, 27, 22, -1, 27, 22, 81, -1, + 81, 76, -1, 81, 66, -1, 81, 128, -1, 81, + 78, -1, 81, 80, -1, 3, -1, 77, -1, 66, + 83, -1, 78, 83, -1, 80, 83, -1, 128, 83, + -1, 76, 83, -1, 81, 83, -1, 82, 83, -1, + 66, 127, -1, 76, 127, -1, 78, 127, -1, 80, + 127, -1, 128, 127, -1, 63, 118, -1, 67, 118, + -1, 64, 118, -1, 65, 118, -1, 68, 118, -1, + 121, 118, -1, 69, 118, -1, 73, 118, -1, 70, + 118, -1, 75, 118, -1, 84, 118, -1, 85, 118, + -1, 77, 118, -1, 79, 118, -1, 93, 118, -1, + 94, 118, -1, 87, 118, -1, 129, 118, -1, 127, + 118, -1, 3, 55, 89, 56, -1, 77, 55, 89, + 56, -1, 51, 3, 55, 89, 56, -1, 92, -1, + 89, 52, 92, -1, 101, -1, 91, -1, 51, 3, + -1, 51, 77, -1, 51, 84, -1, 51, 93, -1, + 51, 86, -1, 37, -1, 90, -1, 102, 57, 3, + -1, 102, 57, 77, -1, 102, 57, 79, -1, 93, + 55, 89, 56, -1, 63, -1, 67, -1, 64, -1, + 65, -1, 68, -1, 121, -1, 69, -1, 70, -1, + 71, -1, 72, -1, 73, -1, 84, -1, 85, -1, + 77, -1, 79, -1, 75, -1, 86, -1, 87, -1, + 129, -1, 93, -1, 94, -1, 107, -1, 114, -1, + 104, -1, 105, -1, 106, -1, 115, -1, 116, -1, + 117, -1, 88, -1, 95, -1, 127, -1, 37, -1, + 96, -1, -1, 101, 52, 99, 101, -1, 98, -1, + 100, 52, 101, -1, -1, 96, -1, 63, -1, 67, + -1, 64, -1, 65, -1, 68, -1, 121, -1, 69, + -1, 70, -1, 71, -1, 72, -1, 73, -1, 84, + -1, 85, -1, 77, -1, 79, -1, 75, -1, 86, + -1, 127, -1, 87, -1, 129, -1, 93, -1, 94, + -1, 20, -1, 21, -1, 102, 103, -1, 20, 96, + -1, 21, 96, -1, 16, 96, -1, 44, 96, -1, + 43, 96, -1, 63, 6, 96, -1, 67, 6, 96, + -1, 64, 6, 96, -1, 65, 6, 96, -1, 68, + 6, 96, -1, 121, 6, 96, -1, 69, 6, 96, + -1, 70, 6, 96, -1, 71, 6, 96, -1, 72, + 6, 96, -1, 73, 6, 96, -1, 84, 6, 96, + -1, 85, 6, 96, -1, 77, 6, 96, -1, 79, + 6, 96, -1, 75, 6, 96, -1, 86, 6, 96, + -1, 127, 6, 96, -1, 87, 6, 96, -1, 129, + 6, 96, -1, 93, 6, 96, -1, 94, 6, 96, + -1, 102, 30, 96, -1, 102, 31, 96, -1, 102, + 32, 96, -1, 102, 33, 96, -1, 102, 36, 96, + -1, 102, 35, 96, -1, 108, -1, 109, -1, 110, + -1, 111, -1, 112, -1, 113, -1, 96, 43, 96, + -1, 96, 44, 96, -1, 96, 45, 96, -1, 96, + 46, 96, -1, 96, 47, 96, -1, 96, 34, 96, + -1, 96, 14, 96, -1, 96, 15, 96, -1, 96, + 17, 96, -1, 96, 40, 96, -1, 96, 41, 96, + -1, 96, 25, 96, -1, 96, 26, 96, -1, 96, + 18, 96, -1, 96, 19, 96, -1, 96, 42, 96, + -1, 96, 39, 96, -1, 119, 58, -1, 59, 97, + -1, 119, 52, 97, -1, 119, 58, 59, 97, -1, + 92, -1, 120, 52, 92, -1, -1, 53, 60, 122, + 124, 60, 123, 54, -1, 96, -1, 123, 52, 96, + -1, -1, 37, -1, 125, -1, 125, 52, 37, -1, + 3, -1, 125, 52, 3, -1, 55, 101, -1, 126, + 52, 101, -1, 126, 56, -1, 127, 22, -1, 10, + 55, 96, 52, 90, 52, 90, 56, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 248, 248, 257, 265, 273, 278, 287, 288, 291, - 294, 297, 302, 307, 312, 313, 318, 323, 328, 333, - 334, 337, 338, 344, 347, 352, 355, 374, 379, 382, - 389, 390, 395, 396, 397, 398, 399, 402, 403, 406, - 407, 408, 409, 410, 411, 412, 421, 422, 423, 424, - 425, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 453, 456, 461, 471, 472, 475, 476, 479, 480, 481, - 482, 483, 486, 487, 492, 493, 494, 499, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 535, 536, - 539, 540, 543, 543, 557, 558, 562, 563, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 593, 594, 600, 603, 604, 607, 608, 609, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 636, 639, 642, 645, 648, 651, 654, 655, 656, 657, - 658, 659, 662, 663, 664, 665, 666, 667, 670, 671, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 685, - 691, 692, 693, 696, 697, 701, 700, 708, 709, 714, - 715, 716, 717, 720, 721, 724, 725, 728, 731, 735 + 0, 248, 248, 256, 264, 273, 274, 277, 280, 283, + 288, 293, 298, 299, 304, 309, 314, 319, 320, 323, + 324, 330, 333, 338, 341, 360, 365, 368, 375, 376, + 381, 382, 383, 384, 385, 388, 389, 392, 393, 394, + 395, 396, 397, 398, 407, 408, 409, 410, 411, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 439, 442, + 447, 457, 458, 461, 462, 465, 466, 467, 468, 469, + 472, 473, 478, 479, 480, 485, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 521, 522, 525, 526, + 529, 529, 543, 544, 548, 549, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 579, 580, + 586, 589, 590, 593, 594, 595, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 622, 625, + 628, 631, 634, 637, 640, 641, 642, 643, 644, 645, + 648, 649, 650, 651, 652, 653, 656, 657, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 671, 677, 678, + 679, 682, 683, 687, 686, 694, 695, 700, 701, 702, + 703, 706, 707, 710, 711, 714, 717, 721 }; #endif @@ -771,14 +770,14 @@ static const char *const yytname[] = "DEC", "ALIASOP", "HASHOP", "SELF", "LE", "GE", "FIELD", "MACROVAR", "MACROTEXT", "PLUSEQ", "MINUSEQ", "MULTEQ", "DIVEQ", "POWER", "EXPEQ", "MODEQ", "EPSILON", "POST", "'='", "'<'", "'>'", "'$'", "'+'", "'-'", - "'*'", "'/'", "'%'", "UNARY", "PRE", "'&'", "'@'", "','", "'\\n'", "'{'", - "'}'", "'('", "')'", "':'", "']'", "'['", "'|'", "$accept", "Main", - "NumValue", "DateValue", "TimeStampValue", "NumAlias", "NilValue", - "LiteralValue", "Logical", "SelfValue", "Array", "ArrayAt", "Hash", - "HashList", "Variable", "VarAlias", "MacroVar", "MacroVarAlias", - "MacroExpr", "MacroExprAlias", "FieldAlias", "FieldVarAlias", "AliasId", - "AliasVar", "AliasExpr", "VariableAt", "FunCall", "FunRef", "ArgList", - "Argument", "RefArgument", "ExtArgument", "ObjectData", "ObjectMethod", + "'*'", "'/'", "'%'", "UNARY", "PRE", "'&'", "'@'", "','", "'{'", "'}'", + "'('", "')'", "':'", "']'", "'['", "'|'", "$accept", "Main", "NumValue", + "DateValue", "TimeStampValue", "NumAlias", "NilValue", "LiteralValue", + "Logical", "SelfValue", "Array", "ArrayAt", "Hash", "HashList", + "Variable", "VarAlias", "MacroVar", "MacroVarAlias", "MacroExpr", + "MacroExprAlias", "FieldAlias", "FieldVarAlias", "AliasId", "AliasVar", + "AliasExpr", "VariableAt", "FunCall", "FunRef", "ArgList", "Argument", + "RefArgument", "ExtArgument", "ObjectData", "ObjectMethod", "SimpleExpression", "Expression", "ExtExpression", "RootParamList", "@1", "AsParamList", "EmptyExpression", "LeftExpression", "PostOp", "ExprPostOp", "ExprPreOp", "ExprUnary", "ExprAssign", "ExprPlusEq", @@ -799,65 +798,65 @@ static const yytype_uint16 yytoknum[] = 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 61, 60, 62, 36, 43, 45, 42, 47, 37, 294, 295, - 38, 64, 44, 10, 123, 125, 40, 41, 58, 93, - 91, 124 + 38, 64, 44, 123, 125, 40, 41, 58, 93, 91, + 124 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 62, 63, 63, 63, 63, 63, 64, 64, 65, - 66, 67, 68, 69, 70, 70, 71, 72, 73, 74, - 74, 75, 75, 76, 77, 78, 78, 79, 80, 81, - 82, 82, 83, 83, 83, 83, 83, 84, 84, 85, - 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, - 86, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 88, 88, 89, 90, 90, 91, 91, 92, 92, 92, - 92, 92, 93, 93, 94, 94, 94, 95, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, - 98, 98, 100, 99, 101, 101, 102, 102, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 109, 110, 111, 112, 113, 114, 115, 115, 115, 115, - 115, 115, 116, 116, 116, 116, 116, 116, 117, 117, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, - 120, 120, 120, 121, 121, 123, 122, 124, 124, 125, - 125, 125, 125, 126, 126, 127, 127, 128, 129, 130 + 0, 61, 62, 62, 62, 63, 63, 64, 65, 66, + 67, 68, 69, 69, 70, 71, 72, 73, 73, 74, + 74, 75, 76, 77, 77, 78, 79, 80, 81, 81, + 82, 82, 82, 82, 82, 83, 83, 84, 84, 84, + 84, 84, 84, 84, 85, 85, 85, 85, 85, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 87, 87, + 88, 89, 89, 90, 90, 91, 91, 91, 91, 91, + 92, 92, 93, 93, 93, 94, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 96, 96, 97, 97, + 99, 98, 100, 100, 101, 101, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, + 104, 105, 105, 106, 106, 106, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 108, 109, + 110, 111, 112, 113, 114, 114, 114, 114, 114, 114, + 115, 115, 115, 115, 115, 115, 116, 116, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 118, 119, 119, + 119, 120, 120, 122, 121, 123, 123, 124, 124, 124, + 124, 125, 125, 126, 126, 127, 128, 129 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { - 0, 2, 2, 1, 1, 2, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 3, 2, 3, - 3, 3, 5, 1, 2, 1, 1, 2, 2, 2, - 2, 3, 2, 2, 2, 2, 2, 1, 1, 2, + 0, 2, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 3, 2, 3, 3, 3, + 5, 1, 2, 1, 1, 2, 2, 2, 2, 3, + 2, 2, 2, 2, 2, 1, 1, 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, 2, 2, 2, 2, 2, 2, 2, - 4, 4, 5, 1, 3, 1, 1, 2, 2, 2, - 2, 2, 1, 1, 3, 3, 3, 4, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, + 5, 1, 3, 1, 1, 2, 2, 2, 2, 2, + 1, 1, 3, 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 1, 3, 0, 1, 1, 1, + 0, 4, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, + 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 3, 4, 1, 3, 0, 7, 1, 3, 0, - 1, 1, 3, 1, 3, 2, 3, 2, 2, 8 + 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, + 4, 1, 3, 0, 7, 1, 3, 0, 1, 1, + 3, 1, 3, 2, 3, 2, 2, 8 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -865,40 +864,40 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 6, 23, 12, 7, 8, 9, 10, 0, 13, - 14, 15, 0, 0, 0, 16, 0, 25, 26, 0, - 0, 0, 0, 126, 126, 0, 88, 90, 91, 0, - 89, 92, 94, 95, 96, 97, 98, 103, 0, 101, - 0, 102, 0, 0, 0, 99, 100, 104, 105, 117, - 107, 108, 118, 0, 124, 4, 0, 0, 111, 112, - 113, 109, 186, 187, 188, 189, 190, 191, 110, 114, - 115, 116, 93, 0, 119, 0, 106, 24, 126, 11, - 0, 155, 153, 154, 30, 157, 156, 28, 0, 0, - 82, 0, 215, 0, 83, 76, 213, 127, 75, 0, - 127, 225, 1, 0, 0, 51, 0, 0, 53, 0, - 54, 37, 38, 39, 46, 0, 52, 0, 55, 0, - 57, 0, 59, 0, 18, 0, 0, 58, 0, 60, - 43, 47, 0, 27, 126, 63, 40, 48, 0, 29, - 64, 41, 49, 37, 0, 33, 32, 38, 35, 0, - 36, 44, 0, 34, 45, 0, 61, 0, 62, 0, - 0, 67, 0, 126, 65, 0, 66, 5, 0, 0, + 0, 4, 21, 10, 5, 6, 7, 8, 0, 11, + 12, 13, 0, 0, 0, 14, 0, 23, 24, 0, + 0, 0, 0, 124, 124, 0, 86, 88, 89, 0, + 87, 90, 92, 93, 94, 95, 96, 101, 0, 99, + 0, 100, 0, 0, 0, 97, 98, 102, 103, 115, + 105, 106, 116, 2, 122, 3, 0, 0, 109, 110, + 111, 107, 184, 185, 186, 187, 188, 189, 108, 112, + 113, 114, 91, 0, 117, 0, 104, 22, 124, 9, + 0, 153, 151, 152, 28, 155, 154, 26, 0, 0, + 80, 0, 213, 0, 81, 74, 211, 125, 73, 0, + 125, 223, 1, 0, 0, 49, 0, 0, 51, 0, + 52, 35, 36, 37, 44, 0, 50, 0, 53, 0, + 55, 0, 57, 0, 16, 0, 0, 56, 0, 58, + 41, 45, 0, 25, 124, 61, 38, 46, 0, 27, + 62, 39, 47, 35, 0, 31, 30, 36, 33, 0, + 34, 42, 0, 32, 43, 0, 59, 0, 60, 0, + 0, 65, 0, 124, 63, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 126, 122, 150, 151, - 0, 0, 0, 0, 0, 0, 0, 152, 0, 56, - 126, 227, 0, 228, 69, 42, 50, 0, 68, 0, - 73, 0, 31, 126, 19, 77, 128, 130, 131, 129, - 132, 134, 135, 136, 137, 138, 143, 78, 142, 79, - 140, 81, 146, 80, 149, 0, 133, 145, 147, 219, - 0, 20, 126, 126, 17, 158, 120, 121, 210, 0, - 209, 160, 161, 159, 162, 164, 165, 166, 167, 168, - 173, 171, 0, 172, 169, 170, 174, 176, 178, 0, - 179, 198, 199, 200, 205, 206, 203, 204, 197, 208, - 201, 202, 207, 192, 193, 194, 195, 196, 125, 126, - 180, 181, 182, 183, 185, 184, 84, 85, 86, 163, - 226, 175, 177, 126, 70, 126, 0, 126, 223, 220, - 0, 221, 0, 21, 214, 211, 0, 71, 87, 123, - 74, 0, 72, 0, 0, 0, 126, 212, 126, 72, - 217, 0, 224, 222, 22, 0, 0, 216, 229, 218 + 0, 0, 0, 0, 124, 120, 148, 149, 0, 0, + 0, 0, 0, 0, 0, 150, 0, 54, 124, 225, + 0, 226, 67, 40, 48, 0, 66, 0, 71, 0, + 29, 124, 17, 75, 126, 128, 129, 127, 130, 132, + 133, 134, 135, 136, 141, 76, 140, 77, 138, 79, + 144, 78, 147, 0, 131, 143, 145, 217, 0, 18, + 124, 124, 15, 156, 118, 119, 208, 0, 207, 158, + 159, 157, 160, 162, 163, 164, 165, 166, 171, 169, + 0, 170, 167, 168, 172, 174, 176, 0, 177, 196, + 197, 198, 203, 204, 201, 202, 195, 206, 199, 200, + 205, 190, 191, 192, 193, 194, 123, 124, 178, 179, + 180, 181, 183, 182, 82, 83, 84, 161, 224, 173, + 175, 124, 68, 124, 0, 124, 221, 218, 0, 219, + 0, 19, 212, 209, 0, 69, 85, 121, 72, 0, + 70, 0, 0, 0, 124, 210, 124, 70, 215, 0, + 222, 220, 20, 0, 0, 214, 227, 216 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -906,331 +905,333 @@ static const yytype_int16 yydefgoto[] = { -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 93, 37, 38, 39, 40, 41, 42, - 43, 44, 113, 45, 46, 47, 48, 49, 209, 94, - 95, 210, 50, 51, 52, 100, 248, 54, 289, 55, - 98, 57, 197, 58, 59, 60, 61, 62, 63, 64, + 43, 44, 113, 45, 46, 47, 48, 49, 207, 94, + 95, 208, 50, 51, 52, 100, 246, 54, 287, 55, + 98, 57, 195, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 105, 106, 99, - 72, 239, 331, 310, 311, 73, 74, 75, 76 + 72, 237, 329, 308, 309, 73, 74, 75, 76 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -270 +#define YYPACT_NINF -244 static const yytype_int16 yypact[] = { - 350, -270, -14, -270, -270, -16, -270, -270, -46, -270, - -270, -270, 846, 846, 846, -270, 9, -270, -270, 846, - 846, -18, 44, 291, 846, 39, -3, 459, 476, 6, - 493, 510, 527, 544, 561, 1006, 578, 595, 6, 377, - 6, 408, 6, 85, 62, 612, 629, 1023, 646, -270, - 425, 663, -270, 945, -270, 27, 33, 848, -270, -270, - -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, - -270, -270, 680, -31, 442, 6, 697, -270, 738, -270, - 846, 1217, -270, -270, 34, -270, -270, -270, 4, 51, - -270, 996, -270, 84, -270, -270, -270, 1084, -270, 112, - 1152, -270, -270, 846, 792, -270, 59, 846, -270, 846, - -270, -270, -270, -270, -270, 846, -270, 846, -270, 846, - -270, 846, -270, 846, -270, 846, 846, -270, 846, -270, - -270, -270, 846, -270, 738, -270, -270, -270, 846, -270, - -270, -270, -270, 67, -16, -270, -270, 94, -270, 98, - -270, -270, 131, -270, -270, 846, -270, 846, -270, 846, - 846, -270, 846, 738, -270, 846, -270, -270, 846, 846, - 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, - 846, 846, 846, 846, 846, -270, 846, -270, -270, -270, - 846, 846, 846, 846, 846, 846, 102, -270, 846, -270, - 846, -270, 846, -270, -270, -270, -270, 846, -270, 70, - -270, 1048, -270, 738, -270, -15, 125, 125, 125, 125, - 125, 125, 125, 125, -270, 125, 125, 18, -11, 82, - 125, 96, 125, 37, 125, 105, 125, -6, 125, 19, - 846, -270, 846, 738, -270, 1152, -270, 1152, -270, 792, - 136, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 72, 1152, 1152, 1152, 1152, 1152, 1152, 99, - 1152, 1186, 1152, 1217, 1217, 1217, 183, 183, 165, 1217, - 183, 183, 183, 100, 100, 103, 103, 103, -270, 846, - 1152, 1152, 1152, 1152, 1152, 1152, -270, -270, -270, 1152, - -270, 1152, 1152, 738, -270, 900, 109, 738, -270, -270, - 139, 151, 1118, -270, -270, -270, 792, -270, -270, -270, - -270, 161, -270, 154, 846, 21, 846, -270, 900, 152, - 1152, 134, -270, -270, -270, 158, 846, -270, -270, 1152 + 347, -244, -6, -244, -244, -16, -244, -244, -38, -244, + -244, -244, 875, 875, 875, -244, 13, -244, -244, 875, + 875, -28, 19, 289, 875, 38, 469, 486, 503, 5, + 521, 538, 555, 573, 590, 192, 607, 625, 5, 373, + 5, 390, 5, 33, 108, 642, 659, 991, 677, -244, + 421, 694, -244, 1024, -244, 7, 44, 109, -244, -244, + -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, + -244, -244, 711, 64, 438, 5, 729, -244, 769, -244, + 875, 1229, -244, -244, 30, -244, -244, -244, 50, 52, + -244, 981, -244, 45, -244, -244, -244, 1096, -244, 104, + 1164, -244, -244, 875, 822, -244, -34, 875, -244, 875, + -244, -244, -244, -244, -244, 875, -244, 875, -244, 875, + -244, 875, -244, 875, -244, 875, 875, -244, 875, -244, + -244, -244, 875, -244, 769, -244, -244, -244, 875, -244, + -244, -244, -244, 92, -16, -244, -244, 129, -244, 139, + -244, -244, 141, -244, -244, 875, -244, 875, -244, 875, + 875, -244, 875, 769, -244, 875, -244, 875, 875, 875, + 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, + 875, 875, 875, 875, 875, -244, -244, -244, 875, 875, + 875, 875, 875, 875, 26, -244, 875, -244, 875, -244, + 875, -244, -244, -244, -244, 875, -244, 75, -244, 1060, + -244, 769, -244, 34, 105, 105, 105, 105, 105, 105, + 105, 105, -244, 105, 105, 43, -1, 144, 105, 127, + 105, -29, 105, 130, 105, 15, 105, 76, 875, -244, + 875, 769, -244, 1164, -244, 1164, -244, 822, 135, 1164, + 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, + 91, 1164, 1164, 1164, 1164, 1164, 1164, 94, 1164, 1198, + 1164, 1229, 1229, 1229, 867, 867, 161, 1229, 867, 867, + 867, 172, 172, 88, 88, 88, -244, 875, 1164, 1164, + 1164, 1164, 1164, 1164, -244, -244, -244, 1164, -244, 1164, + 1164, 769, -244, 928, 96, 769, -244, -244, 148, 158, + 1130, -244, -244, -244, 822, -244, -244, -244, -244, 159, + -244, 97, 875, 87, 875, -244, 928, 145, 1164, 155, + -244, -244, -244, 165, 875, -244, -244, 1164 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -270, -270, 129, 130, 140, 189, 142, 143, 144, 145, - 146, 147, 148, -270, 150, 199, 8, 201, -38, 202, - 162, -270, 58, 156, 157, 159, 169, -270, -119, -269, - -270, -21, 180, 184, -270, 0, -245, -270, -270, -270, - 1, 185, -270, -270, -270, -270, -270, -270, -270, -270, - -270, -270, -270, -270, -270, -270, -270, 36, -270, -270, - 186, -270, -270, -270, -270, -270, 176, 209, 187 + -244, -244, 123, 138, 140, 183, 142, 143, 146, 149, + 151, 152, 153, -244, 154, 187, 3, 189, -40, 193, + 162, -244, -33, 157, 167, 174, 178, -244, -119, -208, + -244, -21, 182, 184, -244, 0, -243, -244, -244, -244, + 1, 185, -244, -244, -244, -244, -244, -244, -244, -244, + -244, -244, -244, -244, -244, -244, -244, 36, -244, -244, + 186, -244, -244, -244, -244, -244, 10, 196, 188 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -150 +#define YYTABLE_NINF -148 static const yytype_int16 yytable[] = { - 53, 56, 96, 103, 315, 149, 79, 77, 77, 111, - 80, 139, 81, 82, 83, 262, 203, -128, -128, 85, - 86, 200, 308, 97, 332, 101, 201, -128, -128, -128, - -128, 84, -128, -128, 17, 18, 321, 112, 24, 102, - 133, 307, 78, -23, 269, -23, 112, 88, 112, 104, - 112, 147, 112, 228, 104, -128, 309, 104, 333, 335, - 213, 16, 24, 108, 110, 111, 116, 118, 120, 122, - 124, 327, 127, 129, 134, 135, -141, 140, 104, 186, - 211, 156, 158, 112, 161, 187, 164, 166, 143, 77, - 17, 18, 144, 163, 306, -148, 130, 104, 136, 227, - 141, 151, 154, 245, 247, 296, 214, 251, 199, 252, - 204, 249, 208, 17, 18, 253, 133, 254, 250, 255, - 139, 256, 303, 257, 303, 258, 259, 304, 260, 317, - 17, 18, 261, 205, 175, 21, 240, 175, 263, 241, - -139, 24, 104, 180, 181, 182, 183, 184, 182, 183, - 184, 303, 21, 203, -144, 264, 318, 265, 298, 266, - 267, 303, 268, 196, 243, 270, 322, 244, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 104, 336, 288, 323, 337, - 290, 291, 292, 293, 294, 295, 316, 87, 299, 175, - 324, 300, 301, 325, 297, 114, 303, 302, 173, 174, - -70, 329, -70, 328, 131, 338, 137, 175, 142, 152, - 216, 217, 314, 177, 178, 179, 180, 181, 182, 183, - 184, 218, 145, 219, 220, 221, 222, 223, 224, 225, - 312, 226, 146, 313, 148, 150, 212, 229, 230, 247, - 231, 206, 153, 108, 110, 116, 118, 120, 122, 124, - 232, 127, 129, 135, 140, 156, 158, 237, 161, 164, - 166, 233, 199, 204, 208, 234, 235, 236, 238, 0, - 0, 0, 320, 0, 0, 0, 0, 0, 0, 0, - 319, 0, 0, 0, 2, 3, 4, 0, 5, 6, - 7, 8, 9, 10, 11, 0, 0, 12, 0, 0, - 0, 13, 14, 0, 89, 15, 247, 0, 16, 17, - 18, 0, 0, 0, 330, 0, 0, 334, 90, 0, - 0, 0, 0, 0, 19, 20, 339, 0, 0, 0, - 0, 21, 91, 0, 0, 23, 0, 24, 0, 0, - 0, 1, 92, 2, 3, 4, 0, 5, 6, 7, - 8, 9, 10, 11, 0, 0, 12, 0, 0, 0, - 13, 14, 0, 0, 15, 0, 0, 16, 17, 18, - 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 19, 20, 0, 0, -141, -141, 133, - 21, 22, -126, 0, 23, 0, 24, -141, -141, -141, - -141, 0, -141, -141, 138, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -142, -142, - 139, 162, 0, 134, 0, -141, 0, 104, -142, -142, - -142, -142, 0, -142, -142, -148, -148, 0, 202, 0, - 0, 0, 0, 0, 0, -148, -148, -148, -148, 0, - -148, -148, -145, -145, 203, 107, -142, 0, 104, 0, - 0, 0, -145, -145, -145, -145, 0, -145, -145, -130, - -130, 163, 109, -148, 0, 104, 0, 0, 0, -130, - -130, -130, -130, 0, -130, -130, -131, -131, 0, 115, - -145, 0, 104, 0, 0, 0, -131, -131, -131, -131, - 0, -131, -131, -129, -129, 0, 117, -130, 0, 104, + 53, 56, 96, 149, 313, 130, 79, 136, 111, 141, + 151, 154, 81, 82, 83, 260, 77, 80, 247, 85, + 86, 139, 88, 97, 248, 101, 163, 24, -146, 294, + 104, 87, 112, 17, 18, 84, 143, 201, 102, 114, + 144, 112, 203, 112, 267, 112, 147, 112, 131, 78, + 137, 226, 142, 152, 17, 18, 77, 16, 104, 184, + 24, 17, 18, 108, 110, 133, 116, 118, 120, 122, + 124, 325, 127, 129, 104, 135, 21, 140, 112, 306, + 209, 156, 158, 21, 161, 204, 164, 166, 24, 305, + 330, -21, 304, -21, 225, 319, 185, 238, 134, 239, + -139, 235, 104, 243, 245, 211, 212, 249, 197, 250, + 202, 111, 206, 307, 77, 251, 198, 252, 333, 253, + 199, 254, 174, 255, 331, 256, 257, 301, 258, 186, + 187, 302, 259, 181, 182, 183, 17, 18, 261, 188, + 189, 190, 191, 301, 192, 193, 301, 315, 301, 301, + 316, 133, 320, 327, 296, 262, 241, 263, 242, 264, + 265, 139, 266, 201, 104, 268, 194, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, -142, 286, 321, 194, 288, 289, + 290, 291, 292, 293, 314, 174, 297, 295, 125, 298, + 299, -137, -68, 104, -68, 300, 174, 334, 322, 335, + 323, 326, -135, -135, 214, 179, 180, 181, 182, 183, + 312, 336, -135, -135, -135, -135, 145, -135, -135, 215, + 146, 216, 148, 217, 218, 0, 150, 219, 310, 153, + 220, 311, 221, 222, 223, 224, 210, 245, 227, -135, + 0, 108, 110, 116, 118, 120, 122, 124, 228, 127, + 129, 135, 140, 156, 158, 229, 161, 164, 166, 230, + 197, 202, 206, 231, 0, 232, 233, 234, 0, 236, + 318, 0, 0, 0, 0, 0, 0, 0, 317, 0, + 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 12, 0, 0, 0, 13, + 14, 0, 89, 15, 245, 0, 16, 17, 18, 0, + 0, 0, 328, 0, 0, 332, 90, 0, 0, 0, + 0, 0, 19, 20, 337, 0, 0, 0, 0, 21, + 91, 0, 23, 0, 24, 0, 0, 0, 1, 92, + 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, + 11, 0, 0, 12, 0, 0, 0, 13, 14, 0, + 0, 15, 0, 0, 16, 17, 18, 0, 0, 132, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 20, 0, -139, -139, 133, 138, 21, 22, -124, + 23, 0, 24, -139, -139, -139, -139, 0, -139, -139, + -140, -140, 139, 0, 0, 0, 0, 0, 0, 0, + -140, -140, -140, -140, 0, -140, -140, 162, 134, 0, + -139, 0, 104, 0, 0, 0, 0, 0, 0, 0, + 0, -146, -146, 0, 200, 0, 0, -140, 0, 104, + 0, -146, -146, -146, -146, 0, -146, -146, -143, -143, + 201, 0, 0, 0, 0, 0, 0, 0, -143, -143, + -143, -143, 0, -143, -143, 103, 163, 0, -146, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, -126, + -126, 0, 107, 0, 0, -143, 0, 104, 0, -126, + -126, -126, -126, 0, -126, -126, -128, -128, 0, 109, + 0, 0, 0, 0, 0, 0, -128, -128, -128, -128, + 0, -128, -128, -129, -129, 0, -126, 115, 104, 0, 0, 0, 0, -129, -129, -129, -129, 0, -129, -129, - -132, -132, 0, 119, -131, 0, 104, 0, 0, 0, - -132, -132, -132, -132, 0, -132, -132, -134, -134, 0, - 121, -129, 0, 104, 0, 0, 0, -134, -134, -134, - -134, 0, -134, -134, -135, -135, 0, 123, -132, 0, - 104, 0, 0, 0, -135, -135, -135, -135, 0, -135, - -135, -136, -136, 0, 126, -134, 0, 104, 0, 0, - 0, -136, -136, -136, -136, 0, -136, -136, -138, -138, - 0, 128, -135, 0, 104, 0, 0, 0, -138, -138, - -138, -138, 0, -138, -138, -143, -143, 0, 155, -136, - 0, 104, 0, 0, 0, -143, -143, -143, -143, 0, - -143, -143, -139, -139, 0, 157, -138, 0, 104, 0, - 0, 0, -139, -139, -139, -139, 0, -139, -139, -140, - -140, 0, 160, -143, 0, 104, 0, 0, 0, -140, - -140, -140, -140, 0, -140, -140, -146, -146, 0, 165, - -139, 0, 104, 0, 0, 0, -146, -146, -146, -146, - 0, -146, -146, -149, -149, 0, 198, -140, 0, 104, - 0, 0, 0, -149, -149, -149, -149, 0, -149, -149, - -133, -133, 0, 207, -146, 0, 104, 0, 0, 0, - -133, -133, -133, -133, 0, -133, -133, -147, -147, 0, - 0, -149, 0, 104, 0, 0, 0, -147, -147, -147, - -147, 0, -147, -147, 0, 0, 0, 0, -133, 0, - 104, 2, 3, 4, 0, 5, 6, 7, 8, 9, - 10, 11, 0, 0, 12, -147, 0, 104, 13, 14, - 0, 0, 15, 0, 0, 16, 17, 18, 0, 0, - 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, - 0, 19, 20, 0, 0, 0, 0, 0, 21, 91, - 0, 0, 23, 0, 24, 2, 3, 4, 0, 5, + 0, -127, -127, -128, 117, 104, 0, 0, 0, 0, + 0, -127, -127, -127, -127, 0, -127, -127, -130, -130, + -129, 119, 104, 0, 0, 0, 0, 0, -130, -130, + -130, -130, 0, -130, -130, -132, -132, 0, -127, 121, + 104, 0, 0, 0, 0, -132, -132, -132, -132, 0, + -132, -132, 0, -133, -133, -130, 123, 104, 0, 0, + 0, 0, 0, -133, -133, -133, -133, 0, -133, -133, + -134, -134, -132, 126, 104, 0, 0, 0, 0, 0, + -134, -134, -134, -134, 0, -134, -134, -136, -136, 0, + -133, 128, 104, 0, 0, 0, 0, -136, -136, -136, + -136, 0, -136, -136, 0, -141, -141, -134, 155, 104, + 0, 0, 0, 0, 0, -141, -141, -141, -141, 0, + -141, -141, -137, -137, -136, 157, 104, 0, 0, 0, + 0, 0, -137, -137, -137, -137, 0, -137, -137, -138, + -138, 0, -141, 160, 104, 0, 0, 0, 0, -138, + -138, -138, -138, 0, -138, -138, 0, -144, -144, -137, + 165, 104, 0, 0, 0, 0, 0, -144, -144, -144, + -144, 0, -144, -144, -147, -147, -138, 196, 104, 0, + 0, 0, 0, 0, -147, -147, -147, -147, 0, -147, + -147, -131, -131, 0, -144, 205, 104, 0, 0, 0, + 0, -131, -131, -131, -131, 0, -131, -131, 0, -145, + -145, -147, 0, 104, 0, 0, 0, 0, 0, -145, + -145, -145, -145, 0, -145, -145, 0, 0, -131, 0, + 104, 0, 2, 3, 4, 0, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 12, -145, 0, 104, 13, + 14, 0, 0, 15, 0, 0, 16, 17, 18, 0, + 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, + 0, 0, 19, 20, 0, 0, 0, 0, 0, 21, + 91, 0, 23, 0, 24, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, 0, 0, 12, 0, 0, 0, 13, 14, 0, 0, 15, 0, 0, 16, - 17, 18, 0, 0, 0, 0, 0, 0, 0, 246, + 17, 18, 0, 0, 0, 0, 0, 0, 0, 244, 0, 0, 0, 0, 0, 19, 20, 0, 0, 0, - 0, 0, 21, 22, 0, 0, 23, 0, 24, 2, - 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, - 0, 0, 12, 0, 0, 0, 13, 14, 188, 189, - 15, 0, 0, 16, 17, 18, 0, 0, 190, 191, - 192, 193, 0, 194, 195, 0, 0, 0, 0, 19, - 20, 0, 0, 0, 0, 0, 21, 22, 0, 0, - 23, 0, 24, 2, 3, 4, 196, 5, 6, 7, - 8, 9, 10, 11, 0, 0, 12, 0, 0, 0, - 13, 14, 0, 0, 15, 0, 0, 16, 17, 18, + 0, 0, 21, 22, 0, 23, 0, 24, 2, 3, + 4, 0, 5, 6, 7, 8, 9, 10, 11, 0, + 0, 12, 172, 173, 0, 13, 14, 0, 0, 15, + 0, 174, 16, 17, 18, 0, 0, 176, 177, 178, + 179, 180, 181, 182, 183, 0, 0, 0, 19, 20, + 0, 0, 0, 0, 0, 21, 22, 0, 23, 0, + 24, 2, 3, 4, 0, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 12, 0, 0, 0, 13, 14, + 0, 0, 15, 0, 0, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 19, 20, -3, 167, 0, 0, 0, - 21, 91, 0, 0, 23, 0, 24, 0, 0, 168, - 169, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 174, 0, 0, 0, 0, 0, 0, 0, 175, - 0, 0, 0, 0, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 0, 0, 0, 0, -127, 185, 215, - 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, - 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 16, 17, 18, -137, -137, 0, 159, - 0, 0, 0, 0, 0, 0, -137, -137, -137, -137, - 0, -137, -137, -144, -144, 0, 21, 0, 0, 0, - 23, 0, 24, -144, -144, -144, -144, 0, -144, -144, - 0, 0, 168, 169, -137, 170, 171, 172, 0, 0, - 0, 0, 0, 173, 174, 0, 0, 0, 0, 0, - 0, -144, 175, 0, 0, 0, 0, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 0, 0, 168, 169, - 305, 170, 171, 172, 0, 0, 0, 242, 0, 173, - 174, 0, 0, 0, 0, 0, 0, 0, 175, 0, - 0, 0, 0, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 168, 169, 0, 170, 171, 172, 0, 0, - 0, 326, 0, 173, 174, 0, 0, 0, 0, 0, - 0, 0, 175, 0, 0, 0, 0, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 168, 169, 0, 170, - 171, 172, 0, 0, 0, 0, 0, 173, 174, 0, - 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, - 0, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 168, 0, 0, 170, 171, 172, 0, 0, 0, 0, - 0, 173, 174, 0, 0, 0, 0, 0, 0, 0, - 175, 0, 0, 0, 0, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 170, 171, 172, 0, 0, 0, - 0, 0, 173, 174, 0, 0, 0, 0, 0, 0, - 0, 175, 0, 0, 0, 0, 176, 177, 178, 179, - 180, 181, 182, 183, 184 + 0, 19, 20, 0, 0, 0, 0, 0, 21, 91, + 0, 23, 0, 24, 213, 3, 4, 0, 5, 6, + 7, 8, 9, 10, 11, 0, 0, 159, 0, 0, + 0, 0, 0, 0, 0, 15, 0, 0, 16, 17, + 18, -142, -142, 0, 0, 0, 0, 0, 0, 0, + 0, -142, -142, -142, -142, 0, -142, -142, 0, 0, + 0, 21, 0, 0, 23, 0, 24, 0, 167, 168, + 0, 169, 170, 171, 0, 0, 0, 0, -142, 172, + 173, 0, 0, 0, 0, 0, 0, 0, 174, 0, + 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 0, 0, 167, 168, -125, 169, 170, 171, + 0, 0, 0, 0, 0, 172, 173, 0, 0, 0, + 0, 0, 0, 0, 174, 0, 0, 0, 0, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 0, 0, + 167, 168, 303, 169, 170, 171, 0, 0, 0, 240, + 0, 172, 173, 0, 0, 0, 0, 0, 0, 0, + 174, 0, 0, 0, 0, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 167, 168, 0, 169, 170, 171, + 0, 0, 0, 324, 0, 172, 173, 0, 0, 0, + 0, 0, 0, 0, 174, 0, 0, 0, 0, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 167, 168, + 0, 169, 170, 171, 0, 0, 0, 0, 0, 172, + 173, 0, 0, 0, 0, 0, 0, 0, 174, 0, + 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 167, 0, 0, 169, 170, 171, 0, 0, + 0, 0, 0, 172, 173, 0, 0, 0, 0, 0, + 0, 0, 174, 0, 0, 0, 0, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 169, 170, 171, 0, + 0, 0, 0, 0, 172, 173, 0, 0, 0, 0, + 0, 0, 0, 174, 0, 0, 0, 0, 175, 176, + 177, 178, 179, 180, 181, 182, 183 }; static const yytype_int16 yycheck[] = { - 0, 0, 23, 6, 249, 43, 22, 22, 22, 3, - 56, 22, 12, 13, 14, 134, 22, 20, 21, 19, - 20, 52, 3, 23, 3, 24, 57, 30, 31, 32, - 33, 22, 35, 36, 28, 29, 305, 29, 56, 0, - 22, 56, 56, 58, 163, 60, 38, 3, 40, 60, - 42, 43, 44, 91, 60, 58, 37, 60, 37, 328, - 56, 27, 56, 27, 28, 3, 30, 31, 32, 33, - 34, 316, 36, 37, 56, 39, 58, 41, 60, 52, - 80, 45, 46, 75, 48, 52, 50, 51, 3, 22, - 28, 29, 7, 56, 213, 58, 38, 60, 40, 91, - 42, 43, 44, 103, 104, 3, 55, 107, 72, 109, - 74, 52, 76, 28, 29, 115, 22, 117, 59, 119, - 22, 121, 52, 123, 52, 125, 126, 57, 128, 57, - 28, 29, 132, 75, 34, 50, 52, 34, 138, 55, - 58, 56, 60, 43, 44, 45, 46, 47, 45, 46, - 47, 52, 50, 22, 58, 155, 57, 157, 196, 159, - 160, 52, 162, 58, 52, 165, 57, 55, 168, 169, + 0, 0, 23, 43, 247, 38, 22, 40, 3, 42, + 43, 44, 12, 13, 14, 134, 22, 55, 52, 19, + 20, 22, 3, 23, 58, 24, 55, 55, 57, 3, + 59, 21, 29, 28, 29, 22, 3, 22, 0, 29, + 7, 38, 75, 40, 163, 42, 43, 44, 38, 55, + 40, 91, 42, 43, 28, 29, 22, 27, 59, 52, + 55, 28, 29, 27, 28, 22, 30, 31, 32, 33, + 34, 314, 36, 37, 59, 39, 50, 41, 75, 3, + 80, 45, 46, 50, 48, 75, 50, 51, 55, 55, + 3, 57, 211, 59, 91, 303, 52, 52, 55, 54, + 57, 91, 59, 103, 104, 55, 54, 107, 72, 109, + 74, 3, 76, 37, 22, 115, 52, 117, 326, 119, + 56, 121, 34, 123, 37, 125, 126, 52, 128, 20, + 21, 56, 132, 45, 46, 47, 28, 29, 138, 30, + 31, 32, 33, 52, 35, 36, 52, 56, 52, 52, + 56, 22, 56, 56, 194, 155, 52, 157, 54, 159, + 160, 22, 162, 22, 59, 165, 57, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 60, 52, 186, 307, 55, - 190, 191, 192, 193, 194, 195, 60, 21, 198, 34, - 61, 200, 202, 52, 196, 29, 52, 207, 25, 26, - 58, 57, 60, 52, 38, 57, 40, 34, 42, 43, - 91, 91, 243, 40, 41, 42, 43, 44, 45, 46, - 47, 91, 43, 91, 91, 91, 91, 91, 91, 91, - 240, 91, 43, 242, 43, 43, 84, 91, 91, 249, - 91, 75, 43, 217, 218, 219, 220, 221, 222, 223, - 91, 225, 226, 227, 228, 229, 230, 91, 232, 233, - 234, 91, 236, 237, 238, 91, 91, 91, 91, -1, - -1, -1, 303, -1, -1, -1, -1, -1, -1, -1, - 289, -1, -1, -1, 3, 4, 5, -1, 7, 8, - 9, 10, 11, 12, 13, -1, -1, 16, -1, -1, - -1, 20, 21, -1, 23, 24, 316, -1, 27, 28, - 29, -1, -1, -1, 324, -1, -1, 326, 37, -1, - -1, -1, -1, -1, 43, 44, 336, -1, -1, -1, - -1, 50, 51, -1, -1, 54, -1, 56, -1, -1, - -1, 1, 61, 3, 4, 5, -1, 7, 8, 9, - 10, 11, 12, 13, -1, -1, 16, -1, -1, -1, - 20, 21, -1, -1, 24, -1, -1, 27, 28, 29, - -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 43, 44, -1, -1, 20, 21, 22, - 50, 51, 52, -1, 54, -1, 56, 30, 31, 32, - 33, -1, 35, 36, 6, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, - 22, 6, -1, 56, -1, 58, -1, 60, 30, 31, - 32, 33, -1, 35, 36, 20, 21, -1, 6, -1, - -1, -1, -1, -1, -1, 30, 31, 32, 33, -1, - 35, 36, 20, 21, 22, 6, 58, -1, 60, -1, - -1, -1, 30, 31, 32, 33, -1, 35, 36, 20, - 21, 56, 6, 58, -1, 60, -1, -1, -1, 30, - 31, 32, 33, -1, 35, 36, 20, 21, -1, 6, - 58, -1, 60, -1, -1, -1, 30, 31, 32, 33, - -1, 35, 36, 20, 21, -1, 6, 58, -1, 60, - -1, -1, -1, 30, 31, 32, 33, -1, 35, 36, - 20, 21, -1, 6, 58, -1, 60, -1, -1, -1, - 30, 31, 32, 33, -1, 35, 36, 20, 21, -1, - 6, 58, -1, 60, -1, -1, -1, 30, 31, 32, - 33, -1, 35, 36, 20, 21, -1, 6, 58, -1, - 60, -1, -1, -1, 30, 31, 32, 33, -1, 35, - 36, 20, 21, -1, 6, 58, -1, 60, -1, -1, + 180, 181, 182, 183, 57, 184, 305, 57, 188, 189, + 190, 191, 192, 193, 59, 34, 196, 194, 6, 198, + 200, 57, 57, 59, 59, 205, 34, 52, 60, 54, + 52, 52, 20, 21, 91, 43, 44, 45, 46, 47, + 241, 56, 30, 31, 32, 33, 43, 35, 36, 91, + 43, 91, 43, 91, 91, -1, 43, 91, 238, 43, + 91, 240, 91, 91, 91, 91, 84, 247, 91, 57, + -1, 215, 216, 217, 218, 219, 220, 221, 91, 223, + 224, 225, 226, 227, 228, 91, 230, 231, 232, 91, + 234, 235, 236, 91, -1, 91, 91, 91, -1, 91, + 301, -1, -1, -1, -1, -1, -1, -1, 287, -1, + -1, -1, 3, 4, 5, -1, 7, 8, 9, 10, + 11, 12, 13, -1, -1, 16, -1, -1, -1, 20, + 21, -1, 23, 24, 314, -1, 27, 28, 29, -1, + -1, -1, 322, -1, -1, 324, 37, -1, -1, -1, + -1, -1, 43, 44, 334, -1, -1, -1, -1, 50, + 51, -1, 53, -1, 55, -1, -1, -1, 1, 60, + 3, 4, 5, -1, 7, 8, 9, 10, 11, 12, + 13, -1, -1, 16, -1, -1, -1, 20, 21, -1, + -1, 24, -1, -1, 27, 28, 29, -1, -1, 6, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 43, 44, -1, 20, 21, 22, 6, 50, 51, 52, + 53, -1, 55, 30, 31, 32, 33, -1, 35, 36, + 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, + 30, 31, 32, 33, -1, 35, 36, 6, 55, -1, + 57, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, -1, 6, -1, -1, 57, -1, 59, -1, 30, 31, 32, 33, -1, 35, 36, 20, 21, - -1, 6, 58, -1, 60, -1, -1, -1, 30, 31, - 32, 33, -1, 35, 36, 20, 21, -1, 6, 58, - -1, 60, -1, -1, -1, 30, 31, 32, 33, -1, - 35, 36, 20, 21, -1, 6, 58, -1, 60, -1, - -1, -1, 30, 31, 32, 33, -1, 35, 36, 20, - 21, -1, 6, 58, -1, 60, -1, -1, -1, 30, + 22, -1, -1, -1, -1, -1, -1, -1, 30, 31, + 32, 33, -1, 35, 36, 6, 55, -1, 57, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, 20, + 21, -1, 6, -1, -1, 57, -1, 59, -1, 30, 31, 32, 33, -1, 35, 36, 20, 21, -1, 6, - 58, -1, 60, -1, -1, -1, 30, 31, 32, 33, - -1, 35, 36, 20, 21, -1, 6, 58, -1, 60, + -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, + -1, 35, 36, 20, 21, -1, 57, 6, 59, -1, -1, -1, -1, 30, 31, 32, 33, -1, 35, 36, - 20, 21, -1, 6, 58, -1, 60, -1, -1, -1, + -1, 20, 21, 57, 6, 59, -1, -1, -1, -1, + -1, 30, 31, 32, 33, -1, 35, 36, 20, 21, + 57, 6, 59, -1, -1, -1, -1, -1, 30, 31, + 32, 33, -1, 35, 36, 20, 21, -1, 57, 6, + 59, -1, -1, -1, -1, 30, 31, 32, 33, -1, + 35, 36, -1, 20, 21, 57, 6, 59, -1, -1, + -1, -1, -1, 30, 31, 32, 33, -1, 35, 36, + 20, 21, 57, 6, 59, -1, -1, -1, -1, -1, 30, 31, 32, 33, -1, 35, 36, 20, 21, -1, - -1, 58, -1, 60, -1, -1, -1, 30, 31, 32, - 33, -1, 35, 36, -1, -1, -1, -1, 58, -1, - 60, 3, 4, 5, -1, 7, 8, 9, 10, 11, - 12, 13, -1, -1, 16, 58, -1, 60, 20, 21, - -1, -1, 24, -1, -1, 27, 28, 29, -1, -1, - -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, - -1, 43, 44, -1, -1, -1, -1, -1, 50, 51, - -1, -1, 54, -1, 56, 3, 4, 5, -1, 7, + 57, 6, 59, -1, -1, -1, -1, 30, 31, 32, + 33, -1, 35, 36, -1, 20, 21, 57, 6, 59, + -1, -1, -1, -1, -1, 30, 31, 32, 33, -1, + 35, 36, 20, 21, 57, 6, 59, -1, -1, -1, + -1, -1, 30, 31, 32, 33, -1, 35, 36, 20, + 21, -1, 57, 6, 59, -1, -1, -1, -1, 30, + 31, 32, 33, -1, 35, 36, -1, 20, 21, 57, + 6, 59, -1, -1, -1, -1, -1, 30, 31, 32, + 33, -1, 35, 36, 20, 21, 57, 6, 59, -1, + -1, -1, -1, -1, 30, 31, 32, 33, -1, 35, + 36, 20, 21, -1, 57, 6, 59, -1, -1, -1, + -1, 30, 31, 32, 33, -1, 35, 36, -1, 20, + 21, 57, -1, 59, -1, -1, -1, -1, -1, 30, + 31, 32, 33, -1, 35, 36, -1, -1, 57, -1, + 59, -1, 3, 4, 5, -1, 7, 8, 9, 10, + 11, 12, 13, -1, -1, 16, 57, -1, 59, 20, + 21, -1, -1, 24, -1, -1, 27, 28, 29, -1, + -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, + -1, -1, 43, 44, -1, -1, -1, -1, -1, 50, + 51, -1, 53, -1, 55, 3, 4, 5, -1, 7, 8, 9, 10, 11, 12, 13, -1, -1, 16, -1, -1, -1, 20, 21, -1, -1, 24, -1, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, - -1, -1, 50, 51, -1, -1, 54, -1, 56, 3, - 4, 5, -1, 7, 8, 9, 10, 11, 12, 13, - -1, -1, 16, -1, -1, -1, 20, 21, 20, 21, - 24, -1, -1, 27, 28, 29, -1, -1, 30, 31, - 32, 33, -1, 35, 36, -1, -1, -1, -1, 43, - 44, -1, -1, -1, -1, -1, 50, 51, -1, -1, - 54, -1, 56, 3, 4, 5, 58, 7, 8, 9, - 10, 11, 12, 13, -1, -1, 16, -1, -1, -1, - 20, 21, -1, -1, 24, -1, -1, 27, 28, 29, + -1, -1, 50, 51, -1, 53, -1, 55, 3, 4, + 5, -1, 7, 8, 9, 10, 11, 12, 13, -1, + -1, 16, 25, 26, -1, 20, 21, -1, -1, 24, + -1, 34, 27, 28, 29, -1, -1, 40, 41, 42, + 43, 44, 45, 46, 47, -1, -1, -1, 43, 44, + -1, -1, -1, -1, -1, 50, 51, -1, 53, -1, + 55, 3, 4, 5, -1, 7, 8, 9, 10, 11, + 12, 13, -1, -1, 16, -1, -1, -1, 20, 21, + -1, -1, 24, -1, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 43, 44, 0, 1, -1, -1, -1, - 50, 51, -1, -1, 54, -1, 56, -1, -1, 14, - 15, -1, 17, 18, 19, -1, -1, -1, -1, -1, - 25, 26, -1, -1, -1, -1, -1, -1, -1, 34, - -1, -1, -1, -1, 39, 40, 41, 42, 43, 44, - 45, 46, 47, -1, -1, -1, -1, 52, 53, 3, - 4, 5, -1, 7, 8, 9, 10, 11, 12, 13, - -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, - 24, -1, -1, 27, 28, 29, 20, 21, -1, 6, - -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, - -1, 35, 36, 20, 21, -1, 50, -1, -1, -1, - 54, -1, 56, 30, 31, 32, 33, -1, 35, 36, - -1, -1, 14, 15, 58, 17, 18, 19, -1, -1, - -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, - -1, 58, 34, -1, -1, -1, -1, 39, 40, 41, - 42, 43, 44, 45, 46, 47, -1, -1, 14, 15, - 52, 17, 18, 19, -1, -1, -1, 23, -1, 25, + -1, 43, 44, -1, -1, -1, -1, -1, 50, 51, + -1, 53, -1, 55, 3, 4, 5, -1, 7, 8, + 9, 10, 11, 12, 13, -1, -1, 6, -1, -1, + -1, -1, -1, -1, -1, 24, -1, -1, 27, 28, + 29, 20, 21, -1, -1, -1, -1, -1, -1, -1, + -1, 30, 31, 32, 33, -1, 35, 36, -1, -1, + -1, 50, -1, -1, 53, -1, 55, -1, 14, 15, + -1, 17, 18, 19, -1, -1, -1, -1, 57, 25, 26, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 14, 15, -1, 17, 18, 19, -1, -1, - -1, 23, -1, 25, 26, -1, -1, -1, -1, -1, - -1, -1, 34, -1, -1, -1, -1, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 14, 15, -1, 17, - 18, 19, -1, -1, -1, -1, -1, 25, 26, -1, - -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, - -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 14, -1, -1, 17, 18, 19, -1, -1, -1, -1, + 46, 47, -1, -1, 14, 15, 52, 17, 18, 19, + -1, -1, -1, -1, -1, 25, 26, -1, -1, -1, + -1, -1, -1, -1, 34, -1, -1, -1, -1, 39, + 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, + 14, 15, 52, 17, 18, 19, -1, -1, -1, 23, -1, 25, 26, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 17, 18, 19, -1, -1, -1, - -1, -1, 25, 26, -1, -1, -1, -1, -1, -1, - -1, 34, -1, -1, -1, -1, 39, 40, 41, 42, - 43, 44, 45, 46, 47 + 44, 45, 46, 47, 14, 15, -1, 17, 18, 19, + -1, -1, -1, 23, -1, 25, 26, -1, -1, -1, + -1, -1, -1, -1, 34, -1, -1, -1, -1, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 14, 15, + -1, 17, 18, 19, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, -1, -1, 34, -1, + -1, -1, -1, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 14, -1, -1, 17, 18, 19, -1, -1, + -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, + -1, -1, 34, -1, -1, -1, -1, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 17, 18, 19, -1, + -1, -1, -1, -1, 25, 26, -1, -1, -1, -1, + -1, -1, -1, 34, -1, -1, -1, -1, 39, 40, + 41, 42, 43, 44, 45, 46, 47 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1239,38 +1240,38 @@ static const yytype_uint8 yystos[] = { 0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 16, 20, 21, 24, 27, 28, 29, 43, - 44, 50, 51, 54, 56, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, - 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, - 94, 95, 96, 97, 99, 101, 102, 103, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 122, 127, 128, 129, 130, 22, 56, 22, - 56, 97, 97, 97, 22, 97, 97, 128, 3, 23, - 37, 51, 61, 75, 91, 92, 93, 97, 102, 121, - 97, 102, 0, 6, 60, 119, 120, 6, 119, 6, - 119, 3, 78, 84, 128, 6, 119, 6, 119, 6, - 119, 6, 119, 6, 119, 6, 6, 119, 6, 119, - 84, 128, 6, 22, 56, 119, 84, 128, 6, 22, - 119, 84, 128, 3, 7, 67, 77, 78, 79, 80, - 81, 84, 128, 129, 84, 6, 119, 6, 119, 6, - 6, 119, 6, 56, 119, 6, 119, 1, 14, 15, - 17, 18, 19, 25, 26, 34, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 53, 52, 52, 20, 21, - 30, 31, 32, 33, 35, 36, 58, 104, 6, 119, - 52, 57, 6, 22, 119, 84, 128, 6, 119, 90, - 93, 97, 82, 56, 55, 3, 64, 65, 66, 68, - 69, 70, 71, 72, 73, 74, 76, 78, 80, 85, - 86, 87, 88, 94, 95, 103, 122, 128, 130, 123, - 52, 55, 23, 52, 55, 97, 37, 97, 98, 52, - 59, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 90, 97, 97, 97, 97, 97, 97, 90, - 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 97, 97, 97, 102, 100, - 97, 97, 97, 97, 97, 97, 3, 78, 80, 97, - 102, 97, 97, 52, 57, 52, 90, 56, 3, 37, - 125, 126, 97, 102, 93, 98, 60, 57, 57, 102, - 93, 91, 57, 90, 61, 52, 23, 98, 52, 57, - 97, 124, 3, 37, 102, 91, 52, 55, 57, 97 + 44, 50, 51, 53, 55, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 75, 76, 77, + 78, 79, 80, 81, 82, 84, 85, 86, 87, 88, + 93, 94, 95, 96, 98, 100, 101, 102, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 121, 126, 127, 128, 129, 22, 55, 22, + 55, 96, 96, 96, 22, 96, 96, 127, 3, 23, + 37, 51, 60, 74, 90, 91, 92, 96, 101, 120, + 96, 101, 0, 6, 59, 118, 119, 6, 118, 6, + 118, 3, 77, 83, 127, 6, 118, 6, 118, 6, + 118, 6, 118, 6, 118, 6, 6, 118, 6, 118, + 83, 127, 6, 22, 55, 118, 83, 127, 6, 22, + 118, 83, 127, 3, 7, 66, 76, 77, 78, 79, + 80, 83, 127, 128, 83, 6, 118, 6, 118, 6, + 6, 118, 6, 55, 118, 6, 118, 14, 15, 17, + 18, 19, 25, 26, 34, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 52, 52, 20, 21, 30, 31, + 32, 33, 35, 36, 57, 103, 6, 118, 52, 56, + 6, 22, 118, 83, 127, 6, 118, 89, 92, 96, + 81, 55, 54, 3, 63, 64, 65, 67, 68, 69, + 70, 71, 72, 73, 75, 77, 79, 84, 85, 86, + 87, 93, 94, 102, 121, 127, 129, 122, 52, 54, + 23, 52, 54, 96, 37, 96, 97, 52, 58, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 89, 96, 96, 96, 96, 96, 96, 89, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 101, 99, 96, 96, + 96, 96, 96, 96, 3, 77, 79, 96, 101, 96, + 96, 52, 56, 52, 89, 55, 3, 37, 124, 125, + 96, 101, 92, 97, 59, 56, 56, 101, 92, 90, + 56, 89, 60, 52, 23, 97, 52, 56, 96, 123, + 3, 37, 101, 90, 52, 54, 56, 96 }; #define yyerrok (yyerrstatus = 0) @@ -2095,50 +2096,29 @@ yyreduce: case 2: #line 248 "macro.y" { - HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (2)].asExpr) ); + HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (1)].asExpr) ); if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) - hb_macroExprGenPush( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); + hb_macroExprGenPush( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); else - hb_macroExprGenPop( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); + hb_macroExprGenPop( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); hb_macroGenPCode1( HB_P_ENDPROC, HB_COMP_PARAM ); ;} break; case 3: -#line 257 "macro.y" +#line 256 "macro.y" { HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (1)].asExpr) ); if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) hb_macroExprGenPush( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); else - hb_macroExprGenPop( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); + hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); hb_macroGenPCode1( HB_P_ENDPROC, HB_COMP_PARAM ); ;} break; case 4: -#line 265 "macro.y" - { - HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (1)].asExpr) ); - if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) - hb_macroExprGenPush( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); - else - hb_macroExprGenPop( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); - hb_macroGenPCode1( HB_P_ENDPROC, HB_COMP_PARAM ); - ;} - break; - - case 5: -#line 273 "macro.y" - { - HB_TRACE(HB_TR_DEBUG, ("macro -> invalid expression: %s", HB_MACRO_DATA->string)); - hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); - HB_MACRO_ABORT; - ;} - break; - - case 6: -#line 278 "macro.y" +#line 264 "macro.y" { HB_TRACE(HB_TR_DEBUG, ("macro -> invalid syntax: %s", HB_MACRO_DATA->string)); hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); @@ -2146,105 +2126,105 @@ yyreduce: ;} break; - case 7: -#line 287 "macro.y" + case 5: +#line 273 "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 288 "macro.y" + case 6: +#line 274 "macro.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; - case 9: -#line 291 "macro.y" + case 7: +#line 277 "macro.y" { (yyval.asExpr) = hb_compExprNewDate( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; - case 10: -#line 294 "macro.y" + case 8: +#line 280 "macro.y" { (yyval.asExpr) = hb_compExprNewTimeStamp( (yyvsp[(1) - (1)].valTimeStamp).date, (yyvsp[(1) - (1)].valTimeStamp).time, HB_COMP_PARAM ); ;} break; - case 11: -#line 297 "macro.y" + case 9: +#line 283 "macro.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (2)].valLong).lNumber, HB_COMP_PARAM ); ;} break; - case 12: -#line 302 "macro.y" + case 10: +#line 288 "macro.y" { (yyval.asExpr) = hb_compExprNewNil( HB_COMP_PARAM ); ;} break; - case 13: -#line 307 "macro.y" + case 11: +#line 293 "macro.y" { (yyval.asExpr) = hb_compExprNewString( (yyvsp[(1) - (1)].valChar).string, (yyvsp[(1) - (1)].valChar).length, FALSE, HB_COMP_PARAM ); ;} break; - case 14: -#line 312 "macro.y" + case 12: +#line 298 "macro.y" { (yyval.asExpr) = hb_compExprNewLogical( TRUE, HB_COMP_PARAM ); ;} break; - case 15: -#line 313 "macro.y" + case 13: +#line 299 "macro.y" { (yyval.asExpr) = hb_compExprNewLogical( FALSE, HB_COMP_PARAM ); ;} break; - case 16: -#line 318 "macro.y" + case 14: +#line 304 "macro.y" { (yyval.asExpr) = hb_compExprNewSelf( HB_COMP_PARAM ); ;} break; - case 17: -#line 323 "macro.y" + case 15: +#line 309 "macro.y" { (yyval.asExpr) = hb_compExprNewArray( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 18: -#line 328 "macro.y" + case 16: +#line 314 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 19: -#line 333 "macro.y" + case 17: +#line 319 "macro.y" { (yyval.asExpr) = hb_compExprNewHash( NULL, HB_COMP_PARAM ); ;} break; - case 20: -#line 334 "macro.y" + case 18: +#line 320 "macro.y" { (yyval.asExpr) = hb_compExprNewHash( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 21: -#line 337 "macro.y" + case 19: +#line 323 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 22: -#line 338 "macro.y" + case 20: +#line 324 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprAddListExpr( (yyvsp[(1) - (5)].asExpr), (yyvsp[(3) - (5)].asExpr) ), (yyvsp[(5) - (5)].asExpr) ); ;} break; - case 23: -#line 344 "macro.y" + case 21: +#line 330 "macro.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; - case 24: -#line 347 "macro.y" + case 22: +#line 333 "macro.y" { (yyval.asExpr) = hb_compExprNewAlias( (yyvsp[(1) - (2)].string), HB_COMP_PARAM ); ;} break; - case 25: -#line 352 "macro.y" + case 23: +#line 338 "macro.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, '&', (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; - case 26: -#line 355 "macro.y" + case 24: +#line 341 "macro.y" { BOOL fNewString; char * szVarName = hb_macroTextSymbol( (yyvsp[(1) - (1)].string), strlen( (yyvsp[(1) - (1)].string) ), &fNewString ); if( szVarName ) @@ -2264,227 +2244,227 @@ yyreduce: ;} break; - case 27: -#line 374 "macro.y" + case 25: +#line 360 "macro.y" { hb_compExprMacroAsAlias( (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 28: -#line 379 "macro.y" + case 26: +#line 365 "macro.y" { (yyval.asExpr) = hb_compExprNewMacro( (yyvsp[(2) - (2)].asExpr), 0, NULL, HB_COMP_PARAM ); ;} break; - case 30: -#line 389 "macro.y" + case 28: +#line 375 "macro.y" { (yyval.asExpr) = hb_compExprNewAlias( "FIELD", HB_COMP_PARAM ); ;} break; - case 31: -#line 390 "macro.y" + case 29: +#line 376 "macro.y" { (yyval.asExpr) = (yyvsp[(3) - (3)].asExpr); ;} break; + case 30: +#line 381 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + + case 31: +#line 382 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + case 32: -#line 395 "macro.y" +#line 383 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 33: -#line 396 "macro.y" +#line 384 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 34: -#line 397 "macro.y" +#line 385 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 35: -#line 398 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 36: -#line 399 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 37: -#line 402 "macro.y" +#line 388 "macro.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; + case 37: +#line 392 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 38: +#line 393 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + case 39: -#line 406 "macro.y" +#line 394 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 40: -#line 407 "macro.y" +#line 395 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 41: -#line 408 "macro.y" +#line 396 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 42: -#line 409 "macro.y" +#line 397 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 43: -#line 410 "macro.y" +#line 398 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 44: -#line 411 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} +#line 407 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 45: -#line 412 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} +#line 408 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 46: -#line 421 "macro.y" +#line 409 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 47: -#line 422 "macro.y" +#line 410 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 48: -#line 423 "macro.y" +#line 411 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 49: -#line 424 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} +#line 416 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 50: -#line 425 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} +#line 417 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 51: -#line 430 "macro.y" +#line 418 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 52: -#line 431 "macro.y" +#line 419 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 53: -#line 432 "macro.y" +#line 420 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 54: -#line 433 "macro.y" +#line 421 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 55: -#line 434 "macro.y" +#line 422 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 56: -#line 435 "macro.y" +#line 423 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 57: -#line 436 "macro.y" +#line 424 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 58: -#line 437 "macro.y" +#line 425 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 59: -#line 438 "macro.y" +#line 426 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 60: -#line 439 "macro.y" +#line 427 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 61: -#line 440 "macro.y" +#line 428 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 62: -#line 441 "macro.y" +#line 429 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 63: -#line 442 "macro.y" +#line 430 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 64: -#line 443 "macro.y" +#line 431 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 65: -#line 444 "macro.y" +#line 432 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 66: -#line 445 "macro.y" +#line 433 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 67: -#line 446 "macro.y" +#line 434 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 68: -#line 447 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 69: -#line 448 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 70: -#line 453 "macro.y" +#line 439 "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 71: -#line 456 "macro.y" + case 69: +#line 442 "macro.y" { (yyval.asExpr) = hb_macroExprNewFunCall( (yyvsp[(1) - (4)].asExpr), (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; - case 72: -#line 461 "macro.y" + case 70: +#line 447 "macro.y" { if( hb_compExprParamListLen( (yyvsp[(4) - (5)].asExpr) ) != 0 ) { hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); @@ -2495,98 +2475,98 @@ yyreduce: ;} break; - case 73: -#line 471 "macro.y" + case 71: +#line 457 "macro.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 74: -#line 472 "macro.y" + case 72: +#line 458 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 77: -#line 479 "macro.y" + case 75: +#line 465 "macro.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ); ;} break; + case 76: +#line 466 "macro.y" + { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 77: +#line 467 "macro.y" + { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + case 78: -#line 480 "macro.y" +#line 468 "macro.y" { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 79: -#line 481 "macro.y" - { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 80: -#line 482 "macro.y" - { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 81: -#line 483 "macro.y" +#line 469 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); (yyval.asExpr)->value.asList.reference = TRUE; ;} break; - case 82: -#line 486 "macro.y" + case 80: +#line 472 "macro.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; - case 84: -#line 492 "macro.y" + case 82: +#line 478 "macro.y" { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].string), NULL, HB_COMP_PARAM ); ;} break; + case 83: +#line 479 "macro.y" + { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 84: +#line 480 "macro.y" + { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + case 85: -#line 493 "macro.y" - { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 86: -#line 494 "macro.y" - { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 87: -#line 499 "macro.y" +#line 485 "macro.y" { (yyval.asExpr) = hb_compExprNewMethodCall( (yyvsp[(1) - (4)].asExpr), (yyvsp[(3) - (4)].asExpr) ); ;} break; + case 108: +#line 511 "macro.y" + { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} + break; + + case 109: +#line 512 "macro.y" + { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} + break; + case 110: -#line 525 "macro.y" +#line 513 "macro.y" { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} break; - case 111: -#line 526 "macro.y" - { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} + case 116: +#line 521 "macro.y" + { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; - case 112: -#line 527 "macro.y" - { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} + case 117: +#line 522 "macro.y" + { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 118: -#line 535 "macro.y" - { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} - break; - - case 119: -#line 536 "macro.y" - { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} - break; - - case 120: -#line 539 "macro.y" +#line 525 "macro.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; - case 122: -#line 543 "macro.y" + case 120: +#line 529 "macro.y" { if( !(HB_MACRO_DATA->Flags & HB_MACRO_GEN_LIST) ) { @@ -2597,383 +2577,383 @@ yyreduce: ;} break; - case 123: -#line 551 "macro.y" + case 121: +#line 537 "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) ); ;} break; - case 125: -#line 558 "macro.y" + case 123: +#line 544 "macro.y" { HB_MACRO_DATA->uiListElements++; (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 126: -#line 562 "macro.y" + case 124: +#line 548 "macro.y" { (yyval.asExpr) = hb_compExprNewEmpty( HB_COMP_PARAM ); ;} break; - case 150: -#line 593 "macro.y" + case 148: +#line 579 "macro.y" { (yyval.asExpr) = hb_compExprNewPostInc( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 151: -#line 594 "macro.y" + case 149: +#line 580 "macro.y" { (yyval.asExpr) = hb_compExprNewPostDec( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 152: -#line 600 "macro.y" + case 150: +#line 586 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 153: -#line 603 "macro.y" + case 151: +#line 589 "macro.y" { (yyval.asExpr) = hb_compExprNewPreInc( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 154: -#line 604 "macro.y" + case 152: +#line 590 "macro.y" { (yyval.asExpr) = hb_compExprNewPreDec( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 155: -#line 607 "macro.y" + case 153: +#line 593 "macro.y" { (yyval.asExpr) = hb_compExprNewNot( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 156: -#line 608 "macro.y" + case 154: +#line 594 "macro.y" { (yyval.asExpr) = hb_compExprNewNegate( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 157: -#line 609 "macro.y" + case 155: +#line 595 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; + case 156: +#line 598 "macro.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 157: +#line 599 "macro.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + case 158: -#line 612 "macro.y" +#line 600 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 159: -#line 613 "macro.y" +#line 601 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 160: -#line 614 "macro.y" +#line 602 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 161: -#line 615 "macro.y" +#line 603 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 162: -#line 616 "macro.y" +#line 604 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 163: -#line 617 "macro.y" +#line 605 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 164: -#line 618 "macro.y" +#line 606 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 165: -#line 619 "macro.y" +#line 607 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 166: -#line 620 "macro.y" +#line 608 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 167: -#line 621 "macro.y" +#line 609 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 168: -#line 622 "macro.y" +#line 610 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 169: -#line 623 "macro.y" +#line 611 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 170: -#line 624 "macro.y" +#line 612 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 171: -#line 625 "macro.y" +#line 613 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 172: -#line 626 "macro.y" +#line 614 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 173: -#line 627 "macro.y" +#line 615 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 174: -#line 628 "macro.y" +#line 616 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 175: -#line 629 "macro.y" +#line 617 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 176: -#line 630 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} +#line 618 "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 177: -#line 631 "macro.y" +#line 619 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 178: -#line 632 "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 179: -#line 633 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 180: -#line 636 "macro.y" +#line 622 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 181: -#line 639 "macro.y" + case 179: +#line 625 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 182: -#line 642 "macro.y" + case 180: +#line 628 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMultEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 183: -#line 645 "macro.y" + case 181: +#line 631 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDivEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 184: -#line 648 "macro.y" + case 182: +#line 634 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewModEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 185: -#line 651 "macro.y" + case 183: +#line 637 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewExpEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 192: -#line 662 "macro.y" + case 190: +#line 648 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 193: -#line 663 "macro.y" + case 191: +#line 649 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 194: -#line 664 "macro.y" + case 192: +#line 650 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMult( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 195: -#line 665 "macro.y" + case 193: +#line 651 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDiv( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 196: -#line 666 "macro.y" + case 194: +#line 652 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMod( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 197: -#line 667 "macro.y" + case 195: +#line 653 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPower( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 198: -#line 670 "macro.y" + case 196: +#line 656 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewAnd( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 199: -#line 671 "macro.y" + case 197: +#line 657 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewOr( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 200: -#line 674 "macro.y" + case 198: +#line 660 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEQ( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 201: -#line 675 "macro.y" + case 199: +#line 661 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 202: -#line 676 "macro.y" + case 200: +#line 662 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 203: -#line 677 "macro.y" + case 201: +#line 663 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 204: -#line 678 "macro.y" + case 202: +#line 664 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; + case 203: +#line 665 "macro.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 204: +#line 666 "macro.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + case 205: -#line 679 "macro.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 206: -#line 680 "macro.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 207: -#line 681 "macro.y" +#line 667 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewIN( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 208: -#line 682 "macro.y" + case 206: +#line 668 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEqual( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 210: -#line 691 "macro.y" + case 208: +#line 677 "macro.y" { (yyval.asExpr) = hb_macroExprNewArrayAt( (yyvsp[(0) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 211: -#line 692 "macro.y" + case 209: +#line 678 "macro.y" { (yyval.asExpr) = hb_macroExprNewArrayAt( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 212: -#line 693 "macro.y" + case 210: +#line 679 "macro.y" { (yyval.asExpr) = hb_macroExprNewArrayAt( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); ;} break; - case 213: -#line 696 "macro.y" + case 211: +#line 682 "macro.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 214: -#line 697 "macro.y" + case 212: +#line 683 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 215: -#line 701 "macro.y" + case 213: +#line 687 "macro.y" { (yyval.asExpr) = hb_compExprNewCodeBlock( NULL, 0, 0, HB_COMP_PARAM ); ;} break; - case 216: -#line 703 "macro.y" + case 214: +#line 689 "macro.y" { (yyval.asExpr) = (yyvsp[(3) - (7)].asExpr); ;} break; - case 217: -#line 708 "macro.y" + case 215: +#line 694 "macro.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} break; - case 218: -#line 709 "macro.y" + case 216: +#line 695 "macro.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 219: -#line 714 "macro.y" + case 217: +#line 700 "macro.y" { (yyval.asExpr) = NULL; ;} break; - case 220: -#line 715 "macro.y" + case 218: +#line 701 "macro.y" { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; - case 221: -#line 716 "macro.y" + case 219: +#line 702 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} break; - case 222: -#line 717 "macro.y" + case 220: +#line 703 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); (yyvsp[(0) - (3)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; - case 223: -#line 720 "macro.y" + case 221: +#line 706 "macro.y" { (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (1)].asExpr), (yyvsp[(1) - (1)].string), ' ', HB_COMP_PARAM ); ;} break; - case 224: -#line 721 "macro.y" + case 222: +#line 707 "macro.y" { (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (3)].asExpr), (yyvsp[(3) - (3)].string), ' ', HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; - case 225: -#line 724 "macro.y" + case 223: +#line 710 "macro.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 226: -#line 725 "macro.y" + case 224: +#line 711 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 229: -#line 736 "macro.y" + case 227: +#line 722 "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; /* Line 1268 of yacc.c. */ -#line 2977 "macroy.c" +#line 2957 "macroy.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3192,7 +3172,7 @@ yyreturn: } -#line 739 "macro.y" +#line 725 "macro.y" diff --git a/harbour/source/macro/macrolex.c b/harbour/source/macro/macrolex.c index 7aca133353..768325ce21 100644 --- a/harbour/source/macro/macrolex.c +++ b/harbour/source/macro/macrolex.c @@ -281,12 +281,11 @@ int hb_macrolex( YYSTYPE *yylval_ptr, HB_MACRO_PTR pMacro ) while( pLex->ulSrc < pLex->ulLen ) { - char ch = pLex->pString[ pLex->ulSrc++ ]; + unsigned char ch = ( unsigned char ) pLex->pString[ pLex->ulSrc++ ]; switch( ch ) { case ' ': case '\t': - case '\r': break; case '$': @@ -295,8 +294,6 @@ int hb_macrolex( YYSTYPE *yylval_ptr, HB_MACRO_PTR pMacro ) case '@': case '(': case '{': - case ';': - case '\n': pLex->quote = TRUE; return ch;