Diff for /parser3/src/main/compile.tab.C between versions 1.100 and 1.109.2.1

version 1.100, 2004/04/06 14:15:22 version 1.109.2.1, 2005/12/08 10:02:44
Line 33 Line 33
 #define FEXISTS 283  #define FEXISTS 283
 #define DEXISTS 284  #define DEXISTS 284
 #define IS      285  #define IS      285
 #define NUNARY  286  #define LITERAL_TRUE    286
   #define LITERAL_FALSE   287
   #define NUNARY  288
   
 #line 1 "compile.y"  #line 1 "compile.y"
   
 /** @file  /** @file
         Parser: compiler(lexical parser and grammar).          Parser: compiler(lexical parser and grammar).
   
         Copyright (c) 2001, 2003 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com)
         Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)          Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
   
         $Id$          $Id$
Line 86  static int real_yyerror(Parse_control* p Line 88  static int real_yyerror(Parse_control* p
 static void yyprint(FILE* file, int type, YYSTYPE value);  static void yyprint(FILE* file, int type, YYSTYPE value);
 static int yylex(YYSTYPE* lvalp, void* pc);  static int yylex(YYSTYPE* lvalp, void* pc);
   
   static const VBool vfalse(false);
   static const VBool vtrue(true);
   static const VVoid vvoid;
   
 // local convinient inplace typecast & var  // local convinient inplace typecast & var
 #undef PC  #undef PC
 #define PC  (*(Parse_control *)pc)  #define PC  (*(Parse_control *)pc)
Line 105  static int yylex(YYSTYPE* lvalp, void* p Line 111  static int yylex(YYSTYPE* lvalp, void* p
   
   
   
 #define YYFINAL         259  #define YYFINAL         263
 #define YYFLAG          -32768  #define YYFLAG          -32768
 #define YYNTBASE        60  #define YYNTBASE        62
   
 #define YYTRANSLATE(x) ((unsigned)(x) <= 286 ? yytranslate[x] : 146)  #define YYTRANSLATE(x) ((unsigned)(x) <= 288 ? yytranslate[x] : 150)
   
 static const char yytranslate[] = {     0,  static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,    46,       2,     2,     2,     2,     2,     2,     2,     2,     2,    48,
      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,     2,     2,     2,     2,     2,
      2,     2,    44,    58,     2,    50,    41,    35,    59,    54,       2,     2,    46,    60,     2,    52,    43,    37,    61,    56,
     55,    38,    36,     2,    37,    53,    39,     2,     2,     2,      57,    40,    38,     2,    39,    55,    41,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,    57,    49,    32,       2,     2,     2,     2,     2,     2,     2,    59,    51,    34,
      2,    33,     2,    45,     2,     2,     2,     2,     2,     2,       2,    35,     2,    47,     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,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     47,    40,    48,    56,     2,     2,     2,     2,     2,     2,      49,    42,    50,    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,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,    51,    34,    52,    43,     2,     2,     2,     2,       2,     2,    53,    36,    54,    45,     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,     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,
Line 140  static const char yytranslate[] = { Line 146  static const char yytranslate[] = {
      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,       2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     27,    28,    29,    30,    31,    42      27,    28,    29,    30,    31,    32,    33,    44
 };  };
   
 #if YYDEBUG != 0  #if YYDEBUG != 0
Line 154  static const short yyprhs[] = {     0, Line 160  static const short yyprhs[] = {     0,
    151,   155,   157,   159,   161,   163,   165,   167,   170,   172,     151,   155,   157,   159,   161,   163,   165,   167,   170,   172,
    173,   174,   181,   183,   185,   188,   190,   192,   194,   195,     173,   174,   181,   183,   185,   188,   190,   192,   194,   195,
    196,   202,   206,   210,   212,   216,   218,   222,   224,   228,     196,   202,   206,   210,   212,   216,   218,   222,   224,   228,
    230,   232,   234,   236,   238,   240,   242,   244,   247,   249,     230,   232,   234,   236,   238,   240,   242,   245,   247,   250,
    252,   255,   257,   259,   262,   264,   266,   268,   270,   273,     253,   255,   257,   260,   262,   264,   266,   268,   271,   274,
    276,   277,   278,   284,   286,   288,   291,   294,   296,   298,     275,   276,   282,   284,   286,   289,   292,   294,   296,   299,
    301,   304,   306,   308,   310,   312,   316,   320,   324,   327,     302,   304,   306,   308,   310,   312,   314,   318,   322,   326,
    330,   333,   336,   339,   342,   345,   348,   352,   356,   360,     329,   332,   335,   338,   341,   344,   347,   350,   354,   358,
    364,   368,   372,   376,   380,   384,   388,   392,   396,   400,     362,   366,   370,   374,   378,   382,   386,   390,   394,   398,
    404,   408,   412,   416,   420,   424,   428,   432,   436,   440,     402,   406,   410,   414,   418,   422,   426,   430,   434,   438,
    444,   448,   452,   456,   458,   460,   461     442,   446,   450,   454,   458,   460,   462,   464,   465,   467,
      469
 };  };
   
 static const short yyrhs[] = {    62,  static const short yyrhs[] = {    64,
      0,    61,     0,    63,     0,    61,    63,     0,    76,     0,       0,    63,     0,    65,     0,    63,    65,     0,    78,     0,
     64,     0,    69,     0,    45,     4,    46,    65,     0,   145,      66,     0,    71,     0,    47,     4,    48,    67,     0,   149,
      0,    66,     0,    67,     0,    66,    67,     0,    68,    46,       0,    68,     0,    69,     0,    68,    69,     0,    70,    48,
      0,   145,     0,     4,     0,     0,    45,     4,    72,    71,       0,   149,     0,     4,     0,     0,    47,     4,    74,    73,
     75,    46,    70,    76,     0,   145,     0,    72,     0,    47,      77,    48,    72,    78,     0,   149,     0,    74,     0,    49,
     73,    48,     0,   145,     0,    74,     0,     4,     0,    74,      75,    50,     0,   149,     0,    76,     0,     4,     0,    76,
     49,     4,     0,   145,     0,     4,     0,   145,     0,    77,      51,     4,     0,   149,     0,     4,     0,   149,     0,    79,
      0,    78,     0,    77,    78,     0,   143,     0,    79,     0,       0,    80,     0,    79,    80,     0,   145,     0,    81,     0,
     80,     0,    88,     0,   103,     0,    81,     0,    50,    82,      82,     0,    90,     0,   105,     0,    83,     0,    52,    84,
      0,    84,     3,     0,    83,     0,    51,    84,    52,     0,       0,    86,     3,     0,    85,     0,    53,    86,    54,     0,
     85,     0,    86,     0,    87,     0,   137,    87,     0,   127,      87,     0,    88,     0,    89,     0,   138,    89,     0,   128,
      0,   124,   127,     0,    50,    89,    93,     0,    90,     0,       0,   125,   128,     0,    52,    91,    95,     0,    92,     0,
     91,     0,    92,     0,   123,     0,    53,   123,     0,   137,      93,     0,    94,     0,   124,     0,    55,   124,     0,   138,
    123,     0,    94,     0,    97,     0,    98,     0,     0,     0,     124,     0,    96,     0,    99,     0,   100,     0,     0,     0,
     47,    95,    99,    96,    48,     0,    54,   140,    55,     0,      49,    97,   101,    98,    50,     0,    56,   141,    57,     0,
     51,    76,    52,     0,   144,     0,     4,     0,   100,     0,      53,    78,    54,     0,   146,     0,     4,     0,   102,     0,
    101,     0,   102,     0,    79,     0,    78,    77,     0,   104,     103,     0,   104,     0,    81,     0,    80,    79,     0,   106,
      0,     0,     0,    56,   105,   107,   106,   108,     3,     0,       0,     0,     0,    58,   107,   109,   108,   110,     3,     0,
     84,     0,   109,     0,   108,   109,     0,   110,     0,   113,      86,     0,   111,     0,   110,   111,     0,   112,     0,   115,
      0,   114,     0,     0,     0,    47,   111,   115,   112,    48,       0,   116,     0,     0,     0,    49,   113,   117,   114,    50,
      0,    54,   116,    55,     0,    51,   117,    52,     0,   118,       0,    56,   118,    57,     0,    53,   119,    54,     0,   120,
      0,   115,    49,   118,     0,   119,     0,   116,    49,   119,       0,   117,    51,   120,     0,   121,     0,   118,    51,   121,
      0,   120,     0,   117,    49,   120,     0,   121,     0,   122,       0,   122,     0,   119,    51,   122,     0,   123,     0,   141,
      0,    76,     0,   144,     0,     4,     0,   100,     0,   140,       0,    78,     0,   146,     0,     4,     0,   102,     0,   129,
      0,   128,     0,   124,   128,     0,   125,     0,   124,   125,       0,   125,   129,     0,   126,     0,   125,   126,     0,   127,
      0,   126,    53,     0,   128,     0,   128,     0,     4,     5,      55,     0,   129,     0,   129,     0,     4,     5,     0,     4,
      0,     4,     0,   129,     0,   130,     0,   131,     0,    50,       0,   130,     0,   131,     0,   132,     0,    52,   135,     0,
    134,     0,     4,   135,     0,     0,     0,    47,   132,    77,       4,   136,     0,     0,     0,    49,   133,    79,   134,    50,
    133,    48,     0,     4,     0,   136,     0,   135,   136,     0,       0,     4,     0,   137,     0,   136,   137,     0,    52,   135,
     50,   134,     0,   138,     0,   139,     0,     4,    57,     0,       0,   139,     0,   140,     0,     4,    59,     0,   139,    59,
    138,    57,     0,   141,     0,     4,     0,    81,     0,   104,       0,   142,     0,   143,     0,   147,     0,   148,     0,    83,
      0,    58,   142,    58,     0,    59,   142,    59,     0,    54,       0,   106,     0,    60,   144,    60,     0,    61,   144,    61,
    141,    55,     0,    37,   141,     0,    36,   141,     0,    43,       0,    56,   142,    57,     0,    39,   142,     0,    38,   142,
    141,     0,    44,   141,     0,    27,   141,     0,    28,   141,       0,    45,   142,     0,    46,   142,     0,    27,   142,     0,
      0,    29,   141,     0,    30,   141,     0,   141,    37,   141,      28,   142,     0,    29,   142,     0,    30,   142,     0,   142,
      0,   141,    36,   141,     0,   141,    38,   141,     0,   141,      39,   142,     0,   142,    38,   142,     0,   142,    40,   142,
     39,   141,     0,   141,    41,   141,     0,   141,    40,   141,       0,   142,    41,   142,     0,   142,    43,   142,     0,   142,
      0,   141,    19,   141,     0,   141,    20,   141,     0,   141,      42,   142,     0,   142,    19,   142,     0,   142,    20,   142,
     35,   141,     0,   141,    34,   141,     0,   141,    14,   141,       0,   142,    37,   142,     0,   142,    36,   142,     0,   142,
      0,   141,    11,   141,     0,   141,    12,   141,     0,   141,      14,   142,     0,   142,    11,   142,     0,   142,    12,   142,
     13,   141,     0,   141,    32,   141,     0,   141,    33,   141,       0,   142,    13,   142,     0,   142,    34,   142,     0,   142,
      0,   141,    15,   141,     0,   141,    16,   141,     0,   141,      35,   142,     0,   142,    15,   142,     0,   142,    16,   142,
     17,   141,     0,   141,    18,   141,     0,   141,    21,   141,       0,   142,    17,   142,     0,   142,    18,   142,     0,   142,
      0,   141,    22,   141,     0,   141,    23,   141,     0,   141,      21,   142,     0,   142,    22,   142,     0,   142,    23,   142,
     24,   141,     0,   141,    25,   141,     0,   141,    26,   141,       0,   142,    24,   142,     0,   142,    25,   142,     0,   142,
      0,   141,    31,   141,     0,    76,     0,     4,     0,     0,      26,   142,     0,   142,    31,   142,     0,     4,     0,    78,
      0       0,     4,     0,     0,    32,     0,    33,     0,     0
 };  };
   
 #endif  #endif
   
 #if YYDEBUG != 0  #if YYDEBUG != 0
 static const short yyrline[] = { 0,  static const short yyrline[] = { 0,
    120,   128,   130,   130,   131,   133,   133,   135,   207,   207,     127,   135,   137,   137,   138,   140,   140,   142,   214,   214,
    208,   208,   209,   210,   210,   212,   247,   252,   252,   253,     215,   215,   216,   217,   217,   219,   254,   259,   259,   260,
    254,   254,   255,   255,   257,   257,   261,   261,   263,   263,     261,   261,   262,   262,   264,   264,   268,   268,   270,   270,
    264,   264,   265,   265,   265,   269,   276,   277,   277,   278,     271,   271,   272,   272,   272,   276,   283,   284,   284,   285,
    279,   281,   282,   304,   305,   305,   309,   313,   315,   316,     286,   288,   289,   311,   312,   312,   316,   320,   322,   323,
    317,   334,   339,   341,   343,   344,   346,   349,   351,   357,     324,   341,   346,   348,   350,   351,   353,   356,   358,   364,
    365,   371,   373,   374,   376,   382,   383,   383,   387,   393,     372,   378,   380,   381,   383,   389,   390,   390,   394,   400,
    396,   399,   412,   414,   414,   415,   417,   418,   420,   423,     403,   406,   419,   421,   421,   422,   424,   425,   427,   430,
    425,   426,   427,   428,   430,   432,   434,   436,   438,   440,     432,   433,   434,   435,   437,   439,   441,   443,   445,   447,
    444,   448,   452,   454,   455,   457,   466,   466,   468,   468,     451,   466,   470,   472,   473,   478,   478,   480,   480,   481,
    469,   470,   478,   483,   485,   487,   488,   489,   491,   495,     482,   490,   495,   497,   499,   500,   501,   503,   507,   516,
    504,   507,   509,   515,   520,   520,   521,   526,   528,   530,     519,   521,   527,   532,   532,   533,   538,   540,   542,   554,
    542,   554,   559,   561,   562,   563,   564,   565,   567,   568,     566,   567,   569,   570,   571,   572,   573,   574,   575,   577,
    569,   570,   571,   572,   573,   574,   576,   577,   578,   579,     578,   579,   580,   581,   582,   583,   584,   586,   587,   588,
    580,   581,   582,   583,   584,   585,   586,   587,   588,   589,     589,   590,   591,   592,   593,   594,   595,   596,   597,   598,
    590,   591,   592,   593,   594,   595,   596,   597,   598,   599,     599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
    600,   601,   602,   605,   614,   619,   620     609,   610,   611,   612,   615,   620,   629,   634,   635,   636,
      638
 };  };
 #endif  #endif
   
Line 246  static const char * const yytname[] = { Line 254  static const char * const yytname[] = {
 "BAD_METHOD_PARAMETER_NAME_CHARACTER","BAD_NONWHITESPACE_CHARACTER_IN_EXPLICIT_RESULT_MODE",  "BAD_METHOD_PARAMETER_NAME_CHARACTER","BAD_NONWHITESPACE_CHARACTER_IN_EXPLICIT_RESULT_MODE",
 "\"&&\"","\"||\"","\"!||\"","\"!|\"","\"<=\"","\">=\"","\"==\"","\"!=\"","\"<<\"",  "\"&&\"","\"||\"","\"!||\"","\"!|\"","\"<=\"","\">=\"","\"==\"","\"!=\"","\"<<\"",
 "\">>\"","\"lt\"","\"gt\"","\"le\"","\"ge\"","\"eq\"","\"ne\"","\"def\"","\"in\"",  "\">>\"","\"lt\"","\"gt\"","\"le\"","\"ge\"","\"eq\"","\"ne\"","\"def\"","\"in\"",
 "\"-f\"","\"-d\"","\"is\"","'<'","'>'","'|'","'&'","'+'","'-'","'*'","'/'","'\\\\'",  "\"-f\"","\"-d\"","\"is\"","\"true\"","\"false\"","'<'","'>'","'|'","'&'","'+'",
 "'%'","NUNARY","'~'","'!'","'@'","'\\n'","'['","']'","';'","'$'","'{'","'}'",  "'-'","'*'","'/'","'\\\\'","'%'","NUNARY","'~'","'!'","'@'","'\\n'","'['","']'",
 "'.'","'('","')'","'^'","':'","'\\\"'","'\\''","all","methods","one_big_piece",  "';'","'$'","'{'","'}'","'.'","'('","')'","'^'","':'","'\\\"'","'\\''","all",
 "method","control_method","maybe_control_strings","control_strings","control_string",  "methods","one_big_piece","method","control_method","maybe_control_strings",
 "maybe_string","code_method","@1","maybe_bracketed_strings","bracketed_maybe_strings",  "control_strings","control_string","maybe_string","code_method","@1","maybe_bracketed_strings",
 "maybe_strings","strings","maybe_comment","maybe_codes","codes","code","action",  "bracketed_maybe_strings","maybe_strings","strings","maybe_comment","maybe_codes",
 "get","get_value","get_name_value","name_in_curly_rdive","name_without_curly_rdive",  "codes","code","action","get","get_value","get_name_value","name_in_curly_rdive",
 "name_without_curly_rdive_read","name_without_curly_rdive_class","name_without_curly_rdive_code",  "name_without_curly_rdive","name_without_curly_rdive_read","name_without_curly_rdive_class",
 "put","name_expr_wdive","name_expr_wdive_root","name_expr_wdive_write","name_expr_wdive_class",  "name_without_curly_rdive_code","put","name_expr_wdive","name_expr_wdive_root",
 "construct","construct_square","@2","@3","construct_round","construct_curly",  "name_expr_wdive_write","name_expr_wdive_class","construct","construct_square",
 "any_constructor_code_value","constructor_code_value","constructor_code","codes__excluding_sole_str_literal",  "@2","@3","construct_round","construct_curly","any_constructor_code_value","constructor_code_value",
 "call","call_value","@4","@5","call_name","store_params","store_param","store_square_param",  "constructor_code","codes__excluding_sole_str_literal","call","call_value","@4",
 "@6","@7","store_round_param","store_curly_param","store_code_param_parts","store_expr_param_parts",  "@5","call_name","store_params","store_param","store_square_param","@6","@7",
   "store_round_param","store_curly_param","store_code_param_parts","store_expr_param_parts",
 "store_curly_param_parts","store_code_param_part","store_expr_param_part","store_curly_param_part",  "store_curly_param_parts","store_code_param_part","store_expr_param_part","store_curly_param_part",
 "code_param_value","write_expr_value","name_expr_dive_code","name_path","name_step",  "code_param_value","name_expr_dive_code","name_path","name_step","name_advance1",
 "name_advance1","name_advance2","name_expr_value","name_expr_subvar_value","name_expr_with_subvar_value",  "name_advance2","name_expr_value","name_expr_subvar_value","name_expr_with_subvar_value",
 "name_square_code_value","@8","@9","subvar_ref_name_rdive","subvar_get_writes",  "name_square_code_value","@8","@9","subvar_ref_name_rdive","subvar_get_writes",
 "subvar__get_write","class_prefix","class_static_prefix","class_constructor_prefix",  "subvar__get_write","class_prefix","class_static_prefix","class_constructor_prefix",
 "expr_value","expr","string_inside_quotes_value","write_string","void_value",  "expr_value","expr","double_or_STRING","string_inside_quotes_value","write_string",
 "empty", NULL  "void_value","true_value","false_value","empty", NULL
 };  };
 #endif  #endif
   
 static const short yyr1[] = {     0,  static const short yyr1[] = {     0,
     60,    60,    61,    61,    62,    63,    63,    64,    65,    65,      62,    62,    63,    63,    64,    65,    65,    66,    67,    67,
     66,    66,    67,    68,    68,    70,    69,    71,    71,    72,      68,    68,    69,    70,    70,    72,    71,    73,    73,    74,
     73,    73,    74,    74,    75,    75,    76,    76,    77,    77,      75,    75,    76,    76,    77,    77,    78,    78,    79,    79,
     78,    78,    79,    79,    79,    80,    81,    82,    82,    83,      80,    80,    81,    81,    81,    82,    83,    84,    84,    85,
     84,    84,    85,    86,    87,    87,    88,    89,    89,    89,      86,    86,    87,    88,    89,    89,    90,    91,    91,    91,
     90,    91,    92,    93,    93,    93,    95,    96,    94,    97,      92,    93,    94,    95,    95,    95,    97,    98,    96,    99,
     98,    99,    99,    99,   100,   101,   102,   102,   103,   105,     100,   101,   101,   101,   102,   103,   104,   104,   105,   107,
    106,   104,   107,   108,   108,   109,   109,   109,   111,   112,     108,   106,   109,   110,   110,   111,   111,   111,   113,   114,
    110,   113,   114,   115,   115,   116,   116,   117,   117,   118,     112,   115,   116,   117,   117,   118,   118,   119,   119,   120,
    119,   120,   121,   121,   121,   122,   123,   123,   124,   124,     121,   122,   123,   123,   123,   124,   124,   125,   125,   126,
    125,   126,   127,   127,   128,   128,   128,   128,   129,   130,     127,   128,   128,   129,   129,   129,   129,   130,   131,   133,
    132,   133,   131,   134,   135,   135,   136,   137,   137,   138,     134,   132,   135,   136,   136,   137,   138,   138,   139,   140,
    139,   140,   141,   141,   141,   141,   141,   141,   141,   141,     141,   142,   142,   142,   142,   142,   142,   142,   142,   142,
    141,   141,   141,   141,   141,   141,   141,   141,   141,   141,     142,   142,   142,   142,   142,   142,   142,   142,   142,   142,
    141,   141,   141,   141,   141,   141,   141,   141,   141,   141,     142,   142,   142,   142,   142,   142,   142,   142,   142,   142,
    141,   141,   141,   141,   141,   141,   141,   141,   141,   141,     142,   142,   142,   142,   142,   142,   142,   142,   142,   142,
    141,   141,   141,   142,   143,   144,   145     142,   142,   142,   142,   143,   144,   145,   146,   147,   148,
      149
 };  };
   
 static const short yyr2[] = {     0,  static const short yyr2[] = {     0,
Line 299  static const short yyr2[] = {     0, Line 309  static const short yyr2[] = {     0,
      3,     1,     1,     1,     1,     1,     1,     2,     1,     0,       3,     1,     1,     1,     1,     1,     1,     2,     1,     0,
      0,     6,     1,     1,     2,     1,     1,     1,     0,     0,       0,     6,     1,     1,     2,     1,     1,     1,     0,     0,
      5,     3,     3,     1,     3,     1,     3,     1,     3,     1,       5,     3,     3,     1,     3,     1,     3,     1,     3,     1,
      1,     1,     1,     1,     1,     1,     1,     2,     1,     2,       1,     1,     1,     1,     1,     1,     2,     1,     2,     2,
      2,     1,     1,     2,     1,     1,     1,     1,     2,     2,       1,     1,     2,     1,     1,     1,     1,     2,     2,     0,
      0,     0,     5,     1,     1,     2,     2,     1,     1,     2,       0,     5,     1,     1,     2,     2,     1,     1,     2,     2,
      2,     1,     1,     1,     1,     3,     3,     3,     2,     2,       1,     1,     1,     1,     1,     1,     3,     3,     3,     2,
      2,     2,     2,     2,     2,     2,     3,     3,     3,     3,       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,     3,     3,     3,     3,     3,     3,       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
      3,     3,     3,     1,     1,     0,     0       3,     3,     3,     3,     1,     1,     1,     0,     1,     1,
        0
 };  };
   
 static const short yydefact[] = {   167,  static const short yydefact[] = {   171,
    165,     0,     0,    70,     2,     1,     3,     6,     7,     5,     167,     0,     0,    70,     2,     1,     3,     6,     7,     5,
     28,    29,    32,    33,    36,    34,    35,    69,    31,    27,      28,    29,    32,    33,    36,    34,    35,    69,    31,    27,
      0,   105,   111,     0,     0,     0,    37,    39,     0,    41,       0,   104,   110,     0,     0,     0,    37,    39,     0,    41,
     42,    43,     0,    48,    49,    50,    51,     0,    99,     0,      42,    43,     0,    48,    49,    50,    51,     0,    98,     0,
     45,    97,   106,   107,   108,     0,   118,   119,     0,     4,      45,    96,   105,   106,   107,     0,   117,   118,     0,     4,
     30,   167,   167,   167,   104,     0,   120,   110,   115,     0,      30,   171,   171,   171,   103,     0,   119,   109,   114,     0,
    114,   109,     0,     0,   103,     0,   105,    52,     0,    97,     113,   108,     0,     0,   102,     0,   104,    52,     0,    96,
     38,    57,   167,     0,    47,    54,    55,    56,   105,   100,      38,    57,   171,     0,    47,    54,    55,    56,   104,    99,
     46,    98,   101,    44,    53,   121,    73,    71,    15,     8,      46,    97,   100,    44,    53,   120,    73,    71,    15,     8,
     10,    11,     0,     9,    23,     0,    22,    21,   167,    19,      10,    11,     0,     9,    23,     0,    22,    21,   171,    19,
     18,   117,   116,   112,    40,    98,   166,     0,   123,     0,      18,   116,   115,   111,    40,    97,   168,     0,   165,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,   167,       0,     0,     0,   169,   170,     0,     0,     0,     0,     0,
    167,   124,   125,     0,   122,     0,    12,    14,    13,    20,       0,   171,   171,   125,   126,     0,   121,   122,   123,   124,
      0,    26,     0,    25,     0,   165,     0,    32,    58,    64,       0,    12,    14,    13,    20,     0,    26,     0,    25,     0,
     65,    66,    62,    61,   133,   134,   135,   136,   130,   129,     167,     0,    32,    58,    64,    65,    66,    62,    61,   134,
    131,   132,     0,   164,     0,     0,    60,     0,     0,     0,     135,   136,   137,   131,   130,   132,   133,     0,   166,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     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,     0,     0,     0,
      0,     0,     0,     0,    79,   167,     0,     0,    74,    76,       0,     0,     0,     0,     0,     0,     0,     0,     0,    79,
     77,    78,    24,    16,   113,    68,     0,   128,   126,   127,     171,     0,     0,    74,    76,    77,    78,    24,    16,   112,
    148,   149,   150,   147,   153,   154,   155,   156,   143,   144,      68,     0,   129,   127,   128,   149,   150,   151,   148,   154,
    157,   158,   159,   160,   161,   162,   163,   151,   152,   146,     155,   156,   157,   144,   145,   158,   159,   160,   161,   162,
    145,   138,   137,   139,   140,   142,   141,   166,    92,     0,     163,   164,   152,   153,   147,   146,   139,   138,   140,   141,
     88,     0,    86,    91,    96,    72,    75,   167,    59,   165,     143,   142,   168,    92,     0,    88,     0,    86,    91,    72,
     95,    80,    84,    90,    93,   167,    83,     0,    82,    17,      75,   171,    59,   167,    95,    80,    84,    90,    93,   171,
    166,     0,    89,    87,    85,    81,     0,     0,     0      83,     0,    82,    17,   168,     0,    89,    87,    85,    81,
        0,     0,     0
 };  };
   
 static const short yydefgoto[] = {   257,  static const short yydefgoto[] = {   261,
      5,     6,     7,     8,    90,    91,    92,    93,     9,   238,       5,     6,     7,     8,    90,    91,    92,    93,     9,   242,
     99,    54,    96,    97,   133,   154,    11,    12,    13,    14,      99,    54,    96,    97,   138,   159,    11,    12,    13,    14,
    122,    27,    28,    29,    30,    31,    32,    16,    33,    34,     124,    27,    28,    29,    30,    31,    32,    16,    33,    34,
     35,    36,    75,    76,   107,   197,    77,    78,   139,   241,      35,    36,    75,    76,   107,   202,    77,    78,   144,   245,
    141,   142,    17,   123,    49,   126,    88,   188,   189,   190,     146,   147,    17,   125,    49,   131,    88,   193,   194,   195,
    228,   252,   191,   192,   242,   232,   230,   243,   233,   231,     233,   256,   196,   197,   246,   237,   235,   247,   238,   236,
    244,   234,    37,    64,    39,    40,    41,    65,    43,    44,     248,    37,    64,    39,    40,    41,    65,    43,    44,    45,
     45,    60,   135,    62,    58,    59,    66,    47,    48,   235,      60,   140,    62,    58,    59,    66,    47,    48,   239,   127,
    125,   155,    19,   245,    20     128,   160,    19,   249,   129,   130,    20
 };  };
   
 static const short yypact[] = {    34,  static const short yypact[] = {     6,
 -32768,    16,    61,-32768,   -19,-32768,-32768,-32768,-32768,-32768,  -32768,    23,    50,-32768,   -17,-32768,-32768,-32768,-32768,-32768,
     11,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,      18,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    -14,     9,-32768,    30,    94,   106,-32768,-32768,    44,-32768,     -31,    19,-32768,    43,    42,    44,-32768,-32768,    52,-32768,
 -32768,-32768,   -26,-32768,-32768,-32768,-32768,   111,-32768,    -2,  -32768,-32768,   -33,-32768,-32768,-32768,-32768,    65,-32768,    22,
 -32768,     5,-32768,-32768,-32768,   111,    -4,-32768,    94,-32768,  -32768,     4,-32768,-32768,-32768,    65,    24,-32768,    42,-32768,
 -32768,    65,    72,    31,-32768,    30,-32768,    41,-32768,    11,  -32768,    97,   104,    64,-32768,    43,-32768,    78,-32768,    18,
 -32768,-32768,    28,   111,    40,   111,    41,-32768,   106,    40,  -32768,-32768,    77,    65,    88,    65,    78,-32768,    44,    88,
 -32768,-32768,    11,    27,-32768,-32768,-32768,-32768,    18,-32768,  -32768,-32768,    18,     5,-32768,-32768,-32768,-32768,    16,-32768,
 -32768,     5,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -32768,     4,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
      6,-32768,    59,    67,-32768,    70,    77,-32768,   115,-32768,       8,-32768,    85,    86,-32768,   100,   117,-32768,   166,-32768,
 -32768,-32768,-32768,    11,-32768,    40,    38,    75,-32768,    27,  -32768,-32768,-32768,    18,-32768,    88,    27,   119,-32768,     5,
     27,    27,    27,    27,    27,    27,    27,    83,    27,    11,       5,     5,     5,-32768,-32768,     5,     5,     5,     5,    63,
     11,-32768,-32768,    73,   315,    78,-32768,-32768,-32768,-32768,       5,    18,    18,-32768,-32768,   114,   274,-32768,-32768,-32768,
    127,-32768,    89,-32768,    88,    90,    11,    -3,-32768,-32768,      79,-32768,-32768,-32768,-32768,   170,-32768,   137,-32768,   136,
 -32768,-32768,-32768,-32768,   140,   140,   140,   140,-32768,-32768,     138,    18,    60,-32768,-32768,-32768,-32768,-32768,-32768,   443,
 -32768,-32768,   270,-32768,    84,    87,-32768,    27,    27,    27,     443,   443,   443,-32768,-32768,-32768,-32768,   141,-32768,   127,
     27,    27,    27,    27,    27,    27,    27,    27,    27,    27,     128,-32768,     5,     5,     5,     5,     5,     5,     5,     5,
     27,    27,    27,    27,    27,    27,    27,    27,    27,    27,       5,     5,     5,     5,     5,     5,     5,     5,     5,     5,
     27,    27,    27,    27,-32768,    11,    27,    45,-32768,-32768,       5,     5,     5,     5,     5,     5,     5,     5,     5,-32768,
 -32768,-32768,-32768,-32768,-32768,    11,    95,-32768,-32768,-32768,      18,     5,    39,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    405,   377,   346,   278,   433,   433,   131,   131,   154,   154,      18,   140,-32768,-32768,-32768,   370,   340,   307,   428,   400,
    433,   433,   433,   433,   131,   131,   140,   433,   433,   164,     400,   413,   413,    98,    98,   400,   400,   400,   400,   413,
    441,   178,   178,-32768,-32768,-32768,-32768,    39,-32768,   -25,     413,   443,   400,   400,   180,   453,   105,   105,-32768,-32768,
 -32768,   -33,-32768,-32768,-32768,-32768,-32768,    11,-32768,    68,  -32768,-32768,    32,-32768,    35,-32768,   -32,-32768,-32768,-32768,
 -32768,   100,-32768,-32768,-32768,    11,-32768,    27,-32768,-32768,  -32768,    18,-32768,    70,-32768,   144,-32768,-32768,-32768,    18,
     39,   104,-32768,-32768,-32768,-32768,   155,   157,-32768  -32768,     5,-32768,-32768,    32,   146,-32768,-32768,-32768,-32768,
      197,   202,-32768
 };  };
   
 static const short yypgoto[] = {-32768,  static const short yypgoto[] = {-32768,
 -32768,-32768,   158,-32768,-32768,-32768,    82,-32768,-32768,-32768,  -32768,-32768,   199,-32768,-32768,-32768,   118,-32768,-32768,-32768,
 -32768,   110,-32768,-32768,-32768,     1,   -55,    -7,  -104,-32768,  -32768,   156,-32768,-32768,-32768,     1,   -55,    -7,  -104,-32768,
      0,-32768,-32768,   -13,-32768,-32768,   -27,-32768,-32768,-32768,       0,-32768,-32768,   -10,-32768,-32768,   -38,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   107,  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   108,
 -32768,-32768,-32768,     2,-32768,-32768,-32768,-32768,    -6,-32768,  -32768,-32768,-32768,     2,-32768,-32768,-32768,-32768,    31,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   -66,   -51,   -24,  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   -30,   -25,   -22,
 -32768,-32768,    -9,     4,   -29,-32768,   -20,     3,-32768,-32768,  -32768,    72,   123,   -24,-32768,   -12,     3,-32768,-32768,-32768,
 -32768,-32768,-32768,   167,-32768,   162,   221,-32768,-32768,   151,  -32768,-32768,   173,-32768,   172,   228,-32768,-32768,   158,    95,
     96,   105,-32768,   120,    49  -32768,   111,-32768,   129,-32768,-32768,    28
 };  };
   
   
 #define YYLAST          482  #define YYLAST          496
   
   
 static const short yytable[] = {    15,  static const short yytable[] = {    15,
     10,    18,   138,    51,   104,    42,    38,  -103,    80,    89,      10,    18,   143,    51,   104,    42,  -102,    84,   109,     1,
     15,    63,    18,    55,     1,   248,    68,    81,    84,    21,      15,    89,    18,    80,    63,    72,    52,    53,   252,    73,
     72,   249,    55,   246,    73,     2,   247,    74,    70,    69,      55,     1,    74,    55,   253,    81,    21,    84,    70,     2,
    109,    52,    53,    61,    80,    87,    85,     1,    84,    80,     141,   110,   111,   112,   113,   244,   114,   115,    87,    80,
     82,   136,   240,    81,   -67,   -67,    71,   236,    42,    38,      82,   240,   116,   117,    80,    22,    61,    67,    42,   118,
     83,  -167,    86,   110,   111,   112,   113,  -102,    56,    15,     119,    81,     2,    22,    71,  -171,   120,     3,  -101,    15,
      3,    18,   114,   115,    22,    57,     4,    56,    89,   116,     121,    18,     4,     4,   122,   123,    22,    56,    79,     3,
    117,   106,    15,   108,    18,    95,   118,    53,     2,   105,      56,   106,    15,   108,    18,     4,    83,    57,     3,    94,
    119,   196,     4,     3,   120,   121,    22,     3,     3,     4,      98,   101,    86,     3,     4,   250,   201,   190,   251,     4,
     56,   185,  -102,     4,     4,   186,    51,    22,   187,   137,      23,   191,    23,    24,   192,    24,    51,    68,    23,   142,
     94,    98,   101,    15,   129,    18,    15,    23,    18,    67,      89,    24,    25,    15,    26,    18,    15,    95,    18,   -67,
     24,    25,   -14,    26,    79,   -94,   -94,   130,   132,    15,     -67,    23,    53,    23,    24,    25,    24,    85,   133,   -94,
     15,    18,    18,   138,   185,   131,   144,   157,   186,    23,     -94,    15,    15,    18,    18,    38,   139,   190,   143,    56,
    193,   187,    24,    25,   194,   195,    15,   -63,    18,   128,     105,   191,   134,   -14,   192,   184,   185,   186,   187,   188,
     23,   199,   239,    24,   161,   200,   138,   134,   251,   166,     189,    15,  -101,    18,   186,   187,   188,   189,    69,   135,
    167,   256,    23,   161,   258,    24,   259,    23,   166,   167,     143,   163,   164,   165,   166,   167,   168,   169,   170,   171,
     24,   174,    50,   100,   177,   178,   179,   180,   181,   182,     172,   173,   174,   175,   176,   177,   178,   136,    38,   137,
    183,   184,   127,   177,   178,   179,   180,   181,   182,   183,     162,   179,   149,   198,   180,   181,   182,   183,   184,   185,
    184,   237,   166,   167,   255,    15,   229,    18,    51,   179,     186,   187,   188,   189,   199,   200,   204,   -63,   205,   243,
    180,   181,   182,   183,   184,    15,   254,    18,   178,   179,      15,   234,    18,    51,   255,   260,   262,   203,   171,   172,
    180,   181,   182,   183,   184,   145,   146,   147,   148,   149,      15,   263,    18,    50,   150,   151,   152,   153,   132,   100,
    150,   151,   152,   140,   153,   181,   182,   183,   184,   103,     154,   155,   156,   157,   145,   158,   183,   184,   185,   186,
    137,   253,   102,    46,   124,   156,   143,    15,     0,    18,     187,   188,   189,   241,   259,   142,   258,   257,   102,   103,
      0,     0,     0,     0,     0,     0,     0,    15,   250,    18,      46,   126,    15,   161,    18,   148,     0,     0,     0,     0,
      0,     0,     0,   137,     0,    15,   229,    18,     0,     0,       0,    15,   254,    18,     0,     0,     0,   142,     0,    15,
     15,     0,    18,   201,   202,   203,   204,   205,   206,   207,     234,    18,     0,     0,    15,     0,    18,   206,   207,   208,
    208,   209,   210,   211,   212,   213,   214,   215,   216,   217,     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
    218,   219,   220,   221,   222,   223,   224,   225,   226,   227,     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
    158,   159,   160,   161,   162,   163,   164,   165,   166,   167,     229,   230,   231,   232,   163,   164,   165,   166,   167,   168,
    168,   169,   170,   171,   172,   173,   166,   167,     0,     0,     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
    174,   175,   176,   177,   178,   179,   180,   181,   182,   183,       0,     0,     0,     0,   179,     0,     0,   180,   181,   182,
    184,   177,   178,   179,   180,   181,   182,   183,   184,     0,     183,   184,   185,   186,   187,   188,   189,   163,   164,     0,
      0,     0,     0,     0,   198,   158,   159,   160,   161,   162,     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
    163,   164,   165,   166,   167,   168,   169,   170,   171,   172,     176,   177,   178,     0,     0,     0,     0,   179,     0,     0,
    173,     0,     0,     0,     0,   174,   175,   176,   177,   178,     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
    179,   180,   181,   182,   183,   184,   158,   159,     0,   161,     163,     0,     0,   166,   167,   168,   169,   170,   171,   172,
    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,     173,   174,   175,   176,   177,   178,     0,     0,     0,     0,
    172,   173,     0,     0,     0,     0,   174,   175,   176,   177,     179,     0,     0,   180,   181,   182,   183,   184,   185,   186,
    178,   179,   180,   181,   182,   183,   184,   158,     0,     0,     187,   188,   189,   166,   167,   168,   169,   170,   171,   172,
    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,     173,   174,   175,   176,   177,   178,     0,     0,     0,     0,
    171,   172,   173,     0,     0,     0,     0,   174,   175,   176,     179,     0,     0,   180,   181,   182,   183,   184,   185,   186,
    177,   178,   179,   180,   181,   182,   183,   184,   161,   162,     187,   188,   189,   166,     0,     0,   169,   170,   171,   172,
    163,   164,   165,   166,   167,   168,   169,   170,   171,   172,       0,     0,     0,     0,   177,   178,   166,     0,     0,     0,
    173,     0,     0,     0,     0,   174,   175,   176,   177,   178,     179,   171,   172,     0,     0,   182,   183,   184,   185,   186,
    179,   180,   181,   182,   183,   184,   161,     0,     0,   164,     187,   188,   189,   179,     0,     0,   171,   172,   182,   183,
    165,   166,   167,     0,     0,     0,     0,   172,   173,   166,     184,   185,   186,   187,   188,   189,   166,     0,     0,     0,
    167,     0,     0,   174,     0,     0,   177,   178,   179,   180,       0,   171,   172,   182,   183,   184,   185,   186,   187,   188,
    181,   182,   183,   184,     0,     0,   179,   180,   181,   182,     189,   171,   172,     0,     0,     0,     0,     0,   182,   183,
    183,   184     184,   185,   186,   187,   188,   189,     0,     0,     0,     0,
      184,   185,   186,   187,   188,   189
 };  };
   
 static const short yycheck[] = {     0,  static const short yycheck[] = {     0,
      0,     0,   107,    11,    60,     3,     3,     3,    38,     4,       0,     0,   107,    11,    60,     3,     3,    46,     4,     4,
     11,    25,    11,     5,     4,    49,    26,    38,    46,     4,      11,     4,    11,    38,    25,    49,    48,    49,    51,    53,
     47,    55,     5,    49,    51,    45,    52,    54,    26,    26,       5,     4,    56,     5,    57,    38,     4,    66,    26,    47,
      4,    46,    47,     4,    64,    49,    46,     4,    66,    69,       4,    27,    28,    29,    30,     4,    32,    33,    49,    64,
     38,     4,     4,    64,    48,    49,     3,     3,    46,    46,      38,     3,    38,    39,    69,     4,     4,     4,    46,    45,
     53,    46,    57,    27,    28,    29,    30,    53,    50,    60,      46,    64,    47,     4,     3,    48,    52,    52,    55,    60,
     50,    60,    36,    37,     4,    57,    56,    50,     4,    43,      56,    60,    58,    58,    60,    61,     4,    52,     4,    52,
     44,    69,    73,    73,    73,     4,    50,    47,    45,    52,      52,    69,    73,    73,    73,    58,    55,    59,    52,    52,
     54,   137,    56,    50,    58,    59,     4,    50,    50,    56,      53,    54,    59,    52,    58,    51,   142,    49,    54,    58,
     50,    47,    53,    56,    56,    51,   104,     4,    54,   107,      49,    53,    49,    52,    56,    52,   104,    26,    49,   107,
     52,    53,    54,   104,    46,   104,   107,    47,   107,     4,       4,    52,    53,   104,    55,   104,   107,     4,   107,    50,
     50,    51,    46,    53,     4,    48,    49,    48,     4,   120,      51,    49,    49,    49,    52,    53,    52,    46,    91,    50,
    121,   120,   121,   228,    47,    49,    52,    55,    51,    47,      51,   122,   123,   122,   123,     3,    99,    49,   233,    52,
      4,    54,    50,    51,    46,    48,   137,    48,   137,    91,      54,    53,    48,    48,    56,    38,    39,    40,    41,    42,
     47,    58,    48,    50,    14,    59,   251,    99,    49,    19,      43,   142,    55,   142,    40,    41,    42,    43,    26,    50,
     20,    48,    47,    14,     0,    50,     0,    47,    19,    20,     255,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     50,    31,     5,    54,    34,    35,    36,    37,    38,    39,      20,    21,    22,    23,    24,    25,    26,    51,    46,     4,
     40,    41,    91,    34,    35,    36,    37,    38,    39,    40,      57,    31,    54,     4,    34,    35,    36,    37,    38,    39,
     41,   188,    19,    20,   251,   186,   186,   186,   196,    36,      40,    41,    42,    43,    48,    50,    60,    50,    61,    50,
     37,    38,    39,    40,    41,   196,   248,   196,    35,    36,     191,   191,   191,   201,    51,    50,     0,    57,    19,    20,
     37,    38,    39,    40,    41,   110,   111,   112,   113,   114,     201,     0,   201,     5,   110,   111,   112,   113,    91,    54,
    115,   116,   117,   107,   119,    38,    39,    40,    41,    58,     116,   117,   118,   119,   107,   121,    37,    38,    39,    40,
    228,   246,    56,     3,    74,   121,   107,   228,    -1,   228,      41,    42,    43,   193,   255,   233,   252,   250,    56,    58,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,   238,   238,   238,       3,    74,   233,   123,   233,   107,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,   251,    -1,   246,   246,   246,    -1,    -1,      -1,   242,   242,   242,    -1,    -1,    -1,   255,    -1,   250,
    251,    -1,   251,   158,   159,   160,   161,   162,   163,   164,     250,   250,    -1,    -1,   255,    -1,   255,   163,   164,   165,
    165,   166,   167,   168,   169,   170,   171,   172,   173,   174,     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
    175,   176,   177,   178,   179,   180,   181,   182,   183,   184,     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
     11,    12,    13,    14,    15,    16,    17,    18,    19,    20,     186,   187,   188,   189,    11,    12,    13,    14,    15,    16,
     21,    22,    23,    24,    25,    26,    19,    20,    -1,    -1,      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,      -1,    -1,    -1,    -1,    31,    -1,    -1,    34,    35,    36,
     41,    34,    35,    36,    37,    38,    39,    40,    41,    -1,      37,    38,    39,    40,    41,    42,    43,    11,    12,    -1,
     -1,    -1,    -1,    -1,    55,    11,    12,    13,    14,    15,  
     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,  
     26,    -1,    -1,    -1,    -1,    31,    32,    33,    34,    35,  
     36,    37,    38,    39,    40,    41,    11,    12,    -1,    14,  
     15,    16,    17,    18,    19,    20,    21,    22,    23,    24,  
     25,    26,    -1,    -1,    -1,    -1,    31,    32,    33,    34,  
     35,    36,    37,    38,    39,    40,    41,    11,    -1,    -1,  
     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     24,    25,    26,    -1,    -1,    -1,    -1,    31,    32,    33,      24,    25,    26,    -1,    -1,    -1,    -1,    31,    -1,    -1,
     34,    35,    36,    37,    38,    39,    40,    41,    14,    15,      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,      11,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
     26,    -1,    -1,    -1,    -1,    31,    32,    33,    34,    35,      21,    22,    23,    24,    25,    26,    -1,    -1,    -1,    -1,
     36,    37,    38,    39,    40,    41,    14,    -1,    -1,    17,      31,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
     18,    19,    20,    -1,    -1,    -1,    -1,    25,    26,    19,      41,    42,    43,    14,    15,    16,    17,    18,    19,    20,
     20,    -1,    -1,    31,    -1,    -1,    34,    35,    36,    37,      21,    22,    23,    24,    25,    26,    -1,    -1,    -1,    -1,
     38,    39,    40,    41,    -1,    -1,    36,    37,    38,    39,      31,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
     40,    41      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  #define YYPURE 1
   
Line 1044  yyreduce: Line 1059  yyreduce:
   switch (yyn) {    switch (yyn) {
   
 case 1:  case 1:
 #line 121 "compile.y"  #line 128 "compile.y"
 {  {
         Method& method=*new Method(Method::CT_ANY,          Method& method=*new Method(Method::CT_ANY,
                 0, 0, /*min, max numbered_params_count*/                  0, 0, /*min, max numbered_params_count*/
Line 1054  case 1: Line 1069  case 1:
 ;  ;
     break;}      break;}
 case 8:  case 8:
 #line 136 "compile.y"  #line 143 "compile.y"
 {  {
         const String& command=*LA2S(*yyvsp[-2]);          const String& command=*LA2S(*yyvsp[-2]);
         YYSTYPE strings_code=yyvsp[0];          YYSTYPE strings_code=yyvsp[0];
Line 1128  case 8: Line 1143  case 8:
 ;  ;
     break;}      break;}
 case 12:  case 12:
 #line 208 "compile.y"  #line 215 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 16:  case 16:
 #line 212 "compile.y"  #line 219 "compile.y"
 {   { 
         PC.explicit_result=false;          PC.explicit_result=false;
         const String& name=*LA2S(*yyvsp[-4]);          const String& name=*LA2S(*yyvsp[-4]);
Line 1171  case 16: Line 1186  case 16:
 ;  ;
     break;}      break;}
 case 17:  case 17:
 #line 247 "compile.y"  #line 254 "compile.y"
 {  {
         // fill in the code          // fill in the code
         reinterpret_cast<Method*>(yyvsp[-1])->parser_code=yyvsp[0];          reinterpret_cast<Method*>(yyvsp[-1])->parser_code=yyvsp[0];
 ;  ;
     break;}      break;}
 case 20:  case 20:
 #line 253 "compile.y"  #line 260 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 24:  case 24:
 #line 255 "compile.y"  #line 262 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 30:  case 30:
 #line 263 "compile.y"  #line 270 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 36:  case 36:
 #line 269 "compile.y"  #line 276 "compile.y"
 {  {
         yyval=yyvsp[0]; /* stack: resulting value */           yyval=yyvsp[0]; /* stack: resulting value */ 
         changetail_or_append(*yyval,           changetail_or_append(*yyval, 
Line 1200  case 36: Line 1215  case 36:
 ;  ;
     break;}      break;}
 case 37:  case 37:
 #line 276 "compile.y"  #line 283 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 40:  case 40:
 #line 278 "compile.y"  #line 285 "compile.y"
 { yyval=yyvsp[-1] ;  { yyval=yyvsp[-1] ;
     break;}      break;}
 case 43:  case 43:
 #line 282 "compile.y"  #line 289 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         ArrayOperation* diving_code=yyvsp[0];          ArrayOperation* diving_code=yyvsp[0];
Line 1233  case 43: Line 1248  case 43:
 ;  ;
     break;}      break;}
 case 44:  case 44:
 #line 304 "compile.y"  #line 311 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 46:  case 46:
 #line 305 "compile.y"  #line 312 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 47:  case 47:
 #line 309 "compile.y"  #line 316 "compile.y"
 {  {
         yyval=yyvsp[-1]; /* stack: context,name */          yyval=yyvsp[-1]; /* stack: context,name */
         P(*yyval, *yyvsp[0]); /* stack: context,name,constructor_value */          P(*yyval, *yyvsp[0]); /* stack: context,name,constructor_value */
 ;  ;
     break;}      break;}
 case 51:  case 51:
 #line 317 "compile.y"  #line 324 "compile.y"
 {  {
         yyval=N();          yyval=N();
         ArrayOperation* diving_code=yyvsp[0];          ArrayOperation* diving_code=yyvsp[0];
Line 1268  case 51: Line 1283  case 51:
 ;  ;
     break;}      break;}
 case 52:  case 52:
 #line 334 "compile.y"  #line 341 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         O(*yyval, OP_WITH_WRITE); /* stack: starting context */          O(*yyval, OP_WITH_WRITE); /* stack: starting context */
Line 1276  case 52: Line 1291  case 52:
 ;  ;
     break;}      break;}
 case 53:  case 53:
 #line 339 "compile.y"  #line 346 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 57:  case 57:
 #line 346 "compile.y"  #line 353 "compile.y"
 {  {
         // allow $result_or_other_variable[ letters here any time ]          // allow $result_or_other_variable[ letters here any time ]
         *reinterpret_cast<bool*>(&yyval)=PC.explicit_result; PC.explicit_result=false;          *reinterpret_cast<bool*>(&yyval)=PC.explicit_result; PC.explicit_result=false;
 ;  ;
     break;}      break;}
 case 58:  case 58:
 #line 349 "compile.y"  #line 356 "compile.y"
 {  {
         PC.explicit_result=reinterpret_cast<bool>(yyvsp[-1]);          PC.explicit_result=*reinterpret_cast<bool*>(&yyvsp[-1]);
 ;  ;
     break;}      break;}
 case 59:  case 59:
 #line 351 "compile.y"  #line 358 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=yyvsp[-2]; // stack: context, name, value          yyval=yyvsp[-2]; // stack: context, name, value
Line 1301  case 59: Line 1316  case 59:
 ;  ;
     break;}      break;}
 case 60:  case 60:
 #line 357 "compile.y"  #line 364 "compile.y"
 {   { 
         yyval=N();           yyval=N(); 
         O(*yyval, OP_PREPARE_TO_EXPRESSION);          O(*yyval, OP_PREPARE_TO_EXPRESSION);
Line 1311  case 60: Line 1326  case 60:
 ;  ;
     break;}      break;}
 case 61:  case 61:
 #line 365 "compile.y"  #line 372 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=N();           yyval=N(); 
Line 1319  case 61: Line 1334  case 61:
 ;  ;
     break;}      break;}
 case 65:  case 65:
 #line 376 "compile.y"  #line 383 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         OA(*yyval, OP_OBJECT_POOL, yyvsp[0]); /* stack: empty write context */          OA(*yyval, OP_OBJECT_POOL, yyvsp[0]); /* stack: empty write context */
Line 1328  case 65: Line 1343  case 65:
 ;  ;
     break;}      break;}
 case 68:  case 68:
 #line 383 "compile.y"  #line 390 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 69:  case 69:
 #line 387 "compile.y"  #line 394 "compile.y"
 {  {
         yyval=yyvsp[0]; /* stack: value */          yyval=yyvsp[0]; /* stack: value */
         changetail_or_append(*yyval,           changetail_or_append(*yyval, 
Line 1341  case 69: Line 1356  case 69:
 ;  ;
     break;}      break;}
 case 70:  case 70:
 #line 393 "compile.y"  #line 400 "compile.y"
 {   { 
                                         PC.in_call_value=true;                                           PC.in_call_value=true; 
                         ;                          ;
     break;}      break;}
 case 71:  case 71:
 #line 396 "compile.y"  #line 403 "compile.y"
 {  {
                                 PC.in_call_value=false;                                  PC.in_call_value=false;
                         ;                          ;
     break;}      break;}
 case 72:  case 72:
 #line 399 "compile.y"  #line 406 "compile.y"
 { /* ^field.$method{vasya} */  { /* ^field.$method{vasya} */
         yyval=yyvsp[-3]; /* with_xxx,diving code; stack: context,method_junction */          yyval=yyvsp[-3]; /* with_xxx,diving code; stack: context,method_junction */
   
Line 1368  case 72: Line 1383  case 72:
 ;  ;
     break;}      break;}
 case 75:  case 75:
 #line 414 "compile.y"  #line 421 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 79:  case 79:
 #line 420 "compile.y"  #line 427 "compile.y"
 {  {
         // allow ^call[ letters here any time ]          // allow ^call[ letters here any time ]
         *reinterpret_cast<bool*>(&yyval)=PC.explicit_result; PC.explicit_result=false;          *reinterpret_cast<bool*>(&yyval)=PC.explicit_result; PC.explicit_result=false;
 ;  ;
     break;}      break;}
 case 80:  case 80:
 #line 423 "compile.y"  #line 430 "compile.y"
 {  {
         PC.explicit_result=reinterpret_cast<bool>(yyvsp[-1]);          PC.explicit_result=*reinterpret_cast<bool*>(&yyvsp[-1]);
 ;  ;
     break;}      break;}
 case 81:  case 81:
 #line 425 "compile.y"  #line 432 "compile.y"
 {yyval=yyvsp[-2];  {yyval=yyvsp[-2];
     break;}      break;}
 case 82:  case 82:
 #line 426 "compile.y"  #line 433 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 83:  case 83:
 #line 427 "compile.y"  #line 434 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 85:  case 85:
 #line 430 "compile.y"  #line 437 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 87:  case 87:
 #line 434 "compile.y"  #line 441 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 89:  case 89:
 #line 438 "compile.y"  #line 445 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 90:  case 90:
 #line 440 "compile.y"  #line 447 "compile.y"
 {  {
         yyval=yyvsp[0];          yyval=yyvsp[0];
         O(*yyval, OP_STORE_PARAM);          O(*yyval, OP_STORE_PARAM);
 ;  ;
     break;}      break;}
 case 91:  case 91:
 #line 444 "compile.y"  #line 451 "compile.y"
 {  {
         yyval=N();           YYSTYPE expr_code=yyvsp[0];
         OA(*yyval, OP_EXPR_CODE__STORE_PARAM, yyvsp[0]);          if(expr_code->count()==3
                   && (*expr_code)[0].code==OP_VALUE) { // optimizing (double/bool/incidently 'string' too) case. [OP_VALUE+origin+Double]
                   yyval=expr_code; 
                   O(*yyval, OP_STORE_PARAM); // no evaluating
           } else {
                   ArrayOperation* code=N();
                   O(*code, OP_PREPARE_TO_EXPRESSION);
                   P(*code, *expr_code);
                   O(*code, OP_WRITE_EXPR_RESULT);
                   yyval=N(); 
                   OA(*yyval, OP_EXPR_CODE__STORE_PARAM, code);
           }
 ;  ;
     break;}      break;}
 case 92:  case 92:
 #line 448 "compile.y"  #line 466 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         OA(*yyval, OP_CURLY_CODE__STORE_PARAM, yyvsp[0]);          OA(*yyval, OP_CURLY_CODE__STORE_PARAM, yyvsp[0]);
 ;  ;
     break;}      break;}
 case 96:  case 97:
 #line 457 "compile.y"  #line 478 "compile.y"
 {  
         yyval=N();   
         O(*yyval, OP_PREPARE_TO_EXPRESSION);  
         P(*yyval, *yyvsp[0]);  
         O(*yyval, OP_WRITE_EXPR_RESULT);  
 ;  
     break;}  
 case 98:  
 #line 466 "compile.y"  
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 100:  case 99:
 #line 468 "compile.y"  #line 480 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 102:  case 101:
 #line 470 "compile.y"  #line 482 "compile.y"
 {  {
         // we know that name_advance1 not called from ^xxx context          // we know that name_advance1 not called from ^xxx context
         // so we'll not check for operator call possibility as we do in name_advance2          // so we'll not check for operator call possibility as we do in name_advance2
Line 1457  case 102: Line 1474  case 102:
         O(*yyval, OP_GET_ELEMENT); /* name=pop; context=pop; stack: context.get_element(name) */          O(*yyval, OP_GET_ELEMENT); /* name=pop; context=pop; stack: context.get_element(name) */
 ;  ;
     break;}      break;}
 case 103:  case 102:
 #line 478 "compile.y"  #line 490 "compile.y"
 {  {
         /* stack: context */          /* stack: context */
         yyval=yyvsp[0]; /* stack: context,name */          yyval=yyvsp[0]; /* stack: context,name */
         O(*yyval, OP_GET_ELEMENT); /* name=pop; context=pop; stack: context.get_element(name) */          O(*yyval, OP_GET_ELEMENT); /* name=pop; context=pop; stack: context.get_element(name) */
 ;  ;
     break;}      break;}
 case 109:  case 108:
 #line 491 "compile.y"  #line 503 "compile.y"
 {  {
         yyval=yyvsp[0];          yyval=yyvsp[0];
         O(*yyval, OP_GET_ELEMENT);          O(*yyval, OP_GET_ELEMENT);
 ;  ;
     break;}      break;}
 case 110:  case 109:
 #line 495 "compile.y"  #line 507 "compile.y"
 {  {
         ArrayOperation* code;          ArrayOperation* code;
         {          {
Line 1484  case 110: Line 1501  case 110:
         OA(*yyval, OP_STRING_POOL, code);          OA(*yyval, OP_STRING_POOL, code);
 ;  ;
     break;}      break;}
 case 111:  case 110:
 #line 504 "compile.y"  #line 516 "compile.y"
 {  {
         // allow $result_or_other_variable[ letters here any time ]          // allow $result_or_other_variable[ letters here any time ]
         *reinterpret_cast<bool*>(&yyval)=PC.explicit_result; PC.explicit_result=false;          *reinterpret_cast<bool*>(&yyval)=PC.explicit_result; PC.explicit_result=false;
 ;  ;
     break;}      break;}
 case 112:  case 111:
 #line 507 "compile.y"  #line 519 "compile.y"
 {  {
         PC.explicit_result=reinterpret_cast<bool>(yyvsp[-1]);          PC.explicit_result=*reinterpret_cast<bool*>(&yyvsp[-1]);
 ;  ;
     break;}      break;}
 case 113:  case 112:
 #line 509 "compile.y"  #line 521 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         OA(*yyval, OP_OBJECT_POOL, yyvsp[-2]); /* stack: empty write context */          OA(*yyval, OP_OBJECT_POOL, yyvsp[-2]); /* stack: empty write context */
Line 1506  case 113: Line 1523  case 113:
         /* context=pop; stack: context.value() */          /* context=pop; stack: context.value() */
 ;  ;
     break;}      break;}
 case 114:  case 113:
 #line 515 "compile.y"  #line 527 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         O(*yyval, OP_WITH_READ);          O(*yyval, OP_WITH_READ);
         P(*yyval, *yyvsp[0]);          P(*yyval, *yyvsp[0]);
 ;  ;
     break;}      break;}
 case 116:  case 115:
 #line 520 "compile.y"  #line 532 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 117:  case 116:
 #line 521 "compile.y"  #line 533 "compile.y"
 {  {
         yyval=yyvsp[0];          yyval=yyvsp[0];
         O(*yyval, OP_GET_ELEMENT__WRITE);          O(*yyval, OP_GET_ELEMENT__WRITE);
 ;  ;
     break;}      break;}
 case 120:  case 119:
 #line 530 "compile.y"  #line 542 "compile.y"
 {  {
         yyval=yyvsp[-1]; // stack: class name string          yyval=yyvsp[-1]; // stack: class name string
         if(*LA2S(*yyval) == BASE_NAME) { // pseudo BASE class          if(*LA2S(*yyval) == BASE_NAME) { // pseudo BASE class
Line 1540  case 120: Line 1557  case 120:
         O(*yyval, OP_GET_CLASS);          O(*yyval, OP_GET_CLASS);
 ;  ;
     break;}      break;}
 case 121:  case 120:
 #line 542 "compile.y"  #line 554 "compile.y"
 {  {
         yyval=yyvsp[-1];          yyval=yyvsp[-1];
         if(!PC.in_call_value) {          if(!PC.in_call_value) {
Line 1551  case 121: Line 1568  case 121:
         O(*yyval, OP_PREPARE_TO_CONSTRUCT_OBJECT);          O(*yyval, OP_PREPARE_TO_CONSTRUCT_OBJECT);
 ;  ;
     break;}      break;}
 case 122:  
 #line 554 "compile.y"  
 {  
         // see OP_PREPARE_TO_EXPRESSION!!  
         if((yyval=yyvsp[0])->count()==2) // only one string literal in there?  
                 change_string_literal_to_double_literal(*yyval); // make that string literal Double  
 ;  
     break;}  
 case 126:  
 #line 563 "compile.y"  
 { yyval = yyvsp[-1]; ;  
     break;}  
 case 127:  case 127:
 #line 564 "compile.y"  #line 573 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1] ;
     break;}      break;}
 case 128:  case 128:
 #line 565 "compile.y"  #line 574 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1] ;
     break;}      break;}
 case 129:  case 129:
 #line 567 "compile.y"  #line 575 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_NEG) ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 130:  case 130:
 #line 568 "compile.y"  #line 577 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0];  O(*yyval, OP_NEG) ;
     break;}      break;}
 case 131:  case 131:
 #line 569 "compile.y"  #line 578 "compile.y"
 { yyval=yyvsp[0];        O(*yyval, OP_INV) ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 132:  case 132:
 #line 570 "compile.y"  #line 579 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_NOT) ;  { yyval=yyvsp[0];        O(*yyval, OP_INV) ;
     break;}      break;}
 case 133:  case 133:
 #line 571 "compile.y"  #line 580 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_DEF) ;  { yyval=yyvsp[0];  O(*yyval, OP_NOT) ;
     break;}      break;}
 case 134:  case 134:
 #line 572 "compile.y"  #line 581 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_IN) ;  { yyval=yyvsp[0];  O(*yyval, OP_DEF) ;
     break;}      break;}
 case 135:  case 135:
 #line 573 "compile.y"  #line 582 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_FEXISTS) ;  { yyval=yyvsp[0];  O(*yyval, OP_IN) ;
     break;}      break;}
 case 136:  case 136:
 #line 574 "compile.y"  #line 583 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_DEXISTS) ;  { yyval=yyvsp[0];  O(*yyval, OP_FEXISTS) ;
     break;}      break;}
 case 137:  case 137:
 #line 576 "compile.y"  #line 584 "compile.y"
 {       yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_SUB) ;  { yyval=yyvsp[0];  O(*yyval, OP_DEXISTS) ;
     break;}      break;}
 case 138:  case 138:
 #line 577 "compile.y"  #line 586 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_ADD) ;  {       yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_SUB) ;
     break;}      break;}
 case 139:  case 139:
 #line 578 "compile.y"  #line 587 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_MUL) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_ADD) ;
     break;}      break;}
 case 140:  case 140:
 #line 579 "compile.y"  #line 588 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_DIV) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_MUL) ;
     break;}      break;}
 case 141:  case 141:
 #line 580 "compile.y"  #line 589 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_MOD) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_DIV) ;
     break;}      break;}
 case 142:  case 142:
 #line 581 "compile.y"  #line 590 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_INTDIV) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_MOD) ;
     break;}      break;}
 case 143:  case 143:
 #line 582 "compile.y"  #line 591 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_SL) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_INTDIV) ;
     break;}      break;}
 case 144:  case 144:
 #line 583 "compile.y"  #line 592 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_SR) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_SL) ;
     break;}      break;}
 case 145:  case 145:
 #line 584 "compile.y"  #line 593 "compile.y"
 { yyval=yyvsp[-2];      P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_AND) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_SR) ;
     break;}      break;}
 case 146:  case 146:
 #line 585 "compile.y"  #line 594 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_OR) ;  { yyval=yyvsp[-2];      P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_AND) ;
     break;}      break;}
 case 147:  case 147:
 #line 586 "compile.y"  #line 595 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_XOR) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_OR) ;
     break;}      break;}
 case 148:  case 148:
 #line 587 "compile.y"  #line 596 "compile.y"
 { yyval=yyvsp[-2];  OA(*yyval, OP_NESTED_CODE, yyvsp[0]);  O(*yyval, OP_LOG_AND) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_XOR) ;
     break;}      break;}
 case 149:  case 149:
 #line 588 "compile.y"  #line 597 "compile.y"
 { yyval=yyvsp[-2];  OA(*yyval, OP_NESTED_CODE, yyvsp[0]);  O(*yyval, OP_LOG_OR) ;  { yyval=yyvsp[-2];  OA(*yyval, OP_NESTED_CODE, yyvsp[0]);  O(*yyval, OP_LOG_AND) ;
     break;}      break;}
 case 150:  case 150:
 #line 589 "compile.y"  #line 598 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_LOG_XOR) ;  { yyval=yyvsp[-2];  OA(*yyval, OP_NESTED_CODE, yyvsp[0]);  O(*yyval, OP_LOG_OR) ;
     break;}      break;}
 case 151:  case 151:
 #line 590 "compile.y"  #line 599 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_LT) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_LOG_XOR) ;
     break;}      break;}
 case 152:  case 152:
 #line 591 "compile.y"  #line 600 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_GT) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_LT) ;
     break;}      break;}
 case 153:  case 153:
 #line 592 "compile.y"  #line 601 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_LE) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_GT) ;
     break;}      break;}
 case 154:  case 154:
 #line 593 "compile.y"  #line 602 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_GE) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_LE) ;
     break;}      break;}
 case 155:  case 155:
 #line 594 "compile.y"  #line 603 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_EQ) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_GE) ;
     break;}      break;}
 case 156:  case 156:
 #line 595 "compile.y"  #line 604 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_NE) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_EQ) ;
     break;}      break;}
 case 157:  case 157:
 #line 596 "compile.y"  #line 605 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_LT) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_NE) ;
     break;}      break;}
 case 158:  case 158:
 #line 597 "compile.y"  #line 606 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_GT) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_LT) ;
     break;}      break;}
 case 159:  case 159:
 #line 598 "compile.y"  #line 607 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_LE) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_GT) ;
     break;}      break;}
 case 160:  case 160:
 #line 599 "compile.y"  #line 608 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_GE) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_LE) ;
     break;}      break;}
 case 161:  case 161:
 #line 600 "compile.y"  #line 609 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_EQ) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_GE) ;
     break;}      break;}
 case 162:  case 162:
 #line 601 "compile.y"  #line 610 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_NE) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_EQ) ;
     break;}      break;}
 case 163:  case 163:
 #line 602 "compile.y"  #line 611 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_IS) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_NE) ;
     break;}      break;}
 case 164:  case 164:
 #line 605 "compile.y"  #line 612 "compile.y"
   { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_IS) ;
       break;}
   case 165:
   #line 615 "compile.y"
   {
           // optimized from OP_STRING->OP_VALUE for doubles
           maybe_change_string_literal_to_double_literal(*(yyval=yyvsp[0]));
   ;
       break;}
   case 166:
   #line 620 "compile.y"
 {  {
         yyval=N();          yyval=N();
         OA(*yyval, OP_STRING_POOL, yyvsp[0]); /* stack: empty write context */          OA(*yyval, OP_STRING_POOL, yyvsp[0]); /* stack: empty write context */
Line 1720  case 164: Line 1736  case 164:
         /* context=pop; stack: context.get_string() */          /* context=pop; stack: context.get_string() */
 ;  ;
     break;}      break;}
 case 165:  case 167:
 #line 614 "compile.y"  #line 629 "compile.y"
 {  {
         // optimized from OP_STRING+OP_WRITE_VALUE to OP_STRING__WRITE          // optimized from OP_STRING+OP_WRITE_VALUE to OP_STRING__WRITE
         change_string_literal_to_write_string_literal(*(yyval=yyvsp[0]))          change_string_literal_to_write_string_literal(*(yyval=yyvsp[0]))
 ;  ;
     break;}      break;}
 case 166:  case 168:
 #line 619 "compile.y"  #line 634 "compile.y"
 { yyval=VL(new VVoid(), 0, 0, 0) ;  { yyval=VL(/*we know that we will not change it*/const_cast<VVoid*>(&vvoid), 0, 0, 0) ;
       break;}
   case 169:
   #line 635 "compile.y"
   { yyval = VL(/*we know that we will not change it*/const_cast<VBool*>(&vtrue), 0, 0, 0) ;
       break;}
   case 170:
   #line 636 "compile.y"
   { yyval = VL(/*we know that we will not change it*/const_cast<VBool*>(&vfalse), 0, 0, 0) ;
     break;}      break;}
 case 167:  case 171:
 #line 620 "compile.y"  #line 638 "compile.y"
 { yyval=N() ;  { yyval=N() ;
     break;}      break;}
 }  }
Line 1957  yyerrhandle: Line 1981  yyerrhandle:
     }      }
   return 1;    return 1;
 }  }
 #line 622 "compile.y"  #line 640 "compile.y"
   
 #endif  #endif
   
Line 2079  default: Line 2103  default:
                                 }                                  }
                                 // #HH ?                                  // #HH ?
                                 if(pc.source[0]=='#' && pc.source[1] && pc.source[2]) {                                  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[1]]*0x10+
                                                 hex_value[(unsigned char)pc.source[2]];                                                  hex_value[(unsigned char)pc.source[2]]);
                                         if(c==0) {                                          if(c==0) {
                                                 result=BAD_HEX_LITERAL;                                                  result=BAD_HEX_LITERAL;
                                                 goto break2; // wrong hex value[no ^#00 chars allowed]: bail out                                                  goto break2; // wrong hex value[no ^#00 chars allowed]: bail out
Line 2399  default: Line 2423  default:
                                                 goto break2;                                                  goto break2;
                                         }                                          }
                                 break;                                  break;
                           case 't':
                                   if(end==begin) // right after whitespace
                                           if(pc.source[0]=='r' && pc.source[1]=='u' && pc.source[2]=='e') { // def
                                                   skip_analized=3;
                                                   result=LITERAL_TRUE;
                                                   goto break2;
                                           }
                                   break;
                           case 'f':
                                   if(end==begin) // right after whitespace
                                           if(pc.source[0]=='a' && pc.source[1]=='l' && pc.source[2]=='s' && pc.source[3]=='e') { // def
                                                   skip_analized=4;
                                                   result=LITERAL_FALSE;
                                                   goto break2;
                                           }
                                   break;
                         case ' ': case '\t': case '\n':                          case ' ': case '\t': case '\n':
                                 if(end!=begin) { // there were a string after previous operator?                                  if(end!=begin) { // there were a string after previous operator?
                                         result=0; // return that string                                          result=0; // return that string

Removed from v.1.100  
changed lines
  Added in v.1.109.2.1


E-mail: