--- parser3/src/main/compile.tab.C 2005/11/21 09:47:35 1.103.8.6 +++ parser3/src/main/compile.tab.C 2005/12/16 10:15:12 1.110 @@ -45,7 +45,7 @@ Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://design.ru/paf) - $Id: compile.tab.C,v 1.103.8.6 2005/11/21 09:47:35 paf Exp $ + $Id: compile.tab.C,v 1.110 2005/12/16 10:15:12 paf Exp $ */ /** @@ -88,9 +88,9 @@ static int real_yyerror(Parse_control* p static void yyprint(FILE* file, int type, YYSTYPE value); static int yylex(YYSTYPE* lvalp, void* pc); -static ArrayOperation* vlfalse=VL(new VBool(false), 0, 0, 0); -static ArrayOperation* vltrue=VL(new VBool(true), 0, 0, 0); -static ArrayOperation* vlvoid=VL(new VVoid(), 0, 0, 0); +static const VBool vfalse(false); +static const VBool vtrue(true); +static const VVoid vvoid; // local convinient inplace typecast & var #undef PC @@ -111,11 +111,11 @@ static ArrayOperation* vlvoid=VL(new VVo -#define YYFINAL 261 +#define YYFINAL 263 #define YYFLAG -32768 #define YYNTBASE 62 -#define YYTRANSLATE(x) ((unsigned)(x) <= 288 ? yytranslate[x] : 148) +#define YYTRANSLATE(x) ((unsigned)(x) <= 288 ? yytranslate[x] : 150) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48, @@ -167,17 +167,18 @@ static const short yyprhs[] = { 0, 329, 332, 335, 338, 341, 344, 347, 350, 354, 358, 362, 366, 370, 374, 378, 382, 386, 390, 394, 398, 402, 406, 410, 414, 418, 422, 426, 430, 434, 438, - 442, 446, 450, 454, 458, 460, 462, 464, 465 + 442, 446, 450, 454, 458, 460, 462, 464, 465, 467, + 469 }; static const short yyrhs[] = { 64, 0, 63, 0, 65, 0, 63, 65, 0, 78, 0, - 66, 0, 71, 0, 47, 4, 48, 67, 0, 147, + 66, 0, 71, 0, 47, 4, 48, 67, 0, 149, 0, 68, 0, 69, 0, 68, 69, 0, 70, 48, - 0, 147, 0, 4, 0, 0, 47, 4, 74, 73, - 77, 48, 72, 78, 0, 147, 0, 74, 0, 49, - 75, 50, 0, 147, 0, 76, 0, 4, 0, 76, - 51, 4, 0, 147, 0, 4, 0, 147, 0, 79, + 0, 149, 0, 4, 0, 0, 47, 4, 74, 73, + 77, 48, 72, 78, 0, 149, 0, 74, 0, 49, + 75, 50, 0, 149, 0, 76, 0, 4, 0, 76, + 51, 4, 0, 149, 0, 4, 0, 149, 0, 79, 0, 80, 0, 79, 80, 0, 145, 0, 81, 0, 82, 0, 90, 0, 105, 0, 83, 0, 52, 84, 0, 86, 3, 0, 85, 0, 53, 86, 54, 0, @@ -201,7 +202,7 @@ static const short yyrhs[] = { 64, 4, 136, 0, 0, 0, 49, 133, 79, 134, 50, 0, 4, 0, 137, 0, 136, 137, 0, 52, 135, 0, 139, 0, 140, 0, 4, 59, 0, 139, 59, - 0, 142, 0, 143, 0, 32, 0, 33, 0, 83, + 0, 142, 0, 143, 0, 147, 0, 148, 0, 83, 0, 106, 0, 60, 144, 60, 0, 61, 144, 61, 0, 56, 142, 57, 0, 39, 142, 0, 38, 142, 0, 45, 142, 0, 46, 142, 0, 27, 142, 0, @@ -217,7 +218,7 @@ static const short yyrhs[] = { 64, 21, 142, 0, 142, 22, 142, 0, 142, 23, 142, 0, 142, 24, 142, 0, 142, 25, 142, 0, 142, 26, 142, 0, 142, 31, 142, 0, 4, 0, 78, - 0, 4, 0, 0, 0 + 0, 4, 0, 0, 32, 0, 33, 0, 0 }; #endif @@ -240,7 +241,8 @@ static const short yyrline[] = { 0, 578, 579, 580, 581, 582, 583, 584, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 615, 620, 629, 634, 635 + 609, 610, 611, 612, 615, 620, 629, 634, 635, 636, + 638 }; #endif @@ -272,7 +274,7 @@ static const char * const yytname[] = { "name_square_code_value","@8","@9","subvar_ref_name_rdive","subvar_get_writes", "subvar__get_write","class_prefix","class_static_prefix","class_constructor_prefix", "expr_value","expr","double_or_STRING","string_inside_quotes_value","write_string", -"void_value","empty", NULL +"void_value","true_value","false_value","empty", NULL }; #endif @@ -293,7 +295,8 @@ static const short yyr1[] = { 0, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 143, 144, 145, 146, 147 + 142, 142, 142, 142, 143, 144, 145, 146, 147, 148, + 149 }; static const short yyr2[] = { 0, @@ -313,201 +316,202 @@ static const short yyr2[] = { 0, 2, 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, 1, 1, 1, 0, 0 + 3, 3, 3, 3, 1, 1, 1, 0, 1, 1, + 0 }; -static const short yydefact[] = { 169, +static const short yydefact[] = { 171, 167, 0, 0, 70, 2, 1, 3, 6, 7, 5, 28, 29, 32, 33, 36, 34, 35, 69, 31, 27, 0, 104, 110, 0, 0, 0, 37, 39, 0, 41, 42, 43, 0, 48, 49, 50, 51, 0, 98, 0, 45, 96, 105, 106, 107, 0, 117, 118, 0, 4, - 30, 169, 169, 169, 103, 0, 119, 109, 114, 0, + 30, 171, 171, 171, 103, 0, 119, 109, 114, 0, 113, 108, 0, 0, 102, 0, 104, 52, 0, 96, - 38, 57, 169, 0, 47, 54, 55, 56, 104, 99, + 38, 57, 171, 0, 47, 54, 55, 56, 104, 99, 46, 97, 100, 44, 53, 120, 73, 71, 15, 8, - 10, 11, 0, 9, 23, 0, 22, 21, 169, 19, + 10, 11, 0, 9, 23, 0, 22, 21, 171, 19, 18, 116, 115, 111, 40, 97, 168, 0, 165, 0, - 0, 0, 0, 123, 124, 0, 0, 0, 0, 0, - 0, 169, 169, 125, 126, 0, 121, 122, 0, 12, - 14, 13, 20, 0, 26, 0, 25, 0, 167, 0, - 32, 58, 64, 65, 66, 62, 61, 134, 135, 136, - 137, 131, 130, 132, 133, 0, 166, 0, 0, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 169, 170, 0, 0, 0, 0, 0, + 0, 171, 171, 125, 126, 0, 121, 122, 123, 124, + 0, 12, 14, 13, 20, 0, 26, 0, 25, 0, + 167, 0, 32, 58, 64, 65, 66, 62, 61, 134, + 135, 136, 137, 131, 130, 132, 133, 0, 166, 0, + 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 79, 169, 0, - 0, 74, 76, 77, 78, 24, 16, 112, 68, 0, - 129, 127, 128, 149, 150, 151, 148, 154, 155, 156, - 157, 144, 145, 158, 159, 160, 161, 162, 163, 164, - 152, 153, 147, 146, 139, 138, 140, 141, 143, 142, - 168, 92, 0, 88, 0, 86, 91, 72, 75, 169, - 59, 167, 95, 80, 84, 90, 93, 169, 83, 0, - 82, 17, 168, 0, 89, 87, 85, 81, 0, 0, - 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, + 171, 0, 0, 74, 76, 77, 78, 24, 16, 112, + 68, 0, 129, 127, 128, 149, 150, 151, 148, 154, + 155, 156, 157, 144, 145, 158, 159, 160, 161, 162, + 163, 164, 152, 153, 147, 146, 139, 138, 140, 141, + 143, 142, 168, 92, 0, 88, 0, 86, 91, 72, + 75, 171, 59, 167, 95, 80, 84, 90, 93, 171, + 83, 0, 82, 17, 168, 0, 89, 87, 85, 81, + 0, 0, 0 }; -static const short yydefgoto[] = { 259, - 5, 6, 7, 8, 90, 91, 92, 93, 9, 240, - 99, 54, 96, 97, 136, 157, 11, 12, 13, 14, +static const short yydefgoto[] = { 261, + 5, 6, 7, 8, 90, 91, 92, 93, 9, 242, + 99, 54, 96, 97, 138, 159, 11, 12, 13, 14, 124, 27, 28, 29, 30, 31, 32, 16, 33, 34, - 35, 36, 75, 76, 107, 200, 77, 78, 142, 243, - 144, 145, 17, 125, 49, 129, 88, 191, 192, 193, - 231, 254, 194, 195, 244, 235, 233, 245, 236, 234, - 246, 37, 64, 39, 40, 41, 65, 43, 44, 45, - 60, 138, 62, 58, 59, 66, 47, 48, 237, 127, - 128, 158, 19, 247, 20 + 35, 36, 75, 76, 107, 202, 77, 78, 144, 245, + 146, 147, 17, 125, 49, 131, 88, 193, 194, 195, + 233, 256, 196, 197, 246, 237, 235, 247, 238, 236, + 248, 37, 64, 39, 40, 41, 65, 43, 44, 45, + 60, 140, 62, 58, 59, 66, 47, 48, 239, 127, + 128, 160, 19, 249, 129, 130, 20 }; static const short yypact[] = { 6, --32768, 23, 50,-32768, -27,-32768,-32768,-32768,-32768,-32768, +-32768, 23, 50,-32768, -17,-32768,-32768,-32768,-32768,-32768, 18,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -18, 19,-32768, 44, 42, 65,-32768,-32768, 52,-32768, --32768,-32768, 30,-32768,-32768,-32768,-32768, 77,-32768, 27, --32768, 4,-32768,-32768,-32768, 77, 37,-32768, 42,-32768, --32768, 85, 94, 64,-32768, 44,-32768, 78,-32768, 18, --32768,-32768, 82, 77, 84, 77, 78,-32768, 65, 84, + -31, 19,-32768, 43, 42, 44,-32768,-32768, 52,-32768, +-32768,-32768, -33,-32768,-32768,-32768,-32768, 65,-32768, 22, +-32768, 4,-32768,-32768,-32768, 65, 24,-32768, 42,-32768, +-32768, 97, 104, 64,-32768, 43,-32768, 78,-32768, 18, +-32768,-32768, 77, 65, 88, 65, 78,-32768, 44, 88, -32768,-32768, 18, 5,-32768,-32768,-32768,-32768, 16,-32768, -32768, 4,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 8,-32768, 89, 90,-32768, 91, 92,-32768, 140,-32768, --32768,-32768,-32768, 18,-32768, 84, 32, 93,-32768, 5, + 8,-32768, 85, 86,-32768, 100, 117,-32768, 166,-32768, +-32768,-32768,-32768, 18,-32768, 88, 27, 119,-32768, 5, 5, 5, 5,-32768,-32768, 5, 5, 5, 5, 63, - 5, 18, 18,-32768,-32768, 88, 319,-32768, 79,-32768, --32768,-32768,-32768, 142,-32768, 100,-32768, 102, 109, 18, - 60,-32768,-32768,-32768,-32768,-32768,-32768, 144, 144, 144, - 144,-32768,-32768,-32768,-32768, 272,-32768, 106, 99,-32768, + 5, 18, 18,-32768,-32768, 114, 274,-32768,-32768,-32768, + 79,-32768,-32768,-32768,-32768, 170,-32768, 137,-32768, 136, + 138, 18, 60,-32768,-32768,-32768,-32768,-32768,-32768, 443, + 443, 443, 443,-32768,-32768,-32768,-32768, 141,-32768, 127, + 128,-32768, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5,-32768, 18, 5, - 39,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 18, 118, --32768,-32768,-32768, 415, 385, 352, 423, 136, 136, 285, - 285, 155, 155, 136, 136, 136, 136, 285, 285, 144, - 136, 136, 448, 454, -25, -25,-32768,-32768,-32768,-32768, - 35,-32768, 26,-32768, -32,-32768,-32768,-32768,-32768, 18, --32768, 83,-32768, 119,-32768,-32768,-32768, 18,-32768, 5, --32768,-32768, 35, 121,-32768,-32768,-32768,-32768, 169, 188, --32768 + 5, 5, 5, 5, 5, 5, 5, 5, 5,-32768, + 18, 5, 39,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 18, 140,-32768,-32768,-32768, 370, 340, 307, 428, 400, + 400, 413, 413, 98, 98, 400, 400, 400, 400, 413, + 413, 443, 400, 400, 180, 453, 105, 105,-32768,-32768, +-32768,-32768, 32,-32768, 35,-32768, -32,-32768,-32768,-32768, +-32768, 18,-32768, 70,-32768, 144,-32768,-32768,-32768, 18, +-32768, 5,-32768,-32768, 32, 146,-32768,-32768,-32768,-32768, + 197, 202,-32768 }; static const short yypgoto[] = {-32768, --32768,-32768, 195,-32768,-32768,-32768, 111,-32768,-32768,-32768, --32768, 149,-32768,-32768,-32768, 1, -55, -7, -104,-32768, - 0,-32768,-32768, -2,-32768,-32768, -38,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 97, --32768,-32768,-32768, 2,-32768,-32768,-32768,-32768, 24,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, -44, -40, -31, --32768, 75, 105, -24,-32768, -12, 3,-32768,-32768,-32768, --32768,-32768, 162,-32768, 161, 217,-32768,-32768, 147, 95, --32768, 103,-32768, 115, 66 +-32768,-32768, 199,-32768,-32768,-32768, 118,-32768,-32768,-32768, +-32768, 156,-32768,-32768,-32768, 1, -55, -7, -104,-32768, + 0,-32768,-32768, -10,-32768,-32768, -38,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 108, +-32768,-32768,-32768, 2,-32768,-32768,-32768,-32768, 31,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, -30, -25, -22, +-32768, 72, 123, -24,-32768, -12, 3,-32768,-32768,-32768, +-32768,-32768, 173,-32768, 172, 228,-32768,-32768, 158, 95, +-32768, 111,-32768, 129,-32768,-32768, 28 }; -#define YYLAST 497 +#define YYLAST 496 static const short yytable[] = { 15, - 10, 18, 141, 51, 104, 42, -102, 84, 109, 1, - 15, 89, 18, 80, 184, 185, 186, 187, 250, 2, - 55, 1, 63, 55, 251, 81, 21, 84, 70, 52, - 53, 110, 111, 112, 113, 139, 114, 115, 242, 80, - 82, 238, 116, 117, 80, 22, 87, 61, 42, 118, - 119, 81, 2, 22, 71, -169, 120, 3, -101, 15, - 121, 18, 4, 4, 122, 123, 22, 56, 67, 3, - 56, 106, 15, 108, 18, 4, 248, 57, 72, 249, - 79, 83, 73, 3, 199, 74, 3, 188, 89, 4, - 23, 189, 4, 24, 190, 86, 51, 95, 23, 140, - 68, 24, 25, 15, 26, 18, 15, 38, 18, -67, - -67, 23, 53, 23, 24, 25, 24, 94, 98, 101, - 85, 15, 15, 18, 18, 23, 141, 188, 24, 56, - 69, 189, -94, -94, 190, 105, 132, -14, -101, 15, - 133, 18, 134, 135, 160, 196, 147, 197, 141, 164, - 38, 198, 167, 168, 169, 170, 131, 164, -63, 203, - 175, 176, 169, 170, 137, 202, 177, 241, 260, 253, - 258, 180, 181, 182, 183, 184, 185, 186, 187, 180, - 181, 182, 183, 184, 185, 186, 187, 261, 15, 232, - 18, 51, 182, 183, 184, 185, 186, 187, 15, 50, - 18, 130, 100, 143, 148, 149, 150, 151, 257, 256, - 152, 153, 154, 155, 239, 156, 255, 102, 103, 46, - 126, 146, 0, 140, 0, 159, 0, 0, 0, 0, - 15, 0, 18, 0, 0, 0, 0, 0, 0, 15, - 252, 18, 0, 0, 0, 140, 0, 15, 232, 18, - 0, 0, 15, 0, 18, 204, 205, 206, 207, 208, + 10, 18, 143, 51, 104, 42, -102, 84, 109, 1, + 15, 89, 18, 80, 63, 72, 52, 53, 252, 73, + 55, 1, 74, 55, 253, 81, 21, 84, 70, 2, + 141, 110, 111, 112, 113, 244, 114, 115, 87, 80, + 82, 240, 116, 117, 80, 22, 61, 67, 42, 118, + 119, 81, 2, 22, 71, -171, 120, 3, -101, 15, + 121, 18, 4, 4, 122, 123, 22, 56, 79, 3, + 56, 106, 15, 108, 18, 4, 83, 57, 3, 94, + 98, 101, 86, 3, 4, 250, 201, 190, 251, 4, + 23, 191, 23, 24, 192, 24, 51, 68, 23, 142, + 89, 24, 25, 15, 26, 18, 15, 95, 18, -67, + -67, 23, 53, 23, 24, 25, 24, 85, 133, -94, + -94, 15, 15, 18, 18, 38, 139, 190, 143, 56, + 105, 191, 134, -14, 192, 184, 185, 186, 187, 188, + 189, 15, -101, 18, 186, 187, 188, 189, 69, 135, + 143, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 136, 38, 137, + 162, 179, 149, 198, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 199, 200, 204, -63, 205, 243, + 15, 234, 18, 51, 255, 260, 262, 203, 171, 172, + 15, 263, 18, 50, 150, 151, 152, 153, 132, 100, + 154, 155, 156, 157, 145, 158, 183, 184, 185, 186, + 187, 188, 189, 241, 259, 142, 258, 257, 102, 103, + 46, 126, 15, 161, 18, 148, 0, 0, 0, 0, + 0, 15, 254, 18, 0, 0, 0, 142, 0, 15, + 234, 18, 0, 0, 15, 0, 18, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 164, 0, - 0, 0, 177, 169, 170, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 177, 0, 0, 0, 0, - 180, 181, 182, 183, 184, 185, 186, 187, 201, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 0, 0, 0, 0, 177, - 0, 0, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 161, 162, 0, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 0, 0, - 0, 0, 177, 0, 0, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 161, 0, 0, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 0, 0, 0, 0, 177, 0, 0, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 164, 165, + 229, 230, 231, 232, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 0, 0, 0, 0, 179, 0, 0, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 163, 164, 0, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 169, 170, 0, 0, 177, 0, 0, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 180, 181, - 182, 183, 184, 185, 186, 187, 169, 170, 0, 0, - 0, 0, 169, 170, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 181, 182, 183, 184, 185, 186, - 187, 182, 183, 184, 185, 186, 187 + 176, 177, 178, 0, 0, 0, 0, 179, 0, 0, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 163, 0, 0, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 0, 0, 0, 0, + 179, 0, 0, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 0, 0, 0, 0, + 179, 0, 0, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 166, 0, 0, 169, 170, 171, 172, + 0, 0, 0, 0, 177, 178, 166, 0, 0, 0, + 179, 171, 172, 0, 0, 182, 183, 184, 185, 186, + 187, 188, 189, 179, 0, 0, 171, 172, 182, 183, + 184, 185, 186, 187, 188, 189, 166, 0, 0, 0, + 0, 171, 172, 182, 183, 184, 185, 186, 187, 188, + 189, 171, 172, 0, 0, 0, 0, 0, 182, 183, + 184, 185, 186, 187, 188, 189, 0, 0, 0, 0, + 184, 185, 186, 187, 188, 189 }; static const short yycheck[] = { 0, 0, 0, 107, 11, 60, 3, 3, 46, 4, 4, - 11, 4, 11, 38, 40, 41, 42, 43, 51, 47, - 5, 4, 25, 5, 57, 38, 4, 66, 26, 48, - 49, 27, 28, 29, 30, 4, 32, 33, 4, 64, - 38, 3, 38, 39, 69, 4, 49, 4, 46, 45, + 11, 4, 11, 38, 25, 49, 48, 49, 51, 53, + 5, 4, 56, 5, 57, 38, 4, 66, 26, 47, + 4, 27, 28, 29, 30, 4, 32, 33, 49, 64, + 38, 3, 38, 39, 69, 4, 4, 4, 46, 45, 46, 64, 47, 4, 3, 48, 52, 52, 55, 60, 56, 60, 58, 58, 60, 61, 4, 52, 4, 52, - 52, 69, 73, 73, 73, 58, 51, 59, 49, 54, - 4, 55, 53, 52, 140, 56, 52, 49, 4, 58, - 49, 53, 58, 52, 56, 59, 104, 4, 49, 107, - 26, 52, 53, 104, 55, 104, 107, 3, 107, 50, - 51, 49, 49, 49, 52, 53, 52, 52, 53, 54, - 46, 122, 123, 122, 123, 49, 231, 49, 52, 52, - 26, 53, 50, 51, 56, 54, 48, 48, 55, 140, - 50, 140, 51, 4, 57, 4, 54, 48, 253, 14, - 46, 50, 17, 18, 19, 20, 91, 14, 50, 61, - 25, 26, 19, 20, 99, 60, 31, 50, 0, 51, - 50, 36, 37, 38, 39, 40, 41, 42, 43, 36, - 37, 38, 39, 40, 41, 42, 43, 0, 189, 189, - 189, 199, 38, 39, 40, 41, 42, 43, 199, 5, - 199, 91, 54, 107, 110, 111, 112, 113, 253, 250, - 116, 117, 118, 119, 191, 121, 248, 56, 58, 3, - 74, 107, -1, 231, -1, 123, -1, -1, -1, -1, - 231, -1, 231, -1, -1, -1, -1, -1, -1, 240, - 240, 240, -1, -1, -1, 253, -1, 248, 248, 248, - -1, -1, 253, -1, 253, 161, 162, 163, 164, 165, + 52, 69, 73, 73, 73, 58, 55, 59, 52, 52, + 53, 54, 59, 52, 58, 51, 142, 49, 54, 58, + 49, 53, 49, 52, 56, 52, 104, 26, 49, 107, + 4, 52, 53, 104, 55, 104, 107, 4, 107, 50, + 51, 49, 49, 49, 52, 53, 52, 46, 91, 50, + 51, 122, 123, 122, 123, 3, 99, 49, 233, 52, + 54, 53, 48, 48, 56, 38, 39, 40, 41, 42, + 43, 142, 55, 142, 40, 41, 42, 43, 26, 50, + 255, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 51, 46, 4, + 57, 31, 54, 4, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 48, 50, 60, 50, 61, 50, + 191, 191, 191, 201, 51, 50, 0, 57, 19, 20, + 201, 0, 201, 5, 110, 111, 112, 113, 91, 54, + 116, 117, 118, 119, 107, 121, 37, 38, 39, 40, + 41, 42, 43, 193, 255, 233, 252, 250, 56, 58, + 3, 74, 233, 123, 233, 107, -1, -1, -1, -1, + -1, 242, 242, 242, -1, -1, -1, 255, -1, 250, + 250, 250, -1, -1, 255, -1, 255, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 14, -1, - -1, -1, 31, 19, 20, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 31, -1, -1, -1, -1, - 36, 37, 38, 39, 40, 41, 42, 43, 57, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, -1, -1, -1, -1, 31, - -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 11, 12, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, - -1, -1, 31, -1, -1, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 11, -1, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, -1, -1, -1, -1, 31, -1, -1, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 19, 20, -1, -1, 31, -1, -1, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 36, 37, - 38, 39, 40, 41, 42, 43, 19, 20, -1, -1, - -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 37, 38, 39, 40, 41, 42, - 43, 38, 39, 40, 41, 42, 43 + 186, 187, 188, 189, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + -1, -1, -1, -1, 31, -1, -1, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 11, 12, -1, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, -1, -1, -1, -1, 31, -1, -1, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, -1, -1, -1, -1, + 31, -1, -1, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, -1, -1, -1, -1, + 31, -1, -1, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 14, -1, -1, 17, 18, 19, 20, + -1, -1, -1, -1, 25, 26, 14, -1, -1, -1, + 31, 19, 20, -1, -1, 36, 37, 38, 39, 40, + 41, 42, 43, 31, -1, -1, 19, 20, 36, 37, + 38, 39, 40, 41, 42, 43, 14, -1, -1, -1, + -1, 19, 20, 36, 37, 38, 39, 40, 41, 42, + 43, 19, 20, -1, -1, -1, -1, -1, 36, 37, + 38, 39, 40, 41, 42, 43, -1, -1, -1, -1, + 38, 39, 40, 41, 42, 43 }; #define YYPURE 1 @@ -1564,14 +1568,6 @@ case 120: O(*yyval, OP_PREPARE_TO_CONSTRUCT_OBJECT); ; break;} -case 123: -#line 569 "compile.y" -{ yyval = vltrue ; - break;} -case 124: -#line 570 "compile.y" -{ yyval = vlfalse ; - break;} case 127: #line 573 "compile.y" { yyval = yyvsp[-1] ; @@ -1749,10 +1745,18 @@ case 167: break;} case 168: #line 634 "compile.y" -{ yyval=vlvoid ; +{ yyval=VL(/*we know that we will not change it*/const_cast(&vvoid), 0, 0, 0) ; break;} case 169: #line 635 "compile.y" +{ yyval = VL(/*we know that we will not change it*/const_cast(&vtrue), 0, 0, 0) ; + break;} +case 170: +#line 636 "compile.y" +{ yyval = VL(/*we know that we will not change it*/const_cast(&vfalse), 0, 0, 0) ; + break;} +case 171: +#line 638 "compile.y" { yyval=N() ; break;} } @@ -1977,7 +1981,7 @@ yyerrhandle: } return 1; } -#line 637 "compile.y" +#line 640 "compile.y" #endif @@ -2099,9 +2103,9 @@ default: } // #HH ? if(pc.source[0]=='#' && pc.source[1] && pc.source[2]) { - char c= + char c=(char)( hex_value[(unsigned char)pc.source[1]]*0x10+ - hex_value[(unsigned char)pc.source[2]]; + hex_value[(unsigned char)pc.source[2]]); if(c==0) { result=BAD_HEX_LITERAL; goto break2; // wrong hex value[no ^#00 chars allowed]: bail out