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

version 1.103.8.4, 2005/11/16 14:38:43 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"
   
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 157  static const short yyprhs[] = {     0, Line 163  static const short yyprhs[] = {     0,
    230,   232,   234,   236,   238,   240,   242,   245,   247,   250,     230,   232,   234,   236,   238,   240,   242,   245,   247,   250,
    253,   255,   257,   260,   262,   264,   266,   268,   271,   274,     253,   255,   257,   260,   262,   264,   266,   268,   271,   274,
    275,   276,   282,   284,   286,   289,   292,   294,   296,   299,     275,   276,   282,   284,   286,   289,   292,   294,   296,   299,
    302,   304,   306,   308,   310,   314,   318,   322,   325,   328,     302,   304,   306,   308,   310,   312,   314,   318,   322,   326,
    331,   334,   337,   340,   343,   346,   350,   354,   358,   362,     329,   332,   335,   338,   341,   344,   347,   350,   354,   358,
    366,   370,   374,   378,   382,   386,   390,   394,   398,   402,     362,   366,   370,   374,   378,   382,   386,   390,   394,   398,
    406,   410,   414,   418,   422,   426,   430,   434,   438,   442,     402,   406,   410,   414,   418,   422,   426,   430,   434,   438,
    446,   450,   454,   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,   136,    87,     0,   126,      87,     0,    88,     0,    89,     0,   138,    89,     0,   128,
      0,   123,   126,     0,    50,    89,    93,     0,    90,     0,       0,   125,   128,     0,    52,    91,    95,     0,    92,     0,
     91,     0,    92,     0,   122,     0,    53,   122,     0,   136,      93,     0,    94,     0,   124,     0,    55,   124,     0,   138,
    122,     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,   139,    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,   139,       0,   122,     0,   119,    51,   122,     0,   123,     0,   141,
      0,    76,     0,   144,     0,     4,     0,   100,     0,   127,       0,    78,     0,   146,     0,     4,     0,   102,     0,   129,
      0,   123,   127,     0,   124,     0,   123,   124,     0,   125,       0,   125,   129,     0,   126,     0,   125,   126,     0,   127,
     53,     0,   127,     0,   127,     0,     4,     5,     0,     4,      55,     0,   129,     0,   129,     0,     4,     5,     0,     4,
      0,   128,     0,   129,     0,   130,     0,    50,   133,     0,       0,   130,     0,   131,     0,   132,     0,    52,   135,     0,
      4,   134,     0,     0,     0,    47,   131,    77,   132,    48,       4,   136,     0,     0,     0,    49,   133,    79,   134,    50,
      0,     4,     0,   135,     0,   134,   135,     0,    50,   133,       0,     4,     0,   137,     0,   136,   137,     0,    52,   135,
      0,   137,     0,   138,     0,     4,    57,     0,   137,    57,       0,   139,     0,   140,     0,     4,    59,     0,   139,    59,
      0,   140,     0,   141,     0,    81,     0,   104,     0,    58,       0,   142,     0,   143,     0,   147,     0,   148,     0,    83,
    142,    58,     0,    59,   142,    59,     0,    54,   140,    55,       0,   106,     0,    60,   144,    60,     0,    61,   144,    61,
      0,    37,   140,     0,    36,   140,     0,    43,   140,     0,       0,    56,   142,    57,     0,    39,   142,     0,    38,   142,
     44,   140,     0,    27,   140,     0,    28,   140,     0,    29,       0,    45,   142,     0,    46,   142,     0,    27,   142,     0,
    140,     0,    30,   140,     0,   140,    37,   140,     0,   140,      28,   142,     0,    29,   142,     0,    30,   142,     0,   142,
     36,   140,     0,   140,    38,   140,     0,   140,    39,   140,      39,   142,     0,   142,    38,   142,     0,   142,    40,   142,
      0,   140,    41,   140,     0,   140,    40,   140,     0,   140,       0,   142,    41,   142,     0,   142,    43,   142,     0,   142,
     19,   140,     0,   140,    20,   140,     0,   140,    35,   140,      42,   142,     0,   142,    19,   142,     0,   142,    20,   142,
      0,   140,    34,   140,     0,   140,    14,   140,     0,   140,       0,   142,    37,   142,     0,   142,    36,   142,     0,   142,
     11,   140,     0,   140,    12,   140,     0,   140,    13,   140,      14,   142,     0,   142,    11,   142,     0,   142,    12,   142,
      0,   140,    32,   140,     0,   140,    33,   140,     0,   140,       0,   142,    13,   142,     0,   142,    34,   142,     0,   142,
     15,   140,     0,   140,    16,   140,     0,   140,    17,   140,      35,   142,     0,   142,    15,   142,     0,   142,    16,   142,
      0,   140,    18,   140,     0,   140,    21,   140,     0,   140,       0,   142,    17,   142,     0,   142,    18,   142,     0,   142,
     22,   140,     0,   140,    23,   140,     0,   140,    24,   140,      21,   142,     0,   142,    22,   142,     0,   142,    23,   142,
      0,   140,    25,   140,     0,   140,    26,   140,     0,   140,       0,   142,    24,   142,     0,   142,    25,   142,     0,   142,
     31,   140,     0,     4,     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,   459,   463,   465,   466,   471,   471,   473,   473,   474,     451,   466,   470,   472,   473,   478,   478,   480,   480,   481,
    475,   483,   488,   490,   492,   493,   494,   496,   500,   509,     482,   490,   495,   497,   499,   500,   501,   503,   507,   516,
    512,   514,   520,   525,   525,   526,   531,   533,   535,   547,     519,   521,   527,   532,   532,   533,   538,   540,   542,   554,
    559,   560,   562,   563,   564,   565,   566,   568,   569,   570,     566,   567,   569,   570,   571,   572,   573,   574,   575,   577,
    571,   572,   573,   574,   575,   577,   578,   579,   580,   581,     578,   579,   580,   581,   582,   583,   584,   586,   587,   588,
    582,   583,   584,   585,   586,   587,   588,   589,   590,   591,     589,   590,   591,   592,   593,   594,   595,   596,   597,   598,
    592,   593,   594,   595,   596,   597,   598,   599,   600,   601,     599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
    602,   603,   606,   611,   620,   625,   626     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","name_expr_dive_code","name_path","name_step","name_advance1",  "code_param_value","name_expr_dive_code","name_path","name_step","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","double_or_STRING","string_inside_quotes_value","write_string",  "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  #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,   122,   123,   123,   124,     121,   122,   123,   123,   123,   124,   124,   125,   125,   126,
    125,   126,   126,   127,   127,   127,   127,   128,   129,   131,     127,   128,   128,   129,   129,   129,   129,   130,   131,   133,
    132,   130,   133,   134,   134,   135,   136,   136,   137,   138,     134,   132,   135,   136,   136,   137,   138,   138,   139,   140,
    139,   140,   140,   140,   140,   140,   140,   140,   140,   140,     141,   142,   142,   142,   142,   142,   142,   142,   142,   142,
    140,   140,   140,   140,   140,   140,   140,   140,   140,   140,     142,   142,   142,   142,   142,   142,   142,   142,   142,   142,
    140,   140,   140,   140,   140,   140,   140,   140,   140,   140,     142,   142,   142,   142,   142,   142,   142,   142,   142,   142,
    140,   140,   140,   140,   140,   140,   140,   140,   140,   140,     142,   142,   142,   142,   142,   142,   142,   142,   142,   142,
    140,   140,   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 302  static const short yyr2[] = {     0, Line 312  static const short yyr2[] = {     0,
      1,     1,     1,     1,     1,     1,     2,     1,     2,     2,       1,     1,     1,     1,     1,     1,     2,     1,     2,     2,
      1,     1,     2,     1,     1,     1,     1,     2,     2,     0,       1,     1,     2,     1,     1,     1,     1,     2,     2,     0,
      0,     5,     1,     1,     2,     2,     1,     1,     2,     2,       0,     5,     1,     1,     2,     2,     1,     1,     2,     2,
      1,     1,     1,     1,     3,     3,     3,     2,     2,     2,       1,     1,     1,     1,     1,     1,     3,     3,     3,     2,
      2,     2,     2,     2,     2,     3,     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,     1,     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,   104,   110,     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,    98,     0,      42,    43,     0,    48,    49,    50,    51,     0,    98,     0,
     45,    96,   105,   106,   107,     0,   117,   118,     0,     4,      45,    96,   105,   106,   107,     0,   117,   118,     0,     4,
     30,   167,   167,   167,   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,     113,   108,     0,     0,   102,     0,   104,    52,     0,    96,
     38,    57,   167,     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,      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,   116,   115,   111,    40,    97,   166,     0,   163,     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,   123,   124,     0,   121,   122,     0,    12,    14,    13,       0,   171,   171,   125,   126,     0,   121,   122,   123,   124,
     20,     0,    26,     0,    25,     0,   165,     0,    32,    58,       0,    12,    14,    13,    20,     0,    26,     0,    25,     0,
     64,    65,    66,    62,    61,   132,   133,   134,   135,   129,     167,     0,    32,    58,    64,    65,    66,    62,    61,   134,
    128,   130,   131,     0,   164,     0,     0,    60,     0,     0,     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,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,       0,     0,     0,     0,     0,     0,     0,     0,     0,    79,
      0,     0,     0,     0,     0,    79,   167,     0,     0,    74,     171,     0,     0,    74,    76,    77,    78,    24,    16,   112,
     76,    77,    78,    24,    16,   112,    68,     0,   127,   125,      68,     0,   129,   127,   128,   149,   150,   151,   148,   154,
    126,   147,   148,   149,   146,   152,   153,   154,   155,   142,     155,   156,   157,   144,   145,   158,   159,   160,   161,   162,
    143,   156,   157,   158,   159,   160,   161,   162,   150,   151,     163,   164,   152,   153,   147,   146,   139,   138,   140,   141,
    145,   144,   137,   136,   138,   139,   141,   140,   166,    92,     143,   142,   168,    92,     0,    88,     0,    86,    91,    72,
      0,    88,     0,    86,    91,    72,    75,   167,    59,   165,      75,   171,    59,   167,    95,    80,    84,    90,    93,   171,
     95,    80,    84,    90,    93,   167,    83,     0,    82,    17,      83,     0,    82,    17,   168,     0,    89,    87,    85,    81,
    166,     0,    89,    87,    85,    81,     0,     0,     0       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,   134,   155,    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,   198,    77,    78,   140,   241,      35,    36,    75,    76,   107,   202,    77,    78,   144,   245,
    142,   143,    17,   123,    49,   127,    88,   189,   190,   191,     146,   147,    17,   125,    49,   131,    88,   193,   194,   195,
    229,   252,   192,   193,   242,   233,   231,   243,   234,   232,     233,   256,   196,   197,   246,   237,   235,   247,   238,   236,
    244,    37,    64,    39,    40,    41,    65,    43,    44,    45,     248,    37,    64,    39,    40,    41,    65,    43,    44,    45,
     60,   136,    62,    58,    59,    66,    47,    48,   235,   125,      60,   140,    62,    58,    59,    66,    47,    48,   239,   127,
    126,   156,    19,   245,    20     128,   160,    19,   249,   129,   130,    20
 };  };
   
 static const short yypact[] = {     5,  static const short yypact[] = {     6,
 -32768,    22,    35,-32768,   -13,-32768,-32768,-32768,-32768,-32768,  -32768,    23,    50,-32768,   -17,-32768,-32768,-32768,-32768,-32768,
      8,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,      18,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     -9,     9,-32768,    36,    20,    44,-32768,-32768,    40,-32768,     -31,    19,-32768,    43,    42,    44,-32768,-32768,    52,-32768,
 -32768,-32768,   -29,-32768,-32768,-32768,-32768,    52,-32768,    -8,  -32768,-32768,   -33,-32768,-32768,-32768,-32768,    65,-32768,    22,
 -32768,     4,-32768,-32768,-32768,    52,    -3,-32768,    20,-32768,  -32768,     4,-32768,-32768,-32768,    65,    24,-32768,    42,-32768,
 -32768,    72,   120,    90,-32768,    36,-32768,    89,-32768,     8,  -32768,    97,   104,    64,-32768,    43,-32768,    78,-32768,    18,
 -32768,-32768,    92,    52,    88,    52,    89,-32768,    44,    88,  -32768,-32768,    77,    65,    88,    65,    78,-32768,    44,    88,
 -32768,-32768,     8,    99,-32768,-32768,-32768,-32768,    18,-32768,  -32768,-32768,    18,     5,-32768,-32768,-32768,-32768,    16,-32768,
 -32768,     4,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -32768,     4,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     32,-32768,   100,   102,-32768,    97,   101,-32768,   147,-32768,       8,-32768,    85,    86,-32768,   100,   117,-32768,   166,-32768,
 -32768,-32768,-32768,     8,-32768,    88,    13,   121,-32768,    99,  -32768,-32768,-32768,    18,-32768,    88,    27,   119,-32768,     5,
     99,    99,    99,    99,    99,    99,    99,    42,    99,     8,       5,     5,     5,-32768,-32768,     5,     5,     5,     5,    63,
      8,-32768,-32768,   117,   315,-32768,    54,-32768,-32768,-32768,       5,    18,    18,-32768,-32768,   114,   274,-32768,-32768,-32768,
 -32768,   148,-32768,   108,-32768,   150,   152,     8,    31,-32768,      79,-32768,-32768,-32768,-32768,   170,-32768,   137,-32768,   136,
 -32768,-32768,-32768,-32768,-32768,   443,   443,   443,   443,-32768,     138,    18,    60,-32768,-32768,-32768,-32768,-32768,-32768,   443,
 -32768,-32768,-32768,   270,-32768,   143,   144,-32768,    99,    99,     443,   443,   443,-32768,-32768,-32768,-32768,   141,-32768,   127,
     99,    99,    99,    99,    99,    99,    99,    99,    99,    99,     128,-32768,     5,     5,     5,     5,     5,     5,     5,     5,
     99,    99,    99,    99,    99,    99,    99,    99,    99,    99,       5,     5,     5,     5,     5,     5,     5,     5,     5,     5,
     99,    99,    99,    99,    99,-32768,     8,    99,    30,-32768,       5,     5,     5,     5,     5,     5,     5,     5,     5,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,     8,   154,-32768,-32768,      18,     5,    39,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,   374,   145,   346,   278,   402,   402,   415,   415,   179,      18,   140,-32768,-32768,-32768,   370,   340,   307,   428,   400,
    179,   402,   402,   402,   402,   415,   415,   443,   402,   402,     400,   413,   413,    98,    98,   400,   400,   400,   400,   413,
     76,   155,    93,    93,-32768,-32768,-32768,-32768,    15,-32768,     413,   443,   400,   400,   180,   453,   105,   105,-32768,-32768,
    -21,-32768,   -28,-32768,-32768,-32768,-32768,     8,-32768,    70,  -32768,-32768,    32,-32768,    35,-32768,   -32,-32768,-32768,-32768,
 -32768,   164,-32768,-32768,-32768,     8,-32768,    99,-32768,-32768,  -32768,    18,-32768,    70,-32768,   144,-32768,-32768,-32768,    18,
     15,   156,-32768,-32768,-32768,-32768,   221,   223,-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,   219,-32768,-32768,-32768,   134,-32768,-32768,-32768,  -32768,-32768,   199,-32768,-32768,-32768,   118,-32768,-32768,-32768,
 -32768,   172,-32768,-32768,-32768,     1,   -55,    -7,  -104,-32768,  -32768,   156,-32768,-32768,-32768,     1,   -55,    -7,  -104,-32768,
      0,-32768,-32768,    -5,-32768,-32768,   -36,-32768,-32768,-32768,       0,-32768,-32768,   -10,-32768,-32768,   -38,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   123,  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   108,
 -32768,-32768,-32768,     2,-32768,-32768,-32768,-32768,    38,-32768,  -32768,-32768,-32768,     2,-32768,-32768,-32768,-32768,    31,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   -23,   -16,   -12,  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   -30,   -25,   -22,
 -32768,   -11,    84,   -22,-32768,   -30,     3,-32768,-32768,-32768,  -32768,    72,   123,   -24,-32768,   -12,     3,-32768,-32768,-32768,
 -32768,-32768,   177,-32768,   178,   232,-32768,-32768,   163,    95,  -32768,-32768,   173,-32768,   172,   228,-32768,-32768,   158,    95,
 -32768,   122,-32768,   135,    -1  -32768,   111,-32768,   129,-32768,-32768,    28
 };  };
   
   
 #define YYLAST          484  #define YYLAST          496
   
   
 static const short yytable[] = {    15,  static const short yytable[] = {    15,
     10,    18,   139,    51,   104,    42,  -102,    81,     1,    84,      10,    18,   143,    51,   104,    42,  -102,    84,   109,     1,
     15,     1,    18,    55,    68,    80,   137,    72,   240,    63,      15,    89,    18,    80,    63,    72,    52,    53,   252,    73,
    248,    73,    55,    22,    74,    21,   249,   246,    70,    84,      55,     1,    74,    55,   253,    81,    21,    84,    70,     2,
    247,     2,   236,    81,    85,    89,    52,    53,    22,    61,     141,   110,   111,   112,   113,   244,   114,   115,    87,    80,
     82,    80,    71,    87,    83,    22,    80,    67,    42,     2,      82,   240,   116,   117,    80,    22,    61,    67,    42,   118,
     94,    98,   101,    86,     3,    79,  -101,     3,    56,    15,     119,    81,     2,    22,    71,  -171,   120,     3,  -101,    15,
      4,    18,     3,     4,     3,    57,    23,    56,     4,    24,     121,    18,     4,     4,   122,   123,    22,    56,    79,     3,
      4,   106,    15,   108,    18,    89,   186,  -167,   -67,   -67,      56,   106,    15,   108,    18,     4,    83,    57,     3,    94,
    187,    23,   197,   188,    24,    25,    38,    26,    23,   129,      98,   101,    86,     3,     4,   250,   201,   190,   251,     4,
     23,    24,    25,    24,   167,   168,    51,   135,    23,   138,      23,   191,    23,    24,   192,    24,    51,    68,    23,   142,
    186,    24,   109,    15,   187,    18,    15,   188,    18,    69,      89,    24,    25,    15,    26,    18,    15,    95,    18,   -67,
    179,   180,   181,   182,   183,   184,   185,   -94,   -94,    15,     -67,    23,    53,    23,    24,    25,    24,    85,   133,   -94,
     15,    18,    18,    95,   139,   110,   111,   112,   113,    38,     -94,    15,    15,    18,    18,    38,   139,   190,   143,    56,
    182,   183,   184,   185,   114,   115,    53,    15,    56,    18,     105,   191,   134,   -14,   192,   184,   185,   186,   187,   188,
   -101,   116,   117,   105,   131,   130,   139,   -14,   118,   132,     189,    15,  -101,    18,   186,   187,   188,   189,    69,   135,
    133,   194,   119,   195,     4,   159,   120,   121,   162,   163,     143,   163,   164,   165,   166,   167,   168,   169,   170,   171,
    164,   165,   166,   167,   168,   169,   170,   171,   172,   173,     172,   173,   174,   175,   176,   177,   178,   136,    38,   137,
    174,   158,   145,   167,   168,   175,   176,   177,   178,   179,     162,   179,   149,   198,   180,   181,   182,   183,   184,   185,
    180,   181,   182,   183,   184,   185,    15,   230,    18,    51,     186,   187,   188,   189,   199,   200,   204,   -63,   205,   243,
    180,   181,   182,   183,   184,   185,    15,   196,    18,   -63,      15,   234,    18,    51,   255,   260,   262,   203,   171,   172,
    200,   239,   201,   256,   146,   147,   148,   149,   150,   151,      15,   263,    18,    50,   150,   151,   152,   153,   132,   100,
    152,   153,   251,   154,   180,   181,   182,   183,   184,   185,     154,   155,   156,   157,   145,   158,   183,   184,   185,   186,
    258,   138,   259,    50,   128,   100,   237,   255,    15,   141,     187,   188,   189,   241,   259,   142,   258,   257,   102,   103,
     18,   254,   102,   253,    46,   103,   124,    15,   250,    18,      46,   126,    15,   161,    18,   148,     0,     0,     0,     0,
      0,   144,   157,   138,     0,    15,   230,    18,     0,     0,       0,    15,   254,    18,     0,     0,     0,   142,     0,    15,
     15,     0,    18,   202,   203,   204,   205,   206,   207,   208,     234,    18,     0,     0,    15,     0,    18,   206,   207,   208,
    209,   210,   211,   212,   213,   214,   215,   216,   217,   218,     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
    219,   220,   221,   222,   223,   224,   225,   226,   227,   228,     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
    159,   160,   161,   162,   163,   164,   165,   166,   167,   168,     229,   230,   231,   232,   163,   164,   165,   166,   167,   168,
    169,   170,   171,   172,   173,   174,   167,   168,     0,     0,     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
    175,   176,   177,   178,   179,   180,   181,   182,   183,   184,       0,     0,     0,     0,   179,     0,     0,   180,   181,   182,
    185,   178,   179,   180,   181,   182,   183,   184,   185,     0,     183,   184,   185,   186,   187,   188,   189,   163,   164,     0,
      0,     0,     0,     0,   199,   159,   160,   161,   162,   163,     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
    164,   165,   166,   167,   168,   169,   170,   171,   172,   173,     176,   177,   178,     0,     0,     0,     0,   179,     0,     0,
    174,     0,     0,     0,     0,   175,   176,   177,   178,   179,     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
    180,   181,   182,   183,   184,   185,   159,   160,     0,   162,     163,     0,     0,   166,   167,   168,   169,   170,   171,   172,
    163,   164,   165,   166,   167,   168,   169,   170,   171,   172,     173,   174,   175,   176,   177,   178,     0,     0,     0,     0,
    173,   174,     0,     0,     0,     0,   175,   176,   177,   178,     179,     0,     0,   180,   181,   182,   183,   184,   185,   186,
    179,   180,   181,   182,   183,   184,   185,   162,   163,   164,     187,   188,   189,   166,   167,   168,   169,   170,   171,   172,
    165,   166,   167,   168,   169,   170,   171,   172,   173,   174,     173,   174,   175,   176,   177,   178,     0,     0,     0,     0,
      0,     0,     0,     0,   175,   176,   177,   178,   179,   180,     179,     0,     0,   180,   181,   182,   183,   184,   185,   186,
    181,   182,   183,   184,   185,   162,     0,     0,   165,   166,     187,   188,   189,   166,     0,     0,   169,   170,   171,   172,
    167,   168,     0,     0,     0,     0,   173,   174,   162,     0,       0,     0,     0,     0,   177,   178,   166,     0,     0,     0,
      0,     0,   175,   167,   168,   178,   179,   180,   181,   182,     179,   171,   172,     0,     0,   182,   183,   184,   185,   186,
    183,   184,   185,     0,     0,   175,     0,     0,   178,   179,     187,   188,   189,   179,     0,     0,   171,   172,   182,   183,
    180,   181,   182,   183,   184,   185,   162,     0,     0,     0,     184,   185,   186,   187,   188,   189,   166,     0,     0,     0,
      0,   167,   168,     0,     0,     0,     0,     0,     0,     0,       0,   171,   172,   182,   183,   184,   185,   186,   187,   188,
      0,     0,     0,     0,     0,     0,   178,   179,   180,   181,     189,   171,   172,     0,     0,     0,     0,     0,   182,   183,
    182,   183,   184,   185     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,    38,     4,    46,       0,     0,   107,    11,    60,     3,     3,    46,     4,     4,
     11,     4,    11,     5,    26,    38,     4,    47,     4,    25,      11,     4,    11,    38,    25,    49,    48,    49,    51,    53,
     49,    51,     5,     4,    54,     4,    55,    49,    26,    66,       5,     4,    56,     5,    57,    38,     4,    66,    26,    47,
     52,    45,     3,    64,    46,     4,    46,    47,     4,     4,       4,    27,    28,    29,    30,     4,    32,    33,    49,    64,
     38,    64,     3,    49,    53,     4,    69,     4,    46,    45,      38,     3,    38,    39,    69,     4,     4,     4,    46,    45,
     52,    53,    54,    57,    50,     4,    53,    50,    50,    60,      46,    64,    47,     4,     3,    48,    52,    52,    55,    60,
     56,    60,    50,    56,    50,    57,    47,    50,    56,    50,      56,    60,    58,    58,    60,    61,     4,    52,     4,    52,
     56,    69,    73,    73,    73,     4,    47,    46,    48,    49,      52,    69,    73,    73,    73,    58,    55,    59,    52,    52,
     51,    47,   138,    54,    50,    51,     3,    53,    47,    91,      53,    54,    59,    52,    58,    51,   142,    49,    54,    58,
     47,    50,    51,    50,    19,    20,   104,    99,    47,   107,      49,    53,    49,    52,    56,    52,   104,    26,    49,   107,
     47,    50,     4,   104,    51,   104,   107,    54,   107,    26,       4,    52,    53,   104,    55,   104,   107,     4,   107,    50,
     35,    36,    37,    38,    39,    40,    41,    48,    49,   120,      51,    49,    49,    49,    52,    53,    52,    46,    91,    50,
    121,   120,   121,     4,   229,    27,    28,    29,    30,    46,      51,   122,   123,   122,   123,     3,    99,    49,   233,    52,
     38,    39,    40,    41,    36,    37,    47,   138,    50,   138,      54,    53,    48,    48,    56,    38,    39,    40,    41,    42,
     53,    43,    44,    52,    48,    46,   251,    46,    50,    49,      43,   142,    55,   142,    40,    41,    42,    43,    26,    50,
      4,     4,    54,    46,    56,    11,    58,    59,    14,    15,     255,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,      20,    21,    22,    23,    24,    25,    26,    51,    46,     4,
     26,    55,    52,    19,    20,    31,    32,    33,    34,    35,      57,    31,    54,     4,    34,    35,    36,    37,    38,    39,
     36,    37,    38,    39,    40,    41,   187,   187,   187,   197,      40,    41,    42,    43,    48,    50,    60,    50,    61,    50,
     36,    37,    38,    39,    40,    41,   197,    48,   197,    48,     191,   191,   191,   201,    51,    50,     0,    57,    19,    20,
     58,    48,    59,    48,   110,   111,   112,   113,   114,   115,     201,     0,   201,     5,   110,   111,   112,   113,    91,    54,
    116,   117,    49,   119,    36,    37,    38,    39,    40,    41,     116,   117,   118,   119,   107,   121,    37,    38,    39,    40,
      0,   229,     0,     5,    91,    54,   189,   251,   229,   107,      41,    42,    43,   193,   255,   233,   252,   250,    56,    58,
    229,   248,    56,   246,     3,    58,    74,   238,   238,   238,       3,    74,   233,   123,   233,   107,    -1,    -1,    -1,    -1,
     -1,   107,   121,   251,    -1,   246,   246,   246,    -1,    -1,      -1,   242,   242,   242,    -1,    -1,    -1,   255,    -1,   250,
    251,    -1,   251,   159,   160,   161,   162,   163,   164,   165,     250,   250,    -1,    -1,   255,    -1,   255,   163,   164,   165,
    166,   167,   168,   169,   170,   171,   172,   173,   174,   175,     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
    176,   177,   178,   179,   180,   181,   182,   183,   184,   185,     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,  
     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,  
     41,    34,    35,    36,    37,    38,    39,    40,    41,    -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,    14,    15,    16,  
     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     -1,    -1,    -1,    -1,    31,    32,    33,    34,    35,    36,      -1,    -1,    -1,    -1,    31,    -1,    -1,    34,    35,    36,
     37,    38,    39,    40,    41,    14,    -1,    -1,    17,    18,      37,    38,    39,    40,    41,    42,    43,    11,    12,    -1,
     19,    20,    -1,    -1,    -1,    -1,    25,    26,    14,    -1,      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     -1,    -1,    31,    19,    20,    34,    35,    36,    37,    38,      24,    25,    26,    -1,    -1,    -1,    -1,    31,    -1,    -1,
     39,    40,    41,    -1,    -1,    31,    -1,    -1,    34,    35,      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
     36,    37,    38,    39,    40,    41,    14,    -1,    -1,    -1,      11,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
     -1,    19,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,      21,    22,    23,    24,    25,    26,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,      31,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
     38,    39,    40,    41      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  #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"
 {  {
         YYSTYPE expr_code=yyvsp[0];          YYSTYPE expr_code=yyvsp[0];
         if(expr_code->count()==3          if(expr_code->count()==3
                 && (*expr_code)[0].code==OP_VALUE) { // optimizing (double) case. [OP_VALUE+origin+Double]                  && (*expr_code)[0].code==OP_VALUE) { // optimizing (double/bool/incidently 'string' too) case. [OP_VALUE+origin+Double]
                 yyval=expr_code;                   yyval=expr_code; 
                 O(*yyval, OP_STORE_PARAM); // no evaluating                  O(*yyval, OP_STORE_PARAM); // no evaluating
         } else {          } else {
Line 1434  case 91: Line 1449  case 91:
 ;  ;
     break;}      break;}
 case 92:  case 92:
 #line 459 "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 97:  case 97:
 #line 471 "compile.y"  #line 478 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 99:  case 99:
 #line 473 "compile.y"  #line 480 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 101:  case 101:
 #line 475 "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 1460  case 101: Line 1475  case 101:
 ;  ;
     break;}      break;}
 case 102:  case 102:
 #line 483 "compile.y"  #line 490 "compile.y"
 {  {
         /* stack: context */          /* stack: context */
         yyval=yyvsp[0]; /* stack: context,name */          yyval=yyvsp[0]; /* stack: context,name */
Line 1468  case 102: Line 1483  case 102:
 ;  ;
     break;}      break;}
 case 108:  case 108:
 #line 496 "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 109:  case 109:
 #line 500 "compile.y"  #line 507 "compile.y"
 {  {
         ArrayOperation* code;          ArrayOperation* code;
         {          {
Line 1487  case 109: Line 1502  case 109:
 ;  ;
     break;}      break;}
 case 110:  case 110:
 #line 509 "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 111:  case 111:
 #line 512 "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 112:  case 112:
 #line 514 "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 1509  case 112: Line 1524  case 112:
 ;  ;
     break;}      break;}
 case 113:  case 113:
 #line 520 "compile.y"  #line 527 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         O(*yyval, OP_WITH_READ);          O(*yyval, OP_WITH_READ);
Line 1517  case 113: Line 1532  case 113:
 ;  ;
     break;}      break;}
 case 115:  case 115:
 #line 525 "compile.y"  #line 532 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 116:  case 116:
 #line 526 "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 119:  case 119:
 #line 535 "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 1543  case 119: Line 1558  case 119:
 ;  ;
     break;}      break;}
 case 120:  case 120:
 #line 547 "compile.y"  #line 554 "compile.y"
 {  {
         yyval=yyvsp[-1];          yyval=yyvsp[-1];
         if(!PC.in_call_value) {          if(!PC.in_call_value) {
Line 1553  case 120: Line 1568  case 120:
         O(*yyval, OP_PREPARE_TO_CONSTRUCT_OBJECT);          O(*yyval, OP_PREPARE_TO_CONSTRUCT_OBJECT);
 ;  ;
     break;}      break;}
 case 125:  case 127:
 #line 564 "compile.y"  #line 573 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1] ;
     break;}      break;}
 case 126:  case 128:
 #line 565 "compile.y"  #line 574 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1] ;
     break;}      break;}
 case 127:  case 129:
 #line 566 "compile.y"  #line 575 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 128:  case 130:
 #line 568 "compile.y"  #line 577 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_NEG) ;  { yyval=yyvsp[0];  O(*yyval, OP_NEG) ;
     break;}      break;}
 case 129:  case 131:
 #line 569 "compile.y"  #line 578 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 130:  case 132:
 #line 570 "compile.y"  #line 579 "compile.y"
 { yyval=yyvsp[0];        O(*yyval, OP_INV) ;  { yyval=yyvsp[0];        O(*yyval, OP_INV) ;
     break;}      break;}
 case 131:  case 133:
 #line 571 "compile.y"  #line 580 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_NOT) ;  { yyval=yyvsp[0];  O(*yyval, OP_NOT) ;
     break;}      break;}
 case 132:  case 134:
 #line 572 "compile.y"  #line 581 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_DEF) ;  { yyval=yyvsp[0];  O(*yyval, OP_DEF) ;
     break;}      break;}
 case 133:  case 135:
 #line 573 "compile.y"  #line 582 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_IN) ;  { yyval=yyvsp[0];  O(*yyval, OP_IN) ;
     break;}      break;}
 case 134:  case 136:
 #line 574 "compile.y"  #line 583 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_FEXISTS) ;  { yyval=yyvsp[0];  O(*yyval, OP_FEXISTS) ;
     break;}      break;}
 case 135:  case 137:
 #line 575 "compile.y"  #line 584 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_DEXISTS) ;  { yyval=yyvsp[0];  O(*yyval, OP_DEXISTS) ;
     break;}      break;}
 case 136:  case 138:
 #line 577 "compile.y"  #line 586 "compile.y"
 {       yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_SUB) ;  {       yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_SUB) ;
     break;}      break;}
 case 137:  case 139:
 #line 578 "compile.y"  #line 587 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_ADD) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_ADD) ;
     break;}      break;}
 case 138:  case 140:
 #line 579 "compile.y"  #line 588 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_MUL) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_MUL) ;
     break;}      break;}
 case 139:  case 141:
 #line 580 "compile.y"  #line 589 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_DIV) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_DIV) ;
     break;}      break;}
 case 140:  case 142:
 #line 581 "compile.y"  #line 590 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_MOD) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_MOD) ;
     break;}      break;}
 case 141:  case 143:
 #line 582 "compile.y"  #line 591 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_INTDIV) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_INTDIV) ;
     break;}      break;}
 case 142:  case 144:
 #line 583 "compile.y"  #line 592 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_SL) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_BIN_SL) ;
     break;}      break;}
 case 143:  case 145:
 #line 584 "compile.y"  #line 593 "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_SR) ;
     break;}      break;}
 case 144:  case 146:
 #line 585 "compile.y"  #line 594 "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_AND) ;
     break;}      break;}
 case 145:  case 147:
 #line 586 "compile.y"  #line 595 "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_OR) ;
     break;}      break;}
 case 146:  case 148:
 #line 587 "compile.y"  #line 596 "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_XOR) ;
     break;}      break;}
 case 147:  case 149:
 #line 588 "compile.y"  #line 597 "compile.y"
 { yyval=yyvsp[-2];  OA(*yyval, OP_NESTED_CODE, yyvsp[0]);  O(*yyval, OP_LOG_AND) ;  { yyval=yyvsp[-2];  OA(*yyval, OP_NESTED_CODE, yyvsp[0]);  O(*yyval, OP_LOG_AND) ;
     break;}      break;}
 case 148:  case 150:
 #line 589 "compile.y"  #line 598 "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_OR) ;
     break;}      break;}
 case 149:  case 151:
 #line 590 "compile.y"  #line 599 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_LOG_XOR) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_LOG_XOR) ;
     break;}      break;}
 case 150:  case 152:
 #line 591 "compile.y"  #line 600 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_LT) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_NUM_LT) ;
     break;}      break;}
 case 151:  case 153:
 #line 592 "compile.y"  #line 601 "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_GT) ;
     break;}      break;}
 case 152:  case 154:
 #line 593 "compile.y"  #line 602 "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_LE) ;
     break;}      break;}
 case 153:  case 155:
 #line 594 "compile.y"  #line 603 "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_GE) ;
     break;}      break;}
 case 154:  case 156:
 #line 595 "compile.y"  #line 604 "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_EQ) ;
     break;}      break;}
 case 155:  case 157:
 #line 596 "compile.y"  #line 605 "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_NE) ;
     break;}      break;}
 case 156:  case 158:
 #line 597 "compile.y"  #line 606 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_LT) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_STR_LT) ;
     break;}      break;}
 case 157:  case 159:
 #line 598 "compile.y"  #line 607 "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_GT) ;
     break;}      break;}
 case 158:  case 160:
 #line 599 "compile.y"  #line 608 "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_LE) ;
     break;}      break;}
 case 159:  case 161:
 #line 600 "compile.y"  #line 609 "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_GE) ;
     break;}      break;}
 case 160:  case 162:
 #line 601 "compile.y"  #line 610 "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_EQ) ;
     break;}      break;}
 case 161:  case 163:
 #line 602 "compile.y"  #line 611 "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_NE) ;
     break;}      break;}
 case 162:  case 164:
 #line 603 "compile.y"  #line 612 "compile.y"
 { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_IS) ;  { yyval=yyvsp[-2];  P(*yyval, *yyvsp[0]);  O(*yyval, OP_IS) ;
     break;}      break;}
 case 163:  case 165:
 #line 606 "compile.y"  #line 615 "compile.y"
 {  {
         // optimized from OP_STRING->OP_VALUE for doubles          // optimized from OP_STRING->OP_VALUE for doubles
         maybe_change_string_literal_to_double_literal(*(yyval=yyvsp[0]));          maybe_change_string_literal_to_double_literal(*(yyval=yyvsp[0]));
 ;  ;
     break;}      break;}
 case 164:  case 166:
 #line 611 "compile.y"  #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 1721  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 620 "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 625 "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 626 "compile.y"  #line 638 "compile.y"
 { yyval=N() ;  { yyval=N() ;
     break;}      break;}
 }  }
Line 1958  yyerrhandle: Line 1981  yyerrhandle:
     }      }
   return 1;    return 1;
 }  }
 #line 628 "compile.y"  #line 640 "compile.y"
   
 #endif  #endif
   
Line 2080  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 2400  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.103.8.4  
changed lines
  Added in v.1.109.2.1


E-mail: