Diff for /parser3/src/main/compile.tab.C between versions 1.85 and 1.103

version 1.85, 2003/07/24 11:36:33 version 1.103, 2004/06/18 15:55:47
Line 11 Line 11
 #define BAD_HEX_LITERAL 261  #define BAD_HEX_LITERAL 261
 #define BAD_METHOD_DECL_START   262  #define BAD_METHOD_DECL_START   262
 #define BAD_METHOD_PARAMETER_NAME_CHARACTER     263  #define BAD_METHOD_PARAMETER_NAME_CHARACTER     263
 #define BAD_MATH_OPERATOR_CHARACTER     264  #define BAD_NONWHITESPACE_CHARACTER_IN_EXPLICIT_RESULT_MODE     264
 #define LAND    265  #define LAND    265
 #define LOR     266  #define LOR     266
 #define LXOR    267  #define LXOR    267
Line 86  static int real_yyerror(Parse_control* p Line 86  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);
   
   
 // 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 106  static int yylex(YYSTYPE* lvalp, void* p Line 105  static int yylex(YYSTYPE* lvalp, void* p
   
   
   
 #define YYFINAL         252  #define YYFINAL         259
 #define YYFLAG          -32768  #define YYFLAG          -32768
 #define YYNTBASE        60  #define YYNTBASE        60
   
 #define YYTRANSLATE(x) ((unsigned)(x) <= 286 ? yytranslate[x] : 139)  #define YYTRANSLATE(x) ((unsigned)(x) <= 286 ? yytranslate[x] : 146)
   
 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,    46,
Line 147  static const char yytranslate[] = { Line 146  static const char yytranslate[] = {
 #if YYDEBUG != 0  #if YYDEBUG != 0
 static const short yyprhs[] = {     0,  static const short yyprhs[] = {     0,
      0,     2,     4,     6,     9,    11,    13,    15,    20,    22,       0,     2,     4,     6,     9,    11,    13,    15,    20,    22,
     24,    26,    29,    32,    34,    36,    44,    46,    48,    52,      24,    26,    29,    32,    34,    36,    37,    46,    48,    50,
     54,    56,    58,    62,    64,    66,    68,    70,    72,    75,      54,    56,    58,    60,    64,    66,    68,    70,    72,    74,
     77,    79,    81,    83,    85,    87,    90,    93,    95,    99,      77,    79,    81,    83,    85,    87,    89,    92,    95,    97,
    101,   103,   105,   108,   110,   113,   117,   119,   121,   123,     101,   103,   105,   107,   110,   112,   115,   119,   121,   123,
    125,   128,   131,   133,   135,   137,   141,   145,   149,   151,     125,   127,   130,   133,   135,   137,   139,   140,   141,   147,
    153,   155,   157,   159,   161,   164,   166,   167,   168,   175,     151,   155,   157,   159,   161,   163,   165,   167,   170,   172,
    177,   179,   182,   184,   186,   188,   192,   196,   200,   202,     173,   174,   181,   183,   185,   188,   190,   192,   194,   195,
    206,   208,   212,   214,   218,   220,   222,   224,   226,   228,     196,   202,   206,   210,   212,   216,   218,   222,   224,   228,
    230,   232,   234,   237,   239,   242,   245,   247,   249,   252,     230,   232,   234,   236,   238,   240,   242,   244,   247,   249,
    254,   256,   258,   260,   263,   266,   270,   272,   274,   277,     252,   255,   257,   259,   262,   264,   266,   268,   270,   273,
    280,   282,   284,   287,   290,   292,   294,   296,   298,   302,     276,   277,   278,   284,   286,   288,   291,   294,   296,   298,
    306,   310,   313,   316,   319,   322,   325,   328,   331,   334,     301,   304,   306,   308,   310,   312,   316,   320,   324,   327,
    338,   342,   346,   350,   354,   358,   362,   366,   370,   374,     330,   333,   336,   339,   342,   345,   348,   352,   356,   360,
    378,   382,   386,   390,   394,   398,   402,   406,   410,   414,     364,   368,   372,   376,   380,   384,   388,   392,   396,   400,
    418,   422,   426,   430,   434,   438,   442,   444,   446,   447     404,   408,   412,   416,   420,   424,   428,   432,   436,   440,
      444,   448,   452,   456,   458,   460,   461
 };  };
   
 static const short yyrhs[] = {    62,  static const short yyrhs[] = {    62,
      0,    61,     0,    63,     0,    61,    63,     0,    75,     0,       0,    61,     0,    63,     0,    61,    63,     0,    76,     0,
     64,     0,    69,     0,    45,     4,    46,    65,     0,   138,      64,     0,    69,     0,    45,     4,    46,    65,     0,   145,
      0,    66,     0,    67,     0,    66,    67,     0,    68,    46,       0,    66,     0,    67,     0,    66,    67,     0,    68,    46,
      0,   138,     0,     4,     0,    45,     4,    71,    70,    74,       0,   145,     0,     4,     0,     0,    45,     4,    72,    71,
     46,    75,     0,   138,     0,    71,     0,    47,    72,    48,      75,    46,    70,    76,     0,   145,     0,    72,     0,    47,
      0,   138,     0,    73,     0,     4,     0,    73,    49,     4,      73,    48,     0,   145,     0,    74,     0,     4,     0,    74,
      0,   138,     0,     4,     0,   138,     0,    76,     0,    77,      49,     4,     0,   145,     0,     4,     0,   145,     0,    77,
      0,    76,    77,     0,   136,     0,    78,     0,    79,     0,       0,    78,     0,    77,    78,     0,   143,     0,    79,     0,
     87,     0,   100,     0,    80,     0,    50,    81,     0,    83,      80,     0,    88,     0,   103,     0,    81,     0,    50,    82,
      3,     0,    82,     0,    51,    83,    52,     0,    84,     0,       0,    84,     3,     0,    83,     0,    51,    84,    52,     0,
     85,     0,    86,     0,   130,    86,     0,   122,     0,   119,      85,     0,    86,     0,    87,     0,   137,    87,     0,   127,
    122,     0,    50,    88,    92,     0,    89,     0,    90,     0,       0,   124,   127,     0,    50,    89,    93,     0,    90,     0,
     91,     0,   118,     0,    53,   118,     0,   130,   118,     0,      91,     0,    92,     0,   123,     0,    53,   123,     0,   137,
     93,     0,    94,     0,    95,     0,    47,    96,    48,     0,     123,     0,    94,     0,    97,     0,    98,     0,     0,     0,
     54,   133,    55,     0,    51,    75,    52,     0,   137,     0,      47,    95,    99,    96,    48,     0,    54,   140,    55,     0,
      4,     0,    97,     0,    98,     0,    99,     0,    78,     0,      51,    76,    52,     0,   144,     0,     4,     0,   100,     0,
     77,    76,     0,   101,     0,     0,     0,    56,   102,   104,     101,     0,   102,     0,    79,     0,    78,    77,     0,   104,
    103,   105,     3,     0,    83,     0,   106,     0,   105,   106,       0,     0,     0,    56,   105,   107,   106,   108,     3,     0,
      0,   107,     0,   108,     0,   109,     0,    47,   110,    48,      84,     0,   109,     0,   108,   109,     0,   110,     0,   113,
      0,    54,   111,    55,     0,    51,   112,    52,     0,   113,       0,   114,     0,     0,     0,    47,   111,   115,   112,    48,
      0,   110,    49,   113,     0,   114,     0,   111,    49,   114,       0,    54,   116,    55,     0,    51,   117,    52,     0,   118,
      0,   115,     0,   112,    49,   115,     0,   116,     0,   117,       0,   115,    49,   118,     0,   119,     0,   116,    49,   119,
      0,    75,     0,   137,     0,     4,     0,    97,     0,   133,       0,   120,     0,   117,    49,   120,     0,   121,     0,   122,
      0,   123,     0,   119,   123,     0,   120,     0,   119,   120,       0,    76,     0,   144,     0,     4,     0,   100,     0,   140,
      0,   121,    53,     0,   123,     0,   123,     0,     4,     5,       0,   128,     0,   124,   128,     0,   125,     0,   124,   125,
      0,     4,     0,   124,     0,   125,     0,   126,     0,    50,       0,   126,    53,     0,   128,     0,   128,     0,     4,     5,
    127,     0,     4,   128,     0,    47,    76,    48,     0,     4,       0,     4,     0,   129,     0,   130,     0,   131,     0,    50,
      0,   129,     0,   128,   129,     0,    50,   127,     0,   131,     134,     0,     4,   135,     0,     0,     0,    47,   132,    77,
      0,   132,     0,     4,    57,     0,   131,    57,     0,   134,     133,    48,     0,     4,     0,   136,     0,   135,   136,     0,
      0,     4,     0,    80,     0,   101,     0,    58,   135,    58,      50,   134,     0,   138,     0,   139,     0,     4,    57,     0,
      0,    59,   135,    59,     0,    54,   134,    55,     0,    37,     138,    57,     0,   141,     0,     4,     0,    81,     0,   104,
    134,     0,    36,   134,     0,    43,   134,     0,    44,   134,       0,    58,   142,    58,     0,    59,   142,    59,     0,    54,
      0,    27,   134,     0,    28,   134,     0,    29,   134,     0,     141,    55,     0,    37,   141,     0,    36,   141,     0,    43,
     30,   134,     0,   134,    37,   134,     0,   134,    36,   134,     141,     0,    44,   141,     0,    27,   141,     0,    28,   141,
      0,   134,    38,   134,     0,   134,    39,   134,     0,   134,       0,    29,   141,     0,    30,   141,     0,   141,    37,   141,
     41,   134,     0,   134,    40,   134,     0,   134,    19,   134,       0,   141,    36,   141,     0,   141,    38,   141,     0,   141,
      0,   134,    20,   134,     0,   134,    35,   134,     0,   134,      39,   141,     0,   141,    41,   141,     0,   141,    40,   141,
     34,   134,     0,   134,    14,   134,     0,   134,    11,   134,       0,   141,    19,   141,     0,   141,    20,   141,     0,   141,
      0,   134,    12,   134,     0,   134,    13,   134,     0,   134,      35,   141,     0,   141,    34,   141,     0,   141,    14,   141,
     32,   134,     0,   134,    33,   134,     0,   134,    15,   134,       0,   141,    11,   141,     0,   141,    12,   141,     0,   141,
      0,   134,    16,   134,     0,   134,    17,   134,     0,   134,      13,   141,     0,   141,    32,   141,     0,   141,    33,   141,
     18,   134,     0,   134,    21,   134,     0,   134,    22,   134,       0,   141,    15,   141,     0,   141,    16,   141,     0,   141,
      0,   134,    23,   134,     0,   134,    24,   134,     0,   134,      17,   141,     0,   141,    18,   141,     0,   141,    21,   141,
     25,   134,     0,   134,    26,   134,     0,   134,    31,   134,       0,   141,    22,   141,     0,   141,    23,   141,     0,   141,
      0,    75,     0,     4,     0,     0,     0      24,   141,     0,   141,    25,   141,     0,   141,    26,   141,
        0,   141,    31,   141,     0,    76,     0,     4,     0,     0,
        0
 };  };
   
 #endif  #endif
   
 #if YYDEBUG != 0  #if YYDEBUG != 0
 static const short yyrline[] = { 0,  static const short yyrline[] = { 0,
    121,   129,   131,   131,   132,   134,   134,   136,   208,   208,     120,   128,   130,   130,   131,   133,   133,   135,   207,   207,
    209,   209,   210,   211,   211,   213,   242,   242,   243,   244,     208,   208,   209,   210,   210,   212,   247,   252,   252,   253,
    244,   245,   245,   247,   247,   251,   251,   253,   253,   254,     254,   254,   255,   255,   257,   257,   261,   261,   263,   263,
    254,   255,   255,   255,   259,   266,   267,   267,   268,   269,     264,   264,   265,   265,   265,   269,   276,   277,   277,   278,
    271,   272,   294,   295,   295,   299,   303,   305,   306,   307,     279,   281,   282,   304,   305,   305,   309,   313,   315,   316,
    324,   329,   331,   333,   334,   336,   342,   350,   356,   358,     317,   334,   339,   341,   343,   344,   346,   349,   351,   357,
    359,   361,   367,   368,   368,   372,   378,   381,   384,   397,     365,   371,   373,   374,   376,   382,   383,   383,   387,   393,
    399,   399,   400,   402,   403,   405,   406,   407,   408,   410,     396,   399,   412,   414,   414,   415,   417,   418,   420,   423,
    412,   414,   416,   418,   420,   424,   428,   432,   434,   435,     425,   426,   427,   428,   430,   432,   434,   436,   438,   440,
    437,   446,   446,   448,   448,   449,   450,   458,   463,   465,     444,   448,   452,   454,   455,   457,   466,   466,   468,   468,
    467,   468,   469,   471,   475,   484,   490,   495,   495,   496,     469,   470,   478,   483,   485,   487,   488,   489,   491,   495,
    501,   503,   505,   517,   529,   534,   536,   537,   538,   539,     504,   507,   509,   515,   520,   520,   521,   526,   528,   530,
    540,   542,   543,   544,   545,   546,   547,   548,   549,   551,     542,   554,   559,   561,   562,   563,   564,   565,   567,   568,
    552,   553,   554,   555,   556,   557,   558,   559,   560,   561,     569,   570,   571,   572,   573,   574,   576,   577,   578,   579,
    562,   563,   564,   565,   566,   567,   568,   569,   570,   571,     580,   581,   582,   583,   584,   585,   586,   587,   588,   589,
    572,   573,   574,   575,   576,   577,   580,   589,   594,   595     590,   591,   592,   593,   594,   595,   596,   597,   598,   599,
      600,   601,   602,   605,   614,   619,   620
 };  };
 #endif  #endif
   
Line 240  static const short yyrline[] = { 0, Line 243  static const short yyrline[] = { 0,
   
 static const char * const yytname[] = {   "$","error","$undefined.","EON","STRING",  static const char * const yytname[] = {   "$","error","$undefined.","EON","STRING",
 "BOGUS","BAD_STRING_COMPARISON_OPERATOR","BAD_HEX_LITERAL","BAD_METHOD_DECL_START",  "BOGUS","BAD_STRING_COMPARISON_OPERATOR","BAD_HEX_LITERAL","BAD_METHOD_DECL_START",
 "BAD_METHOD_PARAMETER_NAME_CHARACTER","BAD_MATH_OPERATOR_CHARACTER","\"&&\"",  "BAD_METHOD_PARAMETER_NAME_CHARACTER","BAD_NONWHITESPACE_CHARACTER_IN_EXPLICIT_RESULT_MODE",
 "\"||\"","\"!||\"","\"!|\"","\"<=\"","\">=\"","\"==\"","\"!=\"","\"<<\"","\">>\"",  "\"&&\"","\"||\"","\"!||\"","\"!|\"","\"<=\"","\">=\"","\"==\"","\"!=\"","\"<<\"",
 "\"lt\"","\"gt\"","\"le\"","\"ge\"","\"eq\"","\"ne\"","\"def\"","\"in\"","\"-f\"",  "\">>\"","\"lt\"","\"gt\"","\"le\"","\"ge\"","\"eq\"","\"ne\"","\"def\"","\"in\"",
 "\"-d\"","\"is\"","'<'","'>'","'|'","'&'","'+'","'-'","'*'","'/'","'\\\\'","'%'",  "\"-f\"","\"-d\"","\"is\"","'<'","'>'","'|'","'&'","'+'","'-'","'*'","'/'","'\\\\'",
 "NUNARY","'~'","'!'","'@'","'\\n'","'['","']'","';'","'$'","'{'","'}'","'.'",  "'%'","NUNARY","'~'","'!'","'@'","'\\n'","'['","']'","';'","'$'","'{'","'}'",
 "'('","')'","'^'","':'","'\\\"'","'\\''","all","methods","one_big_piece","method",  "'.'","'('","')'","'^'","':'","'\\\"'","'\\''","all","methods","one_big_piece",
 "control_method","maybe_control_strings","control_strings","control_string",  "method","control_method","maybe_control_strings","control_strings","control_string",
 "maybe_string","code_method","maybe_bracketed_strings","bracketed_maybe_strings",  "maybe_string","code_method","@1","maybe_bracketed_strings","bracketed_maybe_strings",
 "maybe_strings","strings","maybe_comment","maybe_codes","codes","code","action",  "maybe_strings","strings","maybe_comment","maybe_codes","codes","code","action",
 "get","get_value","get_name_value","name_in_curly_rdive","name_without_curly_rdive",  "get","get_value","get_name_value","name_in_curly_rdive","name_without_curly_rdive",
 "name_without_curly_rdive_read","name_without_curly_rdive_class","name_without_curly_rdive_code",  "name_without_curly_rdive_read","name_without_curly_rdive_class","name_without_curly_rdive_code",
 "put","name_expr_wdive","name_expr_wdive_root","name_expr_wdive_write","name_expr_wdive_class",  "put","name_expr_wdive","name_expr_wdive_root","name_expr_wdive_write","name_expr_wdive_class",
 "construct","construct_square","construct_round","construct_curly","any_constructor_code_value",  "construct","construct_square","@2","@3","construct_round","construct_curly",
 "constructor_code_value","constructor_code","codes__excluding_sole_str_literal",  "any_constructor_code_value","constructor_code_value","constructor_code","codes__excluding_sole_str_literal",
 "call","call_value","@1","@2","call_name","store_params","store_param","store_square_param",  "call","call_value","@4","@5","call_name","store_params","store_param","store_square_param",
 "store_round_param","store_curly_param","store_code_param_parts","store_expr_param_parts",  "@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","write_expr_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_advance1","name_advance2","name_expr_value","name_expr_subvar_value","name_expr_with_subvar_value",
 "name_square_code_value","subvar_ref_name_rdive","subvar_get_writes","subvar__get_write",  "name_square_code_value","@8","@9","subvar_ref_name_rdive","subvar_get_writes",
 "class_prefix","class_static_prefix","class_constructor_prefix","expr_value",  "subvar__get_write","class_prefix","class_static_prefix","class_constructor_prefix",
 "expr","string_inside_quotes_value","write_string","void_value","empty", NULL  "expr_value","expr","string_inside_quotes_value","write_string","void_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,      60,    60,    61,    61,    62,    63,    63,    64,    65,    65,
     66,    66,    67,    68,    68,    69,    70,    70,    71,    72,      66,    66,    67,    68,    68,    70,    69,    71,    71,    72,
     72,    73,    73,    74,    74,    75,    75,    76,    76,    77,      73,    73,    74,    74,    75,    75,    76,    76,    77,    77,
     77,    78,    78,    78,    79,    80,    81,    81,    82,    83,      78,    78,    79,    79,    79,    80,    81,    82,    82,    83,
     83,    84,    85,    86,    86,    87,    88,    88,    88,    89,      84,    84,    85,    86,    87,    87,    88,    89,    89,    89,
     90,    91,    92,    92,    92,    93,    94,    95,    96,    96,      90,    91,    92,    93,    93,    93,    95,    96,    94,    97,
     96,    97,    98,    99,    99,   100,   102,   103,   101,   104,      98,    99,    99,    99,   100,   101,   102,   102,   103,   105,
    105,   105,   106,   106,   106,   107,   108,   109,   110,   110,     106,   104,   107,   108,   108,   109,   109,   109,   111,   112,
    111,   111,   112,   112,   113,   114,   115,   116,   116,   116,     110,   113,   114,   115,   115,   116,   116,   117,   117,   118,
    117,   118,   118,   119,   119,   120,   121,   122,   122,   123,     119,   120,   121,   121,   121,   122,   123,   123,   124,   124,
    123,   123,   123,   124,   125,   126,   127,   128,   128,   129,     125,   126,   127,   127,   128,   128,   128,   128,   129,   130,
    130,   130,   131,   132,   133,   134,   134,   134,   134,   134,     132,   133,   131,   134,   135,   135,   136,   137,   137,   138,
    134,   134,   134,   134,   134,   134,   134,   134,   134,   134,     139,   140,   141,   141,   141,   141,   141,   141,   141,   141,
    134,   134,   134,   134,   134,   134,   134,   134,   134,   134,     141,   141,   141,   141,   141,   141,   141,   141,   141,   141,
    134,   134,   134,   134,   134,   134,   134,   134,   134,   134,     141,   141,   141,   141,   141,   141,   141,   141,   141,   141,
    134,   134,   134,   134,   134,   134,   135,   136,   137,   138     141,   141,   141,   141,   141,   141,   141,   141,   141,   141,
      141,   141,   141,   142,   143,   144,   145
 };  };
   
 static const short yyr2[] = {     0,  static const short yyr2[] = {     0,
      1,     1,     1,     2,     1,     1,     1,     4,     1,     1,       1,     1,     1,     2,     1,     1,     1,     4,     1,     1,
      1,     2,     2,     1,     1,     7,     1,     1,     3,     1,       1,     2,     2,     1,     1,     0,     8,     1,     1,     3,
      1,     1,     3,     1,     1,     1,     1,     1,     2,     1,       1,     1,     1,     3,     1,     1,     1,     1,     1,     2,
      1,     1,     1,     1,     1,     2,     2,     1,     3,     1,       1,     1,     1,     1,     1,     1,     2,     2,     1,     3,
      1,     1,     2,     1,     2,     3,     1,     1,     1,     1,       1,     1,     1,     2,     1,     2,     3,     1,     1,     1,
      2,     2,     1,     1,     1,     3,     3,     3,     1,     1,       1,     2,     2,     1,     1,     1,     0,     0,     5,     3,
      1,     1,     1,     1,     2,     1,     0,     0,     6,     1,       3,     1,     1,     1,     1,     1,     1,     2,     1,     0,
      1,     2,     1,     1,     1,     3,     3,     3,     1,     3,       0,     6,     1,     1,     2,     1,     1,     1,     0,     0,
      1,     3,     1,     3,     1,     1,     1,     1,     1,     1,       5,     3,     3,     1,     3,     1,     3,     1,     3,     1,
      1,     1,     2,     1,     2,     2,     1,     1,     2,     1,       1,     1,     1,     1,     1,     1,     1,     2,     1,     2,
      1,     1,     1,     2,     2,     3,     1,     1,     2,     2,       2,     1,     1,     2,     1,     1,     1,     1,     2,     2,
      1,     1,     2,     2,     1,     1,     1,     1,     3,     3,       0,     0,     5,     1,     1,     2,     2,     1,     1,     2,
      3,     2,     2,     2,     2,     2,     2,     2,     2,     3,       2,     1,     1,     1,     1,     3,     3,     3,     2,     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,     3,     3,     3,     3,     1,     1,     0,     0       3,     3,     3,     1,     1,     0,     0
 };  };
   
 static const short yydefact[] = {   160,  static const short yydefact[] = {   167,
    158,     0,     0,    67,     2,     1,     3,     6,     7,     5,     165,     0,     0,    70,     2,     1,     3,     6,     7,     5,
     27,    28,    31,    32,    35,    33,    34,    66,    30,    26,      28,    29,    32,    33,    36,    34,    35,    69,    31,    27,
      0,   100,     0,     0,     0,     0,    36,    38,     0,    40,       0,   105,   111,     0,     0,     0,    37,    39,     0,    41,
     41,    42,     0,    47,    48,    49,    50,     0,    94,     0,      42,    43,     0,    48,    49,    50,    51,     0,    99,     0,
     44,    92,   101,   102,   103,     0,   111,   112,     0,     4,      45,    97,   106,   107,   108,     0,   118,   119,     0,     4,
     29,   160,   160,   160,    99,     0,   113,   105,   108,     0,      30,   167,   167,   167,   104,     0,   120,   110,   115,     0,
    107,   104,     0,     0,    98,     0,   100,    51,     0,    92,     114,   109,     0,     0,   103,     0,   105,    52,     0,    97,
     37,   159,   160,     0,    46,    53,    54,    55,   100,    95,      38,    57,   167,     0,    47,    54,    55,    56,   105,   100,
     45,    93,    96,    43,    52,   114,    70,    68,    15,     8,      46,    98,   101,    44,    53,   121,    73,    71,    15,     8,
     10,    11,     0,     9,    22,     0,    21,    20,   160,    18,      10,    11,     0,     9,    23,     0,    22,    21,   167,    19,
     17,   110,   109,   106,    39,    93,   158,     0,    31,     0,      18,   117,   116,   112,    40,    98,   166,     0,   123,     0,
     61,    62,    63,    59,     0,   116,     0,     0,     0,     0,       0,     0,     0,     0,     0,     0,     0,     0,     0,   167,
      0,     0,     0,     0,     0,     0,   160,   160,   117,   118,     167,   124,   125,     0,   122,     0,    12,    14,    13,    20,
      0,   115,     0,    12,    14,    13,    19,     0,    25,     0,       0,    26,     0,    25,     0,   165,     0,    32,    58,    64,
     24,    65,    56,    58,   126,   127,   128,   129,   123,   122,      65,    66,    62,    61,   133,   134,   135,   136,   130,   129,
    124,   125,     0,   157,     0,     0,    57,     0,     0,     0,     131,   132,     0,   164,     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,   159,   160,     0,     0,    71,    73,       0,     0,     0,     0,    79,   167,     0,     0,    74,    76,
     74,    75,    23,   160,   121,   119,   120,   141,   142,   143,      77,    78,    24,    16,   113,    68,     0,   128,   126,   127,
    140,   146,   147,   148,   149,   136,   137,   150,   151,   152,     148,   149,   150,   147,   153,   154,   155,   156,   143,   144,
    153,   154,   155,   156,   144,   145,   139,   138,   131,   130,     157,   158,   159,   160,   161,   162,   163,   151,   152,   146,
    132,   133,   135,   134,   158,    90,     0,    79,    85,    88,     145,   138,   137,   139,   140,   142,   141,   166,    92,     0,
     87,     0,    83,     0,    81,    86,    91,    69,    72,    16,      88,     0,    86,    91,    96,    72,    75,   167,    59,   165,
     76,   159,   160,    78,     0,    77,    80,    84,    82,     0,      95,    80,    84,    90,    93,   167,    83,     0,    82,    17,
      0,     0     166,     0,    89,    87,    85,    81,     0,     0,     0
 };  };
   
 static const short yydefgoto[] = {   250,  static const short yydefgoto[] = {   257,
      5,     6,     7,     8,    90,    91,    92,    93,     9,    99,       5,     6,     7,     8,    90,    91,    92,    93,     9,   238,
     54,    96,    97,   140,   154,    11,    12,    13,    14,   129,      99,    54,    96,    97,   133,   154,    11,    12,    13,    14,
     27,    28,    29,    30,    31,    32,    16,    33,    34,    35,     122,    27,    28,    29,    30,    31,    32,    16,    33,    34,
     36,    75,    76,    77,    78,   110,   226,   112,   113,    17,      35,    36,    75,    76,   107,   197,    77,    78,   139,   241,
    130,    49,   133,    88,   188,   189,   190,   191,   192,   227,     141,   142,    17,   123,    49,   126,    88,   188,   189,   190,
    234,   232,   228,   235,   233,   229,   236,    37,    64,    39,     228,   252,   191,   192,   242,   232,   230,   243,   233,   231,
     40,    41,    65,    43,    44,    45,    62,    58,    59,    66,     244,   234,    37,    64,    39,    40,    41,    65,    43,    44,
     47,    48,   237,   132,   155,    19,   230,    20      45,    60,   135,    62,    58,    59,    66,    47,    48,   235,
      125,   155,    19,   245,    20
 };  };
   
 static const short yypact[] = {    13,  static const short yypact[] = {    34,
 -32768,    24,    98,-32768,    36,-32768,-32768,-32768,-32768,-32768,  -32768,    16,    61,-32768,   -19,-32768,-32768,-32768,-32768,-32768,
     14,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,      11,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    -26,    39,    14,    44,    45,   100,-32768,-32768,    47,-32768,     -14,     9,-32768,    30,    94,   106,-32768,-32768,    44,-32768,
 -32768,-32768,    52,-32768,-32768,-32768,-32768,   118,-32768,    59,  -32768,-32768,   -26,-32768,-32768,-32768,-32768,   111,-32768,    -2,
 -32768,     4,-32768,-32768,-32768,   118,    -3,-32768,    45,-32768,  -32768,     5,-32768,-32768,-32768,   111,    -4,-32768,    94,-32768,
 -32768,   101,   113,    71,-32768,    44,-32768,    70,-32768,    32,  -32768,    65,    72,    31,-32768,    30,-32768,    41,-32768,    11,
 -32768,-32768,    73,   118,    83,   118,    70,-32768,   100,    83,  -32768,-32768,    28,   111,    40,   111,    41,-32768,   106,    40,
 -32768,    27,    14,    57,-32768,-32768,-32768,-32768,     1,-32768,  -32768,-32768,    11,    27,-32768,-32768,-32768,-32768,    18,-32768,
 -32768,     4,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -32768,     5,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     20,-32768,    78,    91,-32768,    90,    94,-32768,   135,-32768,       6,-32768,    59,    67,-32768,    70,    77,-32768,   115,-32768,
 -32768,-32768,-32768,-32768,-32768,    83,    92,    14,   -22,   106,  -32768,-32768,-32768,    11,-32768,    40,    38,    75,-32768,    27,
 -32768,-32768,-32768,-32768,   115,-32768,    57,    57,    57,    57,      27,    27,    27,    27,    27,    27,    27,    83,    27,    11,
     57,    57,    57,    57,   105,    57,    14,    14,-32768,-32768,      11,-32768,-32768,    73,   315,    78,-32768,-32768,-32768,-32768,
    114,   281,    72,-32768,-32768,-32768,-32768,   142,-32768,   107,     127,-32768,    89,-32768,    88,    90,    11,    -3,-32768,-32768,
 -32768,    14,-32768,-32768,   440,   440,   440,   440,-32768,-32768,  -32768,-32768,-32768,-32768,   140,   140,   140,   140,-32768,-32768,
 -32768,-32768,   236,-32768,   112,   120,-32768,    57,    57,    57,  -32768,-32768,   270,-32768,    84,    87,-32768,    27,    27,    27,
     57,    57,    57,    57,    57,    57,    57,    57,    57,    57,      27,    27,    27,    27,    27,    27,    27,    27,    27,    27,
     57,    57,    57,    57,    57,    57,    57,    57,    57,    57,      27,    27,    27,    27,    27,    27,    27,    27,    27,    27,
     57,    57,    57,    57,    41,    14,    57,     5,-32768,-32768,      27,    27,    27,    27,-32768,    11,    27,    45,-32768,-32768,
 -32768,-32768,-32768,    14,-32768,-32768,-32768,   371,   343,   312,  -32768,-32768,-32768,-32768,-32768,    11,    95,-32768,-32768,-32768,
    244,   399,   399,   412,   412,   136,   136,   399,   399,   399,     405,   377,   346,   278,   433,   433,   131,   131,   154,   154,
    399,   412,   412,   440,   399,   399,   447,   453,    93,    93,     433,   433,   433,   433,   131,   131,   140,   433,   433,   164,
 -32768,-32768,-32768,-32768,   -11,-32768,    19,-32768,-32768,-32768,     441,   178,   178,-32768,-32768,-32768,-32768,    39,-32768,   -25,
 -32768,   -10,-32768,   -33,-32768,-32768,-32768,-32768,-32768,-32768,  -32768,   -33,-32768,-32768,-32768,-32768,-32768,    11,-32768,    68,
 -32768,    41,    14,-32768,    57,-32768,-32768,-32768,-32768,   180,  -32768,   100,-32768,-32768,-32768,    11,-32768,    27,-32768,-32768,
    181,-32768      39,   104,-32768,-32768,-32768,-32768,   155,   157,-32768
 };  };
   
 static const short yypgoto[] = {-32768,  static const short yypgoto[] = {-32768,
 -32768,-32768,   177,-32768,-32768,-32768,    99,-32768,-32768,-32768,  -32768,-32768,   158,-32768,-32768,-32768,    82,-32768,-32768,-32768,
    129,-32768,-32768,-32768,     3,   -18,    -7,   -71,-32768,     0,  -32768,   110,-32768,-32768,-32768,     1,   -55,    -7,  -104,-32768,
 -32768,-32768,    -6,-32768,-32768,   -37,-32768,-32768,-32768,-32768,       0,-32768,-32768,   -13,-32768,-32768,   -27,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,   119,-32768,-32768,-32768,  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   107,
      2,-32768,-32768,-32768,-32768,    -4,-32768,-32768,-32768,-32768,  -32768,-32768,-32768,     2,-32768,-32768,-32768,-32768,    -6,-32768,
 -32768,-32768,   -50,   -52,   -48,-32768,-32768,   -16,    95,   -23,  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   -66,   -51,   -24,
 -32768,   -24,     9,-32768,-32768,-32768,   169,-32768,   168,   224,  -32768,-32768,    -9,     4,   -29,-32768,   -20,     3,-32768,-32768,
 -32768,-32768,   154,    40,   102,-32768,   157,   -20  -32768,-32768,-32768,   167,-32768,   162,   221,-32768,-32768,   151,
       96,   105,-32768,   120,    49
 };  };
   
   
 #define YYLAST          494  #define YYLAST          482
   
   
 static const short yytable[] = {    15,  static const short yytable[] = {    15,
    109,    18,    10,    51,    60,    55,   -98,   238,    84,    68,      10,    18,   138,    51,   104,    42,    38,  -103,    80,    89,
     15,    42,    18,    81,    80,   245,     1,     1,    63,    52,      15,    63,    18,    55,     1,   248,    68,    81,    84,    21,
     53,   246,    15,    89,    18,   -64,   -64,    21,    84,    85,      72,   249,    55,   246,    73,     2,   247,    74,    70,    69,
    107,    94,    98,   101,    70,     1,   -89,   -89,   243,    81,     109,    52,    53,    61,    80,    87,    85,     1,    84,    80,
     80,   244,    87,    55,   225,    80,    82,    61,    22,    71,      82,   136,   240,    81,   -67,   -67,    71,   236,    42,    38,
     56,   185,    51,    86,    42,   186,   -97,     2,   187,    15,      83,  -167,    86,   110,   111,   112,   113,  -102,    56,    15,
    116,    18,     3,     3,   108,  -160,   241,   242,     4,     4,       3,    18,   114,   115,    22,    57,     4,    56,    89,   116,
    135,    15,    15,    18,    18,   115,     3,   106,   141,   104,     117,   106,    15,   108,    18,    95,   118,    53,     2,   105,
      2,     3,     4,   117,   118,   119,   120,     4,    56,   142,     119,   196,     4,     3,   120,   121,    22,     3,     3,     4,
      3,    23,   121,   122,    24,    57,     4,    38,    72,   123,      56,   185,  -102,     4,     4,   186,    51,    22,   187,   137,
    124,    22,    73,    67,    89,    74,   125,    15,    22,    18,      94,    98,   101,    15,   129,    18,    15,    23,    18,    67,
    126,    83,     4,   109,   127,   128,    95,    53,   185,    56,      24,    25,   -14,    26,    79,   -94,   -94,   130,   132,    15,
     69,    79,   186,   136,   105,   187,    15,    15,    18,    18,      15,    18,    18,   138,   185,   131,   144,   157,   186,    23,
    181,   182,   183,   184,    51,   -97,   -14,   137,   139,   -60,     193,   187,    24,    25,   194,   195,    15,   -63,    18,   128,
     38,    15,   138,    18,    23,   193,    23,    24,    25,    24,      23,   199,   239,    24,   161,   200,   138,   134,   251,   166,
     26,    23,   194,   143,    24,    25,   145,   146,   147,   148,     167,   256,    23,   161,   258,    24,   259,    23,   166,   167,
    149,   150,   151,   152,    23,   153,   144,    24,   157,   196,      24,   174,    50,   100,   177,   178,   179,   180,   181,   182,
    109,   179,   180,   181,   182,   183,   184,   108,   197,   251,     183,   184,   127,   177,   178,   179,   180,   181,   182,   183,
    252,    50,   100,   239,    15,    15,    18,    18,   231,   134,     184,   237,   166,   167,   255,    15,   229,    18,    51,   179,
    111,   247,   249,    15,   248,    18,   240,   198,   199,   200,     180,   181,   182,   183,   184,    15,   254,    18,   178,   179,
    201,   202,   203,   204,   205,   206,   207,   208,   209,   210,     180,   181,   182,   183,   184,   145,   146,   147,   148,   149,
    211,   212,   213,   214,   215,   216,   217,   218,   219,   220,     150,   151,   152,   140,   153,   181,   182,   183,   184,   103,
    221,   222,   223,   224,   102,   103,    46,   131,   114,   156,     137,   253,   102,    46,   124,   156,   143,    15,     0,    18,
      0,     0,     0,     0,   108,     0,     0,     0,     0,     0,       0,     0,     0,     0,     0,     0,     0,    15,   250,    18,
      0,    15,    15,    18,    18,   231,   158,   159,   160,   161,       0,     0,     0,   137,     0,    15,   229,    18,     0,     0,
       15,     0,    18,   201,   202,   203,   204,   205,   206,   207,
      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
      168,   169,   170,   171,   172,   173,   166,   167,     0,     0,
      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
      184,   177,   178,   179,   180,   181,   182,   183,   184,     0,
        0,     0,     0,     0,   198,   158,   159,   160,   161,   162,
      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
      173,     0,     0,     0,     0,   174,   175,   176,   177,   178,
      179,   180,   181,   182,   183,   184,   158,   159,     0,   161,
    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
    172,   173,   166,   167,     0,     0,   174,   175,   176,   177,     172,   173,     0,     0,     0,     0,   174,   175,   176,   177,
    178,   179,   180,   181,   182,   183,   184,   177,   178,   179,     178,   179,   180,   181,   182,   183,   184,   158,     0,     0,
    180,   181,   182,   183,   184,     0,     0,     0,     0,     0,     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
    195,   158,   159,   160,   161,   162,   163,   164,   165,   166,     171,   172,   173,     0,     0,     0,     0,   174,   175,   176,
    167,   168,   169,   170,   171,   172,   173,     0,     0,     0,     177,   178,   179,   180,   181,   182,   183,   184,   161,   162,
      0,   174,   175,   176,   177,   178,   179,   180,   181,   182,     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
    183,   184,   158,   159,     0,   161,   162,   163,   164,   165,     173,     0,     0,     0,     0,   174,   175,   176,   177,   178,
    166,   167,   168,   169,   170,   171,   172,   173,     0,     0,     179,   180,   181,   182,   183,   184,   161,     0,     0,   164,
      0,     0,   174,   175,   176,   177,   178,   179,   180,   181,     165,   166,   167,     0,     0,     0,     0,   172,   173,   166,
    182,   183,   184,   158,     0,     0,   161,   162,   163,   164,     167,     0,     0,   174,     0,     0,   177,   178,   179,   180,
    165,   166,   167,   168,   169,   170,   171,   172,   173,     0,     181,   182,   183,   184,     0,     0,   179,   180,   181,   182,
      0,     0,     0,   174,   175,   176,   177,   178,   179,   180,     183,   184
    181,   182,   183,   184,   161,   162,   163,   164,   165,   166,  
    167,   168,   169,   170,   171,   172,   173,     0,     0,     0,  
      0,   174,   175,   176,   177,   178,   179,   180,   181,   182,  
    183,   184,   161,     0,     0,   164,   165,   166,   167,     0,  
      0,     0,     0,   172,   173,   161,     0,     0,     0,   174,  
    166,   167,   177,   178,   179,   180,   181,   182,   183,   184,  
      0,     0,   174,     0,     0,   177,   178,   179,   180,   181,  
    182,   183,   184,   161,     0,     0,     0,     0,   166,   167,  
      0,     0,     0,     0,     0,   166,   167,     0,     0,     0,  
      0,   166,   167,   177,   178,   179,   180,   181,   182,   183,  
    184,   178,   179,   180,   181,   182,   183,   184,   179,   180,  
    181,   182,   183,   184  
 };  };
   
 static const short yycheck[] = {     0,  static const short yycheck[] = {     0,
     72,     0,     0,    11,    23,     5,     3,     3,    46,    26,       0,     0,   107,    11,    60,     3,     3,     3,    38,     4,
     11,     3,    11,    38,    38,    49,     4,     4,    25,    46,      11,    25,    11,     5,     4,    49,    26,    38,    46,     4,
     47,    55,    23,     4,    23,    48,    49,     4,    66,    46,      47,    55,     5,    49,    51,    45,    52,    54,    26,    26,
      4,    52,    53,    54,    26,     4,    48,    49,    49,    64,       4,    46,    47,     4,    64,    49,    46,     4,    66,    69,
     64,    52,    49,     5,     4,    69,    38,     4,     4,     3,      38,     4,     4,    64,    48,    49,     3,     3,    46,    46,
     50,    47,    60,    57,    46,    51,    53,    45,    54,    60,      53,    46,    57,    27,    28,    29,    30,    53,    50,    60,
      4,    60,    50,    50,    72,    46,    48,    49,    56,    56,      50,    60,    36,    37,     4,    57,    56,    50,     4,    43,
     91,    72,    73,    72,    73,    73,    50,    69,    99,    48,      44,    69,    73,    73,    73,     4,    50,    47,    45,    52,
     45,    50,    56,    27,    28,    29,    30,    56,    50,   108,      54,   137,    56,    50,    58,    59,     4,    50,    50,    56,
     50,    47,    36,    37,    50,    57,    56,     3,    47,    43,      50,    47,    53,    56,    56,    51,   104,     4,    54,   107,
     44,     4,    51,     4,     4,    54,    50,   108,     4,   108,      52,    53,    54,   104,    46,   104,   107,    47,   107,     4,
     54,    53,    56,   185,    58,    59,     4,    47,    47,    50,      50,    51,    46,    53,     4,    48,    49,    48,     4,   120,
     26,     4,    51,    46,    52,    54,   127,   128,   127,   128,     121,   120,   121,   228,    47,    49,    52,    55,    51,    47,
     38,    39,    40,    41,   142,    53,    46,    48,     4,    48,       4,    54,    50,    51,    46,    48,   137,    48,   137,    91,
     46,   142,    49,   142,    47,     4,    47,    50,    51,    50,      47,    58,    48,    50,    14,    59,   251,    99,    49,    19,
     53,    47,    46,    48,    50,    51,   117,   118,   119,   120,      20,    48,    47,    14,     0,    50,     0,    47,    19,    20,
    121,   122,   123,   124,    47,   126,    52,    50,    55,    58,      50,    31,     5,    54,    34,    35,    36,    37,    38,    39,
    242,    36,    37,    38,    39,    40,    41,   185,    59,     0,      40,    41,    91,    34,    35,    36,    37,    38,    39,    40,
      0,     5,    54,   188,   185,   186,   185,   186,   186,    91,      41,   188,    19,    20,   251,   186,   186,   186,   196,    36,
     72,   242,   245,   194,   243,   194,   194,   158,   159,   160,      37,    38,    39,    40,    41,   196,   248,   196,    35,    36,
    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,      37,    38,    39,    40,    41,   110,   111,   112,   113,   114,
    171,   172,   173,   174,   175,   176,   177,   178,   179,   180,     115,   116,   117,   107,   119,    38,    39,    40,    41,    58,
    181,   182,   183,   184,    56,    58,     3,    74,    72,   128,     228,   246,    56,     3,    74,   121,   107,   228,    -1,   228,
     -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,    -1,      -1,    -1,    -1,    -1,    -1,    -1,    -1,   238,   238,   238,
     -1,   242,   243,   242,   243,   243,    11,    12,    13,    14,      -1,    -1,    -1,   251,    -1,   246,   246,   246,    -1,    -1,
      251,    -1,   251,   158,   159,   160,   161,   162,   163,   164,
      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
       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,      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     25,    26,    19,    20,    -1,    -1,    31,    32,    33,    34,      25,    26,    -1,    -1,    -1,    -1,    31,    32,    33,    34,
     35,    36,    37,    38,    39,    40,    41,    34,    35,    36,      35,    36,    37,    38,    39,    40,    41,    11,    -1,    -1,
     37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     55,    11,    12,    13,    14,    15,    16,    17,    18,    19,      24,    25,    26,    -1,    -1,    -1,    -1,    31,    32,    33,
     20,    21,    22,    23,    24,    25,    26,    -1,    -1,    -1,      34,    35,    36,    37,    38,    39,    40,    41,    14,    15,
     -1,    31,    32,    33,    34,    35,    36,    37,    38,    39,      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     40,    41,    11,    12,    -1,    14,    15,    16,    17,    18,      26,    -1,    -1,    -1,    -1,    31,    32,    33,    34,    35,
     19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,      36,    37,    38,    39,    40,    41,    14,    -1,    -1,    17,
     -1,    -1,    31,    32,    33,    34,    35,    36,    37,    38,      18,    19,    20,    -1,    -1,    -1,    -1,    25,    26,    19,
     39,    40,    41,    11,    -1,    -1,    14,    15,    16,    17,      20,    -1,    -1,    31,    -1,    -1,    34,    35,    36,    37,
     18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,      38,    39,    40,    41,    -1,    -1,    36,    37,    38,    39,
     -1,    -1,    -1,    31,    32,    33,    34,    35,    36,    37,      40,    41
     38,    39,    40,    41,    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,    -1,    -1,    17,    18,    19,    20,    -1,  
     -1,    -1,    -1,    25,    26,    14,    -1,    -1,    -1,    31,  
     19,    20,    34,    35,    36,    37,    38,    39,    40,    41,  
     -1,    -1,    31,    -1,    -1,    34,    35,    36,    37,    38,  
     39,    40,    41,    14,    -1,    -1,    -1,    -1,    19,    20,  
     -1,    -1,    -1,    -1,    -1,    19,    20,    -1,    -1,    -1,  
     -1,    19,    20,    34,    35,    36,    37,    38,    39,    40,  
     41,    35,    36,    37,    38,    39,    40,    41,    36,    37,  
     38,    39,    40,    41  
 };  };
 #define YYPURE 1  #define YYPURE 1
   
Line 771  yyparse(YYPARSE_PARAM_ARG) Line 777  yyparse(YYPARSE_PARAM_ARG)
   
 #ifdef YYPURE  #ifdef YYPURE
   int yychar;    int yychar;
   YYSTYPE yylval;    YYSTYPE yylval=0; /*paf:calm down, vc7 warning level 4*/
   int yynerrs;    int yynerrs;
 #ifdef YYLSP_NEEDED  #ifdef YYLSP_NEEDED
   YYLTYPE yylloc;    YYLTYPE yylloc;
 #endif  #endif
 #endif  #endif
   
   YYSTYPE yyval;                /*  the variable used to return         */    YYSTYPE yyval=0; /*paf:calm down, vc7 warning level 4*/               /*  the variable used to return         */
                                 /*  semantic values from the action     */                                  /*  semantic values from the action     */
                                 /*  routines                            */                                  /*  routines                            */
   
Line 1038  yyreduce: Line 1044  yyreduce:
   switch (yyn) {    switch (yyn) {
   
 case 1:  case 1:
 #line 122 "compile.y"  #line 121 "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 1048  case 1: Line 1054  case 1:
 ;  ;
     break;}      break;}
 case 8:  case 8:
 #line 137 "compile.y"  #line 136 "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 1122  case 8: Line 1128  case 8:
 ;  ;
     break;}      break;}
 case 12:  case 12:
 #line 209 "compile.y"  #line 208 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 16:  case 16:
 #line 214 "compile.y"  #line 212 "compile.y"
 {  { 
         const String& name=*LA2S(*yyvsp[-5]);          PC.explicit_result=false;
           const String& name=*LA2S(*yyvsp[-4]);
   
         YYSTYPE params_names_code=yyvsp[-4];          YYSTYPE params_names_code=yyvsp[-3];
         ArrayString* params_names=0;          ArrayString* params_names=0;
         if(int size=params_names_code->count()) {          if(int size=params_names_code->count()) {
                 params_names=new ArrayString;                  params_names=new ArrayString;
Line 1138  case 16: Line 1145  case 16:
                         *params_names+=LA2S(*params_names_code, i);                          *params_names+=LA2S(*params_names_code, i);
         }          }
   
         YYSTYPE locals_names_code=yyvsp[-3];          YYSTYPE locals_names_code=yyvsp[-2];
         ArrayString* locals_names=0;          ArrayString* locals_names=0;
         if(int size=locals_names_code->count()) {          if(int size=locals_names_code->count()) {
                 locals_names=new ArrayString;                  locals_names=new ArrayString;
                 for(int i=0; i<size; i+=OPERATIONS_PER_OPVALUE)                  for(int i=0; i<size; i+=OPERATIONS_PER_OPVALUE) {
                         *locals_names+=LA2S(*locals_names_code, i);                          const String* local_name=LA2S(*locals_names_code, i);
                           if(*local_name==RESULT_VAR_NAME)
                                   PC.explicit_result=true;
                           else
                                   *locals_names+=local_name;
                   }
         }          }
   
         Method& method=*new Method(          Method* method=new Method(
                 //name,                   //name, 
                 Method::CT_ANY,                  Method::CT_ANY,
                 0, 0/*min,max numbered_params_count*/,                   0, 0/*min,max numbered_params_count*/, 
                 params_names, locals_names,                   params_names, locals_names, 
                 yyvsp[0], 0);                  0/*to be filled later in next {} */, 0);
         PC.cclass->add_method(PC.alias_method(name), method);          PC.cclass->add_method(PC.alias_method(name), *method);
           *reinterpret_cast<Method**>(&yyval)=method;
   
           // todo: check [][;result;]
   ;
       break;}
   case 17:
   #line 247 "compile.y"
   {
           // fill in the code
           reinterpret_cast<Method*>(yyvsp[-1])->parser_code=yyvsp[0];
 ;  ;
     break;}      break;}
 case 19:  case 20:
 #line 243 "compile.y"  #line 253 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 23:  case 24:
 #line 245 "compile.y"  #line 255 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 29:  case 30:
 #line 253 "compile.y"  #line 263 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 35:  case 36:
 #line 259 "compile.y"  #line 269 "compile.y"
 {  {
         yyval=yyvsp[0]; /* stack: resulting value */           yyval=yyvsp[0]; /* stack: resulting value */ 
         changetail_or_append(*yyval,           changetail_or_append(*yyval, 
Line 1177  case 35: Line 1199  case 35:
                 ); /* value=pop; wcontext.write(value) */                  ); /* value=pop; wcontext.write(value) */
 ;  ;
     break;}      break;}
 case 36:  case 37:
 #line 266 "compile.y"  #line 276 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 39:  case 40:
 #line 268 "compile.y"  #line 278 "compile.y"
 { yyval=yyvsp[-1] ;  { yyval=yyvsp[-1] ;
     break;}      break;}
 case 42:  case 43:
 #line 272 "compile.y"  #line 282 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         ArrayOperation* diving_code=yyvsp[0];          ArrayOperation* diving_code=yyvsp[0];
Line 1210  case 42: Line 1232  case 42:
         /* diving code; stack: current context */          /* diving code; stack: current context */
 ;  ;
     break;}      break;}
 case 43:  case 44:
 #line 294 "compile.y"  #line 304 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 45:  case 46:
 #line 295 "compile.y"  #line 305 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 46:  case 47:
 #line 299 "compile.y"  #line 309 "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 50:  case 51:
 #line 307 "compile.y"  #line 317 "compile.y"
 {  {
         yyval=N();          yyval=N();
         ArrayOperation* diving_code=yyvsp[0];          ArrayOperation* diving_code=yyvsp[0];
Line 1245  case 50: Line 1267  case 50:
         /* diving code; stack: current context */          /* diving code; stack: current context */
 ;  ;
     break;}      break;}
 case 51:  case 52:
 #line 324 "compile.y"  #line 334 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         O(*yyval, OP_WITH_WRITE); /* stack: starting context */          O(*yyval, OP_WITH_WRITE); /* stack: starting context */
         P(*yyval, *yyvsp[0]); /* diving code; stack: context,name */          P(*yyval, *yyvsp[0]); /* diving code; stack: context,name */
 ;  ;
     break;}      break;}
 case 52:  case 53:
 #line 329 "compile.y"  #line 339 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 56:  case 57:
 #line 336 "compile.y"  #line 346 "compile.y"
   {
           // allow $result_or_other_variable[ letters here any time ]
           *reinterpret_cast<bool*>(&yyval)=PC.explicit_result; PC.explicit_result=false;
   ;
       break;}
   case 58:
   #line 349 "compile.y"
   {
           PC.explicit_result=*reinterpret_cast<bool*>(&yyvsp[-1]);
   ;
       break;}
   case 59:
   #line 351 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=yyvsp[-1]; // stack: context, name, value          yyval=yyvsp[-2]; // stack: context, name, value
         O(*yyval, OP_CONSTRUCT_VALUE); /* value=pop; name=pop; context=pop; construct(context,name,value) */          O(*yyval, OP_CONSTRUCT_VALUE); /* value=pop; name=pop; context=pop; construct(context,name,value) */
 ;  ;
     break;}      break;}
 case 57:  case 60:
 #line 342 "compile.y"  #line 357 "compile.y"
 {   { 
         yyval=N();           yyval=N(); 
         O(*yyval, OP_PREPARE_TO_EXPRESSION);          O(*yyval, OP_PREPARE_TO_EXPRESSION);
Line 1275  case 57: Line 1310  case 57:
         O(*yyval, OP_CONSTRUCT_EXPR); /* value=pop->as_expr_result; name=pop; context=pop; construct(context,name,value) */          O(*yyval, OP_CONSTRUCT_EXPR); /* value=pop->as_expr_result; name=pop; context=pop; construct(context,name,value) */
 ;  ;
     break;}      break;}
 case 58:  case 61:
 #line 350 "compile.y"  #line 365 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=N();           yyval=N(); 
         OA(*yyval, OP_CURLY_CODE__CONSTRUCT, yyvsp[-1]); /* code=pop; name=pop; context=pop; construct(context,name,junction(code)) */          OA(*yyval, OP_CURLY_CODE__CONSTRUCT, yyvsp[-1]); /* code=pop; name=pop; context=pop; construct(context,name,junction(code)) */
 ;  ;
     break;}      break;}
 case 62:  case 65:
 #line 361 "compile.y"  #line 376 "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 1292  case 62: Line 1327  case 62:
         /* context=pop; stack: context.value() */          /* context=pop; stack: context.value() */
 ;  ;
     break;}      break;}
 case 65:  case 68:
 #line 368 "compile.y"  #line 383 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 66:  case 69:
 #line 372 "compile.y"  #line 387 "compile.y"
 {  {
         yyval=yyvsp[0]; /* stack: value */          yyval=yyvsp[0]; /* stack: value */
         changetail_or_append(*yyval,           changetail_or_append(*yyval, 
Line 1305  case 66: Line 1340  case 66:
                 /*or */OP_WRITE_VALUE); /* value=pop; wcontext.write(value) */                  /*or */OP_WRITE_VALUE); /* value=pop; wcontext.write(value) */
 ;  ;
     break;}      break;}
 case 67:  case 70:
 #line 378 "compile.y"  #line 393 "compile.y"
 {   { 
                                         PC.in_call_value=true;                                           PC.in_call_value=true; 
                         ;                          ;
     break;}      break;}
 case 68:  case 71:
 #line 381 "compile.y"  #line 396 "compile.y"
 {  {
                                 PC.in_call_value=false;                                  PC.in_call_value=false;
                         ;                          ;
     break;}      break;}
 case 69:  case 72:
 #line 384 "compile.y"  #line 399 "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 1332  case 69: Line 1367  case 69:
         OA(*yyval, OP_CALL, params_code); // method_frame=make frame(pop junction); ncontext=pop; call(ncontext,method_frame) stack: value          OA(*yyval, OP_CALL, params_code); // method_frame=make frame(pop junction); ncontext=pop; call(ncontext,method_frame) stack: value
 ;  ;
     break;}      break;}
 case 72:  case 75:
 #line 399 "compile.y"  #line 414 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 76:  case 79:
 #line 405 "compile.y"  #line 420 "compile.y"
 {yyval=yyvsp[-1];  {
           // allow ^call[ letters here any time ]
           *reinterpret_cast<bool*>(&yyval)=PC.explicit_result; PC.explicit_result=false;
   ;
     break;}      break;}
 case 77:  case 80:
 #line 406 "compile.y"  #line 423 "compile.y"
   {
           PC.explicit_result=*reinterpret_cast<bool*>(&yyvsp[-1]);
   ;
       break;}
   case 81:
   #line 425 "compile.y"
   {yyval=yyvsp[-2];
       break;}
   case 82:
   #line 426 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 78:  case 83:
 #line 407 "compile.y"  #line 427 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 80:  case 85:
 #line 410 "compile.y"  #line 430 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 82:  case 87:
 #line 414 "compile.y"  #line 434 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 84:  case 89:
 #line 418 "compile.y"  #line 438 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 85:  case 90:
 #line 420 "compile.y"  #line 440 "compile.y"
 {  {
         yyval=yyvsp[0];          yyval=yyvsp[0];
         O(*yyval, OP_STORE_PARAM);          O(*yyval, OP_STORE_PARAM);
 ;  ;
     break;}      break;}
 case 86:  case 91:
 #line 424 "compile.y"  #line 444 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         OA(*yyval, OP_EXPR_CODE__STORE_PARAM, yyvsp[0]);          OA(*yyval, OP_EXPR_CODE__STORE_PARAM, yyvsp[0]);
 ;  ;
     break;}      break;}
 case 87:  case 92:
 #line 428 "compile.y"  #line 448 "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 91:  case 96:
 #line 437 "compile.y"  #line 457 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         O(*yyval, OP_PREPARE_TO_EXPRESSION);          O(*yyval, OP_PREPARE_TO_EXPRESSION);
Line 1390  case 91: Line 1438  case 91:
         O(*yyval, OP_WRITE_EXPR_RESULT);          O(*yyval, OP_WRITE_EXPR_RESULT);
 ;  ;
     break;}      break;}
 case 93:  case 98:
 #line 446 "compile.y"  #line 466 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 95:  case 100:
 #line 448 "compile.y"  #line 468 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 97:  case 102:
 #line 450 "compile.y"  #line 470 "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 1409  case 97: Line 1457  case 97:
         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 98:  case 103:
 #line 458 "compile.y"  #line 478 "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 104:  case 109:
 #line 471 "compile.y"  #line 491 "compile.y"
 {  {
         yyval=yyvsp[0];          yyval=yyvsp[0];
         O(*yyval, OP_GET_ELEMENT);          O(*yyval, OP_GET_ELEMENT);
 ;  ;
     break;}      break;}
 case 105:  case 110:
 #line 475 "compile.y"  #line 495 "compile.y"
 {  {
         ArrayOperation* code;          ArrayOperation* code;
         {          {
Line 1436  case 105: Line 1484  case 105:
         OA(*yyval, OP_STRING_POOL, code);          OA(*yyval, OP_STRING_POOL, code);
 ;  ;
     break;}      break;}
 case 106:  case 111:
 #line 484 "compile.y"  #line 504 "compile.y"
   {
           // allow $result_or_other_variable[ letters here any time ]
           *reinterpret_cast<bool*>(&yyval)=PC.explicit_result; PC.explicit_result=false;
   ;
       break;}
   case 112:
   #line 507 "compile.y"
   {
           PC.explicit_result=*reinterpret_cast<bool*>(&yyvsp[-1]);
   ;
       break;}
   case 113:
   #line 509 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         OA(*yyval, OP_OBJECT_POOL, yyvsp[-1]); /* stack: empty write context */          OA(*yyval, OP_OBJECT_POOL, yyvsp[-2]); /* stack: empty write context */
         /* some code that writes to that context */          /* some code that writes to that context */
         /* context=pop; stack: context.value() */          /* context=pop; stack: context.value() */
 ;  ;
     break;}      break;}
 case 107:  case 114:
 #line 490 "compile.y"  #line 515 "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 109:  case 116:
 #line 495 "compile.y"  #line 520 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 110:  case 117:
 #line 496 "compile.y"  #line 521 "compile.y"
 {  {
         yyval=yyvsp[0];          yyval=yyvsp[0];
         O(*yyval, OP_GET_ELEMENT__WRITE);          O(*yyval, OP_GET_ELEMENT__WRITE);
 ;  ;
     break;}      break;}
 case 113:  case 120:
 #line 505 "compile.y"  #line 530 "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 1479  case 113: Line 1540  case 113:
         O(*yyval, OP_GET_CLASS);          O(*yyval, OP_GET_CLASS);
 ;  ;
     break;}      break;}
 case 114:  case 121:
 #line 517 "compile.y"  #line 542 "compile.y"
 {  {
         yyval=yyvsp[-1];          yyval=yyvsp[-1];
         if(!PC.in_call_value) {          if(!PC.in_call_value) {
Line 1490  case 114: Line 1551  case 114:
         O(*yyval, OP_PREPARE_TO_CONSTRUCT_OBJECT);          O(*yyval, OP_PREPARE_TO_CONSTRUCT_OBJECT);
 ;  ;
     break;}      break;}
 case 115:  case 122:
 #line 529 "compile.y"  #line 554 "compile.y"
 {  {
         // see OP_PREPARE_TO_EXPRESSION!!          // see OP_PREPARE_TO_EXPRESSION!!
         if((yyval=yyvsp[0])->count()==2) // only one string literal in there?          if((yyval=yyvsp[0])->count()==2) // only one string literal in there?
                 change_string_literal_to_double_literal(*yyval); // make that string literal Double                  change_string_literal_to_double_literal(*yyval); // make that string literal Double
 ;  ;
     break;}      break;}
 case 119:  case 126:
 #line 538 "compile.y"  #line 563 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 120:  case 127:
 #line 539 "compile.y"  #line 564 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 121:  case 128:
 #line 540 "compile.y"  #line 565 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 122:  case 129:
 #line 542 "compile.y"  #line 567 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_NEG) ;  { yyval=yyvsp[0];  O(*yyval, OP_NEG) ;
     break;}      break;}
 case 123:  case 130:
 #line 543 "compile.y"  #line 568 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 124:  case 131:
 #line 544 "compile.y"  #line 569 "compile.y"
 { yyval=yyvsp[0];        O(*yyval, OP_INV) ;  { yyval=yyvsp[0];        O(*yyval, OP_INV) ;
     break;}      break;}
 case 125:  case 132:
 #line 545 "compile.y"  #line 570 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_NOT) ;  { yyval=yyvsp[0];  O(*yyval, OP_NOT) ;
     break;}      break;}
 case 126:  case 133:
 #line 546 "compile.y"  #line 571 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_DEF) ;  { yyval=yyvsp[0];  O(*yyval, OP_DEF) ;
     break;}      break;}
 case 127:  case 134:
 #line 547 "compile.y"  #line 572 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_IN) ;  { yyval=yyvsp[0];  O(*yyval, OP_IN) ;
     break;}      break;}
 case 128:  case 135:
 #line 548 "compile.y"  #line 573 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_FEXISTS) ;  { yyval=yyvsp[0];  O(*yyval, OP_FEXISTS) ;
     break;}      break;}
 case 129:  case 136:
 #line 549 "compile.y"  #line 574 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_DEXISTS) ;  { yyval=yyvsp[0];  O(*yyval, OP_DEXISTS) ;
     break;}      break;}
 case 130:  case 137:
 #line 551 "compile.y"  #line 576 "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 131:  case 138:
 #line 552 "compile.y"  #line 577 "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 132:  case 139:
 #line 553 "compile.y"  #line 578 "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 133:  case 140:
 #line 554 "compile.y"  #line 579 "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 134:  case 141:
 #line 555 "compile.y"  #line 580 "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 135:  case 142:
 #line 556 "compile.y"  #line 581 "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 136:  case 143:
 #line 557 "compile.y"  #line 582 "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 137:  case 144:
 #line 558 "compile.y"  #line 583 "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 138:  case 145:
 #line 559 "compile.y"  #line 584 "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 139:  case 146:
 #line 560 "compile.y"  #line 585 "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 140:  case 147:
 #line 561 "compile.y"  #line 586 "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 141:  case 148:
 #line 562 "compile.y"  #line 587 "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 142:  case 149:
 #line 563 "compile.y"  #line 588 "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 143:  case 150:
 #line 564 "compile.y"  #line 589 "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 144:  case 151:
 #line 565 "compile.y"  #line 590 "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 145:  case 152:
 #line 566 "compile.y"  #line 591 "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 146:  case 153:
 #line 567 "compile.y"  #line 592 "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 147:  case 154:
 #line 568 "compile.y"  #line 593 "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 148:  case 155:
 #line 569 "compile.y"  #line 594 "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 149:  case 156:
 #line 570 "compile.y"  #line 595 "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 150:  case 157:
 #line 571 "compile.y"  #line 596 "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 151:  case 158:
 #line 572 "compile.y"  #line 597 "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 152:  case 159:
 #line 573 "compile.y"  #line 598 "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 153:  case 160:
 #line 574 "compile.y"  #line 599 "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 154:  case 161:
 #line 575 "compile.y"  #line 600 "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 155:  case 162:
 #line 576 "compile.y"  #line 601 "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 156:  case 163:
 #line 577 "compile.y"  #line 602 "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 157:  case 164:
 #line 580 "compile.y"  #line 605 "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 1659  case 157: Line 1720  case 157:
         /* context=pop; stack: context.get_string() */          /* context=pop; stack: context.get_string() */
 ;  ;
     break;}      break;}
 case 158:  case 165:
 #line 589 "compile.y"  #line 614 "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 159:  case 166:
 #line 594 "compile.y"  #line 619 "compile.y"
 { yyval=VL(new VVoid(), 0, 0, 0) ;  { yyval=VL(new VVoid(), 0, 0, 0) ;
     break;}      break;}
 case 160:  case 167:
 #line 595 "compile.y"  #line 620 "compile.y"
 { yyval=N() ;  { yyval=N() ;
     break;}      break;}
 }  }
Line 1896  yyerrhandle: Line 1957  yyerrhandle:
     }      }
   return 1;    return 1;
 }  }
 #line 597 "compile.y"  #line 622 "compile.y"
   
 #endif  #endif
   
Line 1947  static int yylex(YYSTYPE *lvalp, void *a Line 2008  static int yylex(YYSTYPE *lvalp, void *a
                 c=*(end=(pc.source++));                  c=*(end=(pc.source++));
 //              fprintf(stderr, "\nchar: %c %02X; nestage: %d, sp=%d", c, c, lexical_brackets_nestage, pc.sp);  //              fprintf(stderr, "\nchar: %c %02X; nestage: %d, sp=%d", c, c, lexical_brackets_nestage, pc.sp);
   
                 if(c=='\n') {                  if(c=='\n')
                         pc.pos_next_line();                          pc.pos_next_line();
                 } else                  else
                         pc.pos_next_c(c);                          pc.pos_next_c(c);
   //              fprintf(stderr, "\nchar: %c file(%d:%d)", c, pc.pos.line, pc.pos.col);
   
                 if(c=='@' && pc.pos.col==0+1) {                  if(pc.pos.col==0+1 && c=='@') {
                         if(pc.ls==LS_DEF_SPECIAL_BODY) {                          if(pc.ls==LS_DEF_SPECIAL_BODY) {
                                 // @SPECIAL                                  // @SPECIAL
                                 // ...                                  // ...
Line 1965  static int yylex(YYSTYPE *lvalp, void *a Line 2027  static int yylex(YYSTYPE *lvalp, void *a
                         } else // @ in first column inside some code [when could that be?]                          } else // @ in first column inside some code [when could that be?]
                                 result=BAD_METHOD_DECL_START;                                  result=BAD_METHOD_DECL_START;
                         goto break2;                          goto break2;
                 } else if(c=='^') {                  }
                   if(c=='^') {
                         if(pc.ls==LS_METHOD_AFTER) {                          if(pc.ls==LS_METHOD_AFTER) {
                                 // handle after-method situation                                  // handle after-method situation
                                 pop_LS(pc);                                  pop_LS(pc);
Line 2084  default: Line 2147  default:
                                         lexical_brackets_nestage++;                                          lexical_brackets_nestage++;
                                 break;                                  break;
                         }                          }
                           if(pc.explicit_result && c)
                                   switch(c) {
                                   case '\n': case ' ': case '\t':
                                           begin=pc.source;
                                           begin_pos=pc.pos;
                                           continue; // skip it
                                   default:
                                           result=BAD_NONWHITESPACE_CHARACTER_IN_EXPLICIT_RESULT_MODE;
                                           goto break2;
                                   }
                         break;                          break;
                                                   
                 // #COMMENT                  // #COMMENT
Line 2537  default: Line 2610  default:
                         case ':': // ':name' or 'class:name'                          case ':': // ':name' or 'class:name'
                         case '^': // ^abc^xxx wrong. bailing out                          case '^': // ^abc^xxx wrong. bailing out
                         case ']': case '}': case ')': // ^abc]}) wrong. bailing out                          case ']': case '}': case ')': // ^abc]}) wrong. bailing out
                           case ' ': // ^if ( wrong. bailing out
                                 RC;                                  RC;
                         }                          }
                         break;                          break;
Line 2583  default: Line 2657  default:
                                 lexical_brackets_nestage++;                                  lexical_brackets_nestage++;
                                 break;                                  break;
                         }                          }
                           if(pc.explicit_result && c)
                                   switch(c) {
                                   case '\n': case ' ': case '\t':
                                           begin=pc.source;
                                           begin_pos=pc.pos;
                                           continue; // skip it
                                   default:
                                           result=BAD_NONWHITESPACE_CHARACTER_IN_EXPLICIT_RESULT_MODE;
                                           goto break2;
                                   }
                         break;                          break;
   
                 case LS_METHOD_AFTER:                  case LS_METHOD_AFTER:

Removed from v.1.85  
changed lines
  Added in v.1.103


E-mail: