Diff for /parser3/src/main/compile.tab.C between versions 1.15 and 1.41

version 1.15, 2001/10/05 10:06:28 version 1.41, 2002/02/18 12:05:02
Line 9 Line 9
 #define BOGUS   259  #define BOGUS   259
 #define BAD_STRING_COMPARISON_OPERATOR  260  #define BAD_STRING_COMPARISON_OPERATOR  260
 #define BAD_HEX_LITERAL 261  #define BAD_HEX_LITERAL 261
 #define LAND    262  #define BAD_METHOD_DECL_START   262
 #define LOR     263  #define LAND    263
 #define LXOR    264  #define LOR     264
 #define NLE     265  #define LXOR    265
 #define NGE     266  #define NLE     266
 #define NEQ     267  #define NGE     267
 #define NNE     268  #define NEQ     268
 #define SLT     269  #define NNE     269
 #define SGT     270  #define SLT     270
 #define SLE     271  #define SGT     271
 #define SGE     272  #define SLE     272
 #define SEQ     273  #define SGE     273
 #define SNE     274  #define SEQ     274
 #define DEF     275  #define SNE     275
 #define IN      276  #define DEF     276
 #define FEXISTS 277  #define IN      277
 #define DEXISTS 278  #define FEXISTS 278
 #define IS      279  #define DEXISTS 279
 #define NEG     280  #define IS      280
   #define NEG     281
   
 #line 1 "compile.y"  #line 1 "compile.y"
   
Line 94  static int yylex(YYSTYPE *lvalp, void *p Line 95  static int yylex(YYSTYPE *lvalp, void *p
   
   
   
 #define YYFINAL         246  #define YYFINAL         248
 #define YYFLAG          -32768  #define YYFLAG          -32768
 #define YYNTBASE        54  #define YYNTBASE        56
   
 #define YYTRANSLATE(x) ((unsigned)(x) <= 280 ? yytranslate[x] : 133)  #define YYTRANSLATE(x) ((unsigned)(x) <= 281 ? yytranslate[x] : 135)
   
 static const char yytranslate[] = {     0,  static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,    40,       2,     2,     2,     2,     2,     2,     2,     2,     2,    42,
      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,    28,    52,    29,    44,    37,    31,    53,    48,       2,     2,    29,    54,    30,    46,    38,    32,    55,    50,
     49,    35,    34,     2,    33,    47,    36,     2,     2,     2,      51,    36,    35,     2,    34,    49,    37,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,    51,    43,    26,       2,     2,     2,     2,     2,     2,     2,    53,    45,    27,
      2,    27,     2,    39,     2,     2,     2,     2,     2,     2,       2,    28,     2,    41,     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,
     41,     2,    42,    50,     2,     2,     2,     2,     2,     2,      43,    39,    44,    52,     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,    45,    30,    46,    32,     2,     2,     2,     2,       2,     2,    47,    31,    48,    33,     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 128  static const char yytranslate[] = { Line 129  static const char yytranslate[] = {
      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,     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,    38      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
       40
 };  };
   
 #if YYDEBUG != 0  #if YYDEBUG != 0
Line 148  static const short yyprhs[] = {     0, Line 150  static const short yyprhs[] = {     0,
    306,   310,   313,   316,   319,   322,   325,   328,   331,   334,     306,   310,   313,   316,   319,   322,   325,   328,   331,   334,
    338,   342,   346,   350,   354,   358,   362,   366,   370,   374,     338,   342,   346,   350,   354,   358,   362,   366,   370,   374,
    378,   382,   386,   390,   394,   398,   402,   406,   410,   414,     378,   382,   386,   390,   394,   398,   402,   406,   410,   414,
    418,   422,   426,   430,   432,   434,   435     418,   422,   426,   430,   434,   436,   438,   439
 };  };
   
 static const short yyrhs[] = {    56,  static const short yyrhs[] = {    58,
      0,    55,     0,    57,     0,    55,    57,     0,    69,     0,       0,    57,     0,    59,     0,    57,    59,     0,    71,     0,
     58,     0,    63,     0,    39,     4,    40,    59,     0,   132,      60,     0,    65,     0,    41,     4,    42,    61,     0,   134,
      0,    60,     0,    61,     0,    60,    61,     0,    62,    40,       0,    62,     0,    63,     0,    62,    63,     0,    64,    42,
      0,   132,     0,     4,     0,    39,     4,    65,    64,    68,       0,   134,     0,     4,     0,    41,     4,    67,    66,    70,
     40,    69,     0,   132,     0,    65,     0,    41,    66,    42,      42,    71,     0,   134,     0,    67,     0,    43,    68,    44,
      0,   132,     0,    67,     0,     4,     0,    67,    43,     4,       0,   134,     0,    69,     0,     4,     0,    69,    45,     4,
      0,   132,     0,     4,     0,   132,     0,    70,     0,    71,       0,   134,     0,     4,     0,   134,     0,    72,     0,    73,
      0,    70,    71,     0,   130,     0,    72,     0,    73,     0,       0,    72,    73,     0,   132,     0,    74,     0,    75,     0,
     81,     0,    94,     0,    74,     0,    44,    75,     0,    77,      83,     0,    96,     0,    76,     0,    46,    77,     0,    79,
      3,     0,    76,     0,    45,    77,    46,     0,    78,     0,       3,     0,    78,     0,    47,    79,    48,     0,    80,     0,
     79,     0,    80,     0,   124,    80,     0,   116,     0,   113,      81,     0,    82,     0,   126,    82,     0,   118,     0,   115,
    116,     0,    44,    82,    86,     0,    83,     0,    84,     0,     118,     0,    46,    84,    88,     0,    85,     0,    86,     0,
     85,     0,   112,     0,    47,   112,     0,   124,   112,     0,      87,     0,   114,     0,    49,   114,     0,   126,   114,     0,
     87,     0,    88,     0,    89,     0,    41,    90,    42,     0,      89,     0,    90,     0,    91,     0,    43,    92,    44,     0,
     48,   127,    49,     0,    45,    69,    46,     0,   131,     0,      50,   129,    51,     0,    47,    71,    48,     0,   133,     0,
      4,     0,    91,     0,    92,     0,    93,     0,    72,     0,       4,     0,    93,     0,    94,     0,    95,     0,    74,     0,
     71,    70,     0,    95,     0,     0,     0,    50,    96,    98,      73,    72,     0,    97,     0,     0,     0,    52,    98,   100,
     97,    99,     3,     0,    77,     0,   100,     0,    99,   100,      99,   101,     3,     0,    79,     0,   102,     0,   101,   102,
      0,   101,     0,   102,     0,   103,     0,    41,   104,    42,       0,   103,     0,   104,     0,   105,     0,    43,   106,    44,
      0,    48,   105,    49,     0,    45,   106,    46,     0,   107,       0,    50,   107,    51,     0,    47,   108,    48,     0,   109,
      0,   104,    43,   107,     0,   108,     0,   105,    43,   108,       0,   106,    45,   109,     0,   110,     0,   107,    45,   110,
      0,   109,     0,   106,    43,   109,     0,   110,     0,   111,       0,   111,     0,   108,    45,   111,     0,   112,     0,   113,
      0,    69,     0,   131,     0,     4,     0,    91,     0,   127,       0,    71,     0,   133,     0,     4,     0,    93,     0,   129,
      0,   117,     0,   113,   117,     0,   114,     0,   113,   114,       0,   119,     0,   115,   119,     0,   116,     0,   115,   116,
      0,   115,    47,     0,   117,     0,   117,     0,     4,     5,       0,   117,    49,     0,   119,     0,   119,     0,     4,     5,
      0,     4,     0,   118,     0,   119,     0,   120,     0,    44,       0,     4,     0,   120,     0,   121,     0,   122,     0,    46,
    121,     0,     4,   122,     0,    41,    70,    42,     0,     4,     123,     0,     4,   124,     0,    43,    72,    44,     0,     4,
      0,   123,     0,   122,   123,     0,    44,   121,     0,   125,       0,   125,     0,   124,   125,     0,    46,   123,     0,   127,
      0,   126,     0,     4,    51,     0,   125,    51,     0,   128,       0,   128,     0,     4,    53,     0,   127,    53,     0,   130,
      0,     4,     0,    74,     0,    95,     0,    52,   129,    52,       0,     4,     0,    76,     0,    97,     0,    54,   131,    54,
      0,    53,   129,    53,     0,    48,   128,    49,     0,    33,       0,    55,   131,    55,     0,    50,   130,    51,     0,    34,
    128,     0,    34,   128,     0,    32,   128,     0,    28,   128,     130,     0,    35,   130,     0,    33,   130,     0,    29,   130,
      0,    21,   128,     0,    22,   128,     0,    23,   128,     0,       0,    22,   130,     0,    23,   130,     0,    24,   130,     0,
     24,   128,     0,   128,    33,   128,     0,   128,    34,   128,      25,   130,     0,   130,    34,   130,     0,   130,    35,   130,
      0,   128,    35,   128,     0,   128,    36,   128,     0,   128,       0,   130,    36,   130,     0,   130,    37,   130,     0,   130,
     37,   128,     0,   128,    31,   128,     0,   128,    30,   128,      38,   130,     0,   130,    39,   130,     0,   130,    32,   130,
      0,   128,    29,   128,     0,   128,     8,   128,     0,   128,       0,   130,    31,   130,     0,   130,    30,   130,     0,   130,
      9,   128,     0,   128,    10,   128,     0,   128,    26,   128,       9,   130,     0,   130,    10,   130,     0,   130,    11,   130,
      0,   128,    27,   128,     0,   128,    11,   128,     0,   128,       0,   130,    27,   130,     0,   130,    28,   130,     0,   130,
     12,   128,     0,   128,    13,   128,     0,   128,    14,   128,      12,   130,     0,   130,    13,   130,     0,   130,    14,   130,
      0,   128,    15,   128,     0,   128,    16,   128,     0,   128,       0,   130,    15,   130,     0,   130,    16,   130,     0,   130,
     17,   128,     0,   128,    18,   128,     0,   128,    19,   128,      17,   130,     0,   130,    18,   130,     0,   130,    19,   130,
      0,   128,    20,   128,     0,   128,    25,   128,     0,    69,       0,   130,    20,   130,     0,   130,    21,   130,     0,   130,
      0,     4,     0,     0,     0      26,   130,     0,    71,     0,     4,     0,     0,     0
 };  };
   
 #endif  #endif
   
 #if YYDEBUG != 0  #if YYDEBUG != 0
 static const short yyrline[] = { 0,  static const short yyrline[] = { 0,
    106,   116,   118,   118,   119,   121,   121,   123,   189,   189,     107,   117,   119,   119,   120,   122,   122,   124,   190,   190,
    190,   190,   191,   192,   192,   194,   223,   223,   224,   225,     191,   191,   192,   193,   193,   195,   224,   224,   225,   226,
    225,   226,   226,   228,   228,   232,   232,   234,   234,   235,     226,   227,   227,   229,   229,   233,   233,   235,   235,   236,
    235,   236,   236,   236,   240,   244,   245,   245,   246,   247,     236,   237,   237,   237,   241,   245,   246,   246,   247,   248,
    249,   250,   265,   266,   266,   270,   274,   276,   277,   278,     250,   251,   273,   274,   274,   278,   282,   284,   285,   286,
    293,   298,   300,   302,   303,   305,   311,   317,   323,   325,     303,   308,   310,   312,   313,   315,   321,   327,   333,   335,
    326,   328,   334,   335,   335,   339,   343,   344,   345,   359,     336,   338,   344,   345,   345,   349,   353,   356,   359,   373,
    361,   361,   362,   364,   365,   367,   368,   369,   370,   372,     375,   375,   376,   378,   379,   381,   382,   383,   384,   386,
    374,   376,   378,   380,   382,   386,   390,   394,   396,   397,     388,   390,   392,   394,   396,   400,   404,   408,   410,   411,
    399,   406,   406,   408,   408,   409,   410,   415,   420,   422,     413,   420,   420,   422,   422,   423,   424,   432,   437,   439,
    424,   425,   426,   428,   432,   440,   446,   451,   451,   452,     441,   442,   443,   445,   449,   457,   463,   468,   468,   469,
    457,   459,   461,   465,   477,   481,   483,   484,   485,   486,     474,   476,   478,   482,   494,   498,   500,   501,   502,   503,
    487,   489,   490,   491,   492,   493,   494,   495,   496,   498,     504,   506,   507,   508,   509,   510,   511,   512,   513,   515,
    499,   500,   501,   502,   503,   504,   505,   506,   507,   508,     516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
    509,   510,   511,   512,   513,   514,   515,   516,   517,   518,     526,   527,   528,   529,   530,   531,   532,   533,   534,   535,
    519,   520,   521,   524,   533,   538,   539     536,   537,   538,   539,   542,   551,   556,   557
 };  };
 #endif  #endif
   
Line 225  static const short yyrline[] = { 0, Line 227  static const short yyrline[] = { 0,
 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)  #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
   
 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","\"&&\"","\"||\"",  "BOGUS","BAD_STRING_COMPARISON_OPERATOR","BAD_HEX_LITERAL","BAD_METHOD_DECL_START",
 "\"##\"","\"<=\"","\">=\"","\"==\"","\"!=\"","\"lt\"","\"gt\"","\"le\"","\"ge\"",  "\"&&\"","\"||\"","\"##\"","\"<=\"","\">=\"","\"==\"","\"!=\"","\"lt\"","\"gt\"",
 "\"eq\"","\"ne\"","\"def\"","\"in\"","\"-f\"","\"-d\"","\"is\"","'<'","'>'",  "\"le\"","\"ge\"","\"eq\"","\"ne\"","\"def\"","\"in\"","\"-f\"","\"-d\"","\"is\"",
 "'!'","'#'","'|'","'&'","'~'","'-'","'+'","'*'","'/'","'%'","NEG","'@'","'\\n'",  "'<'","'>'","'!'","'#'","'|'","'&'","'~'","'-'","'+'","'*'","'/'","'%'","'\\\\'",
 "'['","']'","';'","'$'","'{'","'}'","'.'","'('","')'","'^'","':'","'\\\"'","'\\''",  "NEG","'@'","'\\n'","'['","']'","';'","'$'","'{'","'}'","'.'","'('","')'","'^'",
 "all","methods","one_big_piece","method","control_method","maybe_control_strings",  "':'","'\\\"'","'\\''","all","methods","one_big_piece","method","control_method",
 "control_strings","control_string","maybe_string","code_method","maybe_bracketed_strings",  "maybe_control_strings","control_strings","control_string","maybe_string","code_method",
 "bracketed_maybe_strings","maybe_strings","strings","maybe_comment","maybe_codes",  "maybe_bracketed_strings","bracketed_maybe_strings","maybe_strings","strings",
 "codes","code","action","get","get_value","get_name_value","name_in_curly_rdive",  "maybe_comment","maybe_codes","codes","code","action","get","get_value","get_name_value",
 "name_without_curly_rdive","name_without_curly_rdive_read","name_without_curly_rdive_class",  "name_in_curly_rdive","name_without_curly_rdive","name_without_curly_rdive_read",
 "name_without_curly_rdive_code","put","name_expr_wdive","name_expr_wdive_root",  "name_without_curly_rdive_class","name_without_curly_rdive_code","put","name_expr_wdive",
 "name_expr_wdive_write","name_expr_wdive_class","construct","construct_square",  "name_expr_wdive_root","name_expr_wdive_write","name_expr_wdive_class","construct",
 "construct_round","construct_curly","any_constructor_code_value","constructor_code_value",  "construct_square","construct_round","construct_curly","any_constructor_code_value",
 "constructor_code","codes__excluding_sole_str_literal","call","call_value","@1",  "constructor_code_value","constructor_code","codes__excluding_sole_str_literal",
 "@2","call_name","store_params","store_param","store_square_param","store_round_param",  "call","call_value","@1","@2","call_name","store_params","store_param","store_square_param",
 "store_curly_param","store_code_param_parts","store_expr_param_parts","store_curly_param_parts",  "store_round_param","store_curly_param","store_code_param_parts","store_expr_param_parts",
 "store_code_param_part","store_expr_param_part","store_curly_param_part","code_param_value",  "store_curly_param_parts","store_code_param_part","store_expr_param_part","store_curly_param_part",
 "write_expr_value","name_expr_dive_code","name_path","name_step","name_advance1",  "code_param_value","write_expr_value","name_expr_dive_code","name_path","name_step",
 "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","subvar_ref_name_rdive","subvar_get_writes","subvar__get_write",
 "class_prefix","class_static_prefix","class_constructor_prefix","expr_value",  "class_prefix","class_static_prefix","class_constructor_prefix","expr_value",
 "expr","string_inside_quotes_value","write_string","void_value","empty", NULL  "expr","string_inside_quotes_value","write_string","void_value","empty", NULL
Line 251  static const char * const yytname[] = { Line 253  static const char * const yytname[] = {
 #endif  #endif
   
 static const short yyr1[] = {     0,  static const short yyr1[] = {     0,
     54,    54,    55,    55,    56,    57,    57,    58,    59,    59,      56,    56,    57,    57,    58,    59,    59,    60,    61,    61,
     60,    60,    61,    62,    62,    63,    64,    64,    65,    66,      62,    62,    63,    64,    64,    65,    66,    66,    67,    68,
     66,    67,    67,    68,    68,    69,    69,    70,    70,    71,      68,    69,    69,    70,    70,    71,    71,    72,    72,    73,
     71,    72,    72,    72,    73,    74,    75,    75,    76,    77,      73,    74,    74,    74,    75,    76,    77,    77,    78,    79,
     77,    78,    79,    80,    80,    81,    82,    82,    82,    83,      79,    80,    81,    82,    82,    83,    84,    84,    84,    85,
     84,    85,    86,    86,    86,    87,    88,    89,    90,    90,      86,    87,    88,    88,    88,    89,    90,    91,    92,    92,
     90,    91,    92,    93,    93,    94,    96,    97,    95,    98,      92,    93,    94,    95,    95,    96,    98,    99,    97,   100,
     99,    99,   100,   100,   100,   101,   102,   103,   104,   104,     101,   101,   102,   102,   102,   103,   104,   105,   106,   106,
    105,   105,   106,   106,   107,   108,   109,   110,   110,   110,     107,   107,   108,   108,   109,   110,   111,   112,   112,   112,
    111,   112,   112,   113,   113,   114,   115,   116,   116,   117,     113,   114,   114,   115,   115,   116,   117,   118,   118,   119,
    117,   117,   117,   118,   119,   120,   121,   122,   122,   123,     119,   119,   119,   120,   121,   122,   123,   124,   124,   125,
    124,   124,   125,   126,   127,   128,   128,   128,   128,   128,     126,   126,   127,   128,   129,   130,   130,   130,   130,   130,
    128,   128,   128,   128,   128,   128,   128,   128,   128,   128,     130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
    128,   128,   128,   128,   128,   128,   128,   128,   128,   128,     130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
    128,   128,   128,   128,   128,   128,   128,   128,   128,   128,     130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
    128,   128,   128,   129,   130,   131,   132     130,   130,   130,   130,   131,   132,   133,   134
 };  };
   
 static const short yyr2[] = {     0,  static const short yyr2[] = {     0,
Line 285  static const short yyr2[] = {     0, Line 287  static const short yyr2[] = {     0,
      3,     2,     2,     2,     2,     2,     2,     2,     2,     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,     1,     1,     0,     0       3,     3,     3,     3,     1,     1,     0,     0
 };  };
   
 static const short yydefact[] = {   157,  static const short yydefact[] = {   158,
    155,     0,     0,    67,     2,     1,     3,     6,     7,     5,     156,     0,     0,    67,     2,     1,     3,     6,     7,     5,
     27,    28,    31,    32,    35,    33,    34,    66,    30,    26,      27,    28,    31,    32,    35,    33,    34,    66,    30,    26,
      0,   100,     0,     0,     0,     0,    36,    38,     0,    40,       0,   100,     0,     0,     0,     0,    36,    38,     0,    40,
     41,    42,     0,    47,    48,    49,    50,     0,    94,     0,      41,    42,     0,    47,    48,    49,    50,     0,    94,     0,
     44,    92,   101,   102,   103,     0,   111,   112,     0,     4,      44,    92,   101,   102,   103,     0,   111,   112,     0,     4,
     29,   157,   157,   157,    99,     0,   113,   105,   108,     0,      29,   158,   158,   158,    99,     0,   113,   105,   108,     0,
    107,   104,     0,     0,    98,     0,   100,    51,     0,    92,     107,   104,     0,     0,    98,     0,   100,    51,     0,    92,
     37,   156,   157,     0,    46,    53,    54,    55,   100,    95,      37,   157,   158,     0,    46,    53,    54,    55,   100,    95,
     45,    93,    96,    43,    52,   114,    70,    68,    15,     8,      45,    93,    96,    43,    52,   114,    70,    68,    15,     8,
     10,    11,     0,     9,    22,     0,    21,    20,   157,    18,      10,    11,     0,     9,    22,     0,    21,    20,   158,    18,
     17,   110,   109,   106,    39,    93,   155,     0,    31,     0,      17,   110,   109,   106,    39,    93,   156,     0,    31,     0,
     61,    62,    63,    59,     0,   116,     0,     0,     0,     0,      61,    62,    63,    59,     0,   116,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,   157,   157,   117,   118,       0,     0,     0,     0,     0,     0,   158,   158,   117,   118,
      0,   115,     0,    12,    14,    13,    19,     0,    25,     0,       0,   115,     0,    12,    14,    13,    19,     0,    25,     0,
     24,    65,    56,    58,   126,   127,   128,   129,   125,   124,      24,    65,    56,    58,   126,   127,   128,   129,   125,   124,
    122,   123,     0,   154,     0,     0,    57,     0,     0,     0,     122,   123,     0,   155,     0,     0,    57,     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,   156,   157,     0,     0,    71,    73,    74,    75,    23,       0,     0,   157,   158,     0,     0,    71,    73,    74,    75,
    157,   121,   119,   120,   138,   139,   140,   143,   144,   145,      23,   158,   121,   119,   120,   139,   140,   141,   144,   145,
    146,   147,   148,   149,   150,   151,   152,   153,   141,   142,     146,   147,   148,   149,   150,   151,   152,   153,   154,   142,
    137,   136,   135,   130,   131,   132,   133,   134,   155,    90,     143,   138,   137,   136,   130,   131,   132,   133,   134,   135,
      0,    79,    85,    88,    87,     0,    83,     0,    81,    86,     156,    90,     0,    79,    85,    88,    87,     0,    83,     0,
     91,    69,    72,    16,    76,   156,   157,    78,     0,    77,      81,    86,    91,    69,    72,    16,    76,   157,   158,    78,
     80,    84,    82,     0,     0,     0       0,    77,    80,    84,    82,     0,     0,     0
 };  };
   
 static const short yydefgoto[] = {   244,  static const short yydefgoto[] = {   246,
      5,     6,     7,     8,    90,    91,    92,    93,     9,    99,       5,     6,     7,     8,    90,    91,    92,    93,     9,    99,
     54,    96,    97,   140,   154,    11,    12,    13,    14,   129,      54,    96,    97,   140,   154,    11,    12,    13,    14,   129,
     27,    28,    29,    30,    31,    32,    16,    33,    34,    35,      27,    28,    29,    30,    31,    32,    16,    33,    34,    35,
     36,    75,    76,    77,    78,   110,   220,   112,   113,    17,      36,    75,    76,    77,    78,   110,   222,   112,   113,    17,
    130,    49,   133,    88,   185,   186,   187,   188,   189,   221,     130,    49,   133,    88,   186,   187,   188,   189,   190,   223,
    228,   226,   222,   229,   227,   223,   230,    37,    64,    39,     230,   228,   224,   231,   229,   225,   232,    37,    64,    39,
     40,    41,    65,    43,    44,    45,    62,    58,    59,    66,      40,    41,    65,    43,    44,    45,    62,    58,    59,    66,
     47,    48,   231,   132,   155,    19,   224,    20      47,    48,   233,   132,   155,    19,   226,    20
 };  };
   
 static const short yypact[] = {    13,  static const short yypact[] = {     5,
 -32768,    11,    75,-32768,    -2,-32768,-32768,-32768,-32768,-32768,  -32768,    20,    75,-32768,   -34,-32768,-32768,-32768,-32768,-32768,
     17,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,      18,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    -21,    40,    17,    79,    95,    99,-32768,-32768,    82,-32768,     -27,    31,    18,    27,    97,   102,-32768,-32768,    39,-32768,
 -32768,-32768,    53,-32768,-32768,-32768,-32768,   105,-32768,    60,  -32768,-32768,    91,-32768,-32768,-32768,-32768,   103,-32768,    32,
 -32768,    19,-32768,-32768,-32768,   105,    36,-32768,    95,-32768,  -32768,    42,-32768,-32768,-32768,   103,    34,-32768,    97,-32768,
 -32768,    91,   111,    76,-32768,    79,-32768,    56,-32768,    27,  -32768,    89,    96,    52,-32768,    27,-32768,    56,-32768,    17,
 -32768,-32768,    77,   105,    94,   105,    56,-32768,    99,    94,  -32768,-32768,    61,   103,    62,   103,    56,-32768,   102,    62,
 -32768,    20,    17,     6,-32768,-32768,-32768,-32768,     4,-32768,  -32768,    36,    18,     4,-32768,-32768,-32768,-32768,    25,-32768,
 -32768,    19,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -32768,    42,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     28,-32768,   107,   112,-32768,   103,   110,-32768,   144,-32768,       6,-32768,    74,    78,-32768,    87,    94,-32768,   115,-32768,
 -32768,-32768,-32768,-32768,-32768,    94,   122,    17,    70,   127,  -32768,-32768,-32768,-32768,-32768,    62,    88,    18,    41,   106,
 -32768,-32768,-32768,-32768,   135,-32768,     6,     6,     6,     6,  -32768,-32768,-32768,-32768,   105,-32768,     4,     4,     4,     4,
      6,     6,     6,     6,    93,     6,    17,    17,-32768,-32768,       4,     4,     4,     4,    90,     4,    18,    18,-32768,-32768,
    138,   275,    73,-32768,-32768,-32768,-32768,   184,-32768,   149,     101,   277,   104,-32768,-32768,-32768,-32768,   159,-32768,   123,
 -32768,    17,-32768,-32768,   190,   190,   190,   190,   190,   143,  -32768,    18,-32768,-32768,   191,   191,   191,   191,   191,   198,
 -32768,-32768,   233,-32768,   140,   169,-32768,     6,     6,     6,  -32768,-32768,   234,-32768,   112,   113,-32768,     4,     4,     4,
      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
      6,    42,    17,     6,    48,-32768,-32768,-32768,-32768,-32768,       4,     4,    37,    18,     4,    49,-32768,-32768,-32768,-32768,
     17,-32768,-32768,-32768,   362,   335,   305,   387,   387,   137,  -32768,    18,-32768,-32768,-32768,   367,   339,   308,   393,   393,
    137,   387,   387,   387,   387,   137,   137,   190,   387,   387,     143,   143,   393,   393,   393,   393,   143,   143,   191,   393,
    241,   197,   143,    96,    96,-32768,-32768,-32768,    83,-32768,     393,   243,   401,   198,   152,   152,-32768,-32768,-32768,-32768,
    108,-32768,-32768,-32768,-32768,    59,-32768,   -35,-32768,-32768,      70,-32768,    81,-32768,-32768,-32768,-32768,   -28,-32768,    53,
 -32768,-32768,-32768,-32768,-32768,    42,    17,-32768,     6,-32768,  -32768,-32768,-32768,-32768,-32768,-32768,-32768,    37,    18,-32768,
 -32768,-32768,-32768,   235,   254,-32768       4,-32768,-32768,-32768,-32768,   170,   171,-32768
 };  };
   
 static const short yypgoto[] = {-32768,  static const short yypgoto[] = {-32768,
 -32768,-32768,   185,-32768,-32768,-32768,   164,-32768,-32768,-32768,  -32768,-32768,   167,-32768,-32768,-32768,   133,-32768,-32768,-32768,
    202,-32768,-32768,-32768,     3,   -18,    -7,   -71,-32768,     0,     139,-32768,-32768,-32768,     3,   -18,    -7,   -71,-32768,     0,
 -32768,-32768,    57,-32768,-32768,   -40,-32768,-32768,-32768,-32768,  -32768,-32768,    -6,-32768,-32768,    51,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,   189,-32768,-32768,-32768,  -32768,-32768,-32768,-32768,-32768,-32768,   184,-32768,-32768,-32768,
      2,-32768,-32768,-32768,-32768,    72,-32768,-32768,-32768,-32768,       2,-32768,-32768,-32768,-32768,    71,-32768,-32768,-32768,-32768,
 -32768,-32768,    29,    34,    43,-32768,-32768,   -10,    78,   -20,  -32768,-32768,    21,    22,    19,-32768,-32768,   -12,    77,   -20,
 -32768,   -31,     9,-32768,-32768,-32768,   223,-32768,   238,   278,  -32768,   -32,     9,-32768,-32768,-32768,   211,-32768,   218,   280,
 -32768,-32768,   224,    37,   171,-32768,   225,   -11  -32768,-32768,   210,    38,   172,-32768,   227,    14
 };  };
   
   
 #define YYLAST          424  #define YYLAST          440
   
   
 static const short yytable[] = {    15,  static const short yytable[] = {    15,
    109,    18,    10,    51,    60,    84,    81,   239,    55,   116,     109,    18,    10,    51,    60,    81,     2,   116,     1,    89,
     15,    42,    18,   240,    21,    68,     1,    80,    52,    53,      15,    42,    18,    68,    52,    53,   239,    80,    63,   240,
      1,   -98,    15,   107,    18,    84,   117,   118,   119,   120,       1,     1,    15,    21,    18,   117,   118,   119,   120,    55,
      1,    89,    81,   121,    70,    85,     2,   122,   123,   124,      61,    81,   121,    85,    70,    55,   122,   123,   124,   107,
     94,    98,   101,    80,    55,   219,    82,    56,    80,   125,     221,    71,    87,    80,   -98,     2,    82,  -158,    80,   125,
    232,     2,    51,   126,    42,     4,     3,   127,   128,    15,       3,   234,    51,   126,    42,     4,     4,   127,   128,    15,
      3,    18,     4,     3,   108,   -97,     4,  -157,   104,     4,     104,    18,     3,     3,   108,    94,    98,   101,     4,     4,
      3,    15,    15,    18,    18,   115,     4,   106,    22,   135,      56,    15,    15,    18,    18,   115,    56,   106,    22,    38,
     38,    63,    61,    56,    71,     3,    86,   141,   182,   142,      83,     3,     3,    57,   -64,   -64,    86,     4,     4,   142,
     57,     4,   183,    72,    89,   184,    22,    73,    22,    56,     -97,   183,    89,    22,    53,   184,    84,   241,   185,    95,
     74,   237,    67,    69,   238,    87,    83,    15,    79,    18,      22,    56,    69,   242,   135,    67,    79,    15,   105,    18,
    109,   -64,   -64,   182,    95,    23,    53,   183,    24,    25,     -97,   109,   141,   -89,   -89,   136,    84,    23,   139,   -14,
    184,    26,   105,    38,   -89,   -89,    15,    15,    18,    18,      24,    25,    38,    26,   237,   238,    15,    15,    18,    18,
    179,   180,   181,    23,    51,    23,    24,    25,    24,    23,     137,   -60,    23,    72,    51,    24,    25,    73,   138,    23,
    -97,    15,    24,    18,   137,    23,   136,   139,    24,   235,      74,    15,    24,    18,    23,    23,   183,    24,    24,   143,
    236,   -14,   138,   145,   146,   147,   148,   149,   150,   151,     184,   157,   144,   185,   145,   146,   147,   148,   149,   150,
    152,   171,   153,   -60,   109,   174,   175,   176,   143,   177,     151,   152,   191,   153,   192,   194,   109,   195,   171,   247,
    178,   179,   180,   181,   108,   177,   178,   179,   180,   181,     248,    50,   174,   175,   176,   108,   177,   178,   179,   180,
    144,    15,    15,    18,    18,   225,   157,   190,   191,    50,     181,   182,    15,    15,    18,    18,   227,   179,   180,   181,
     15,   193,    18,   234,   195,   196,   197,   198,   199,   200,     182,    15,   100,    18,   236,   196,   197,   198,   199,   200,
    201,   202,   203,   204,   205,   206,   207,   208,   209,   210,     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
    211,   212,   213,   214,   215,   216,   217,   218,   174,   175,     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
    176,   194,   177,   178,   179,   180,   181,   176,   108,   177,     174,   175,   176,   134,   177,   178,   179,   180,   181,   182,
    178,   179,   180,   181,   245,    15,    15,    18,    18,   225,     108,   177,   178,   179,   180,   181,   182,    15,    15,    18,
    158,   159,   160,   161,   162,   163,   164,   165,   166,   167,      18,   227,   158,   159,   160,   161,   162,   163,   164,   165,
    168,   169,   170,   246,   134,   100,   233,   171,   172,   173,     166,   167,   168,   169,   170,   111,   235,   244,   243,   171,
    111,   174,   175,   176,   241,   177,   178,   179,   180,   181,     172,   173,   245,   174,   175,   176,   102,   177,   178,   179,
    175,   176,   243,   177,   178,   179,   180,   181,   102,   242,     180,   181,   182,   175,   176,   103,   177,   178,   179,   180,
     46,   192,   158,   159,   160,   161,   162,   163,   164,   165,     181,   182,    46,   131,   193,   158,   159,   160,   161,   162,
    166,   167,   168,   169,   170,   103,   114,   131,   156,   171,     163,   164,   165,   166,   167,   168,   169,   170,   114,   156,
    172,   173,     0,   174,   175,   176,     0,   177,   178,   179,       0,     0,   171,   172,   173,     0,   174,   175,   176,     0,
    180,   181,   158,   159,     0,   161,   162,   163,   164,   165,     177,   178,   179,   180,   181,   182,   158,   159,     0,   161,
    166,   167,   168,   169,   170,     0,     0,     0,     0,   171,     162,   163,   164,   165,   166,   167,   168,   169,   170,     0,
    172,   173,     0,   174,   175,   176,     0,   177,   178,   179,       0,     0,     0,   171,   172,   173,     0,   174,   175,   176,
    180,   181,   158,     0,     0,   161,   162,   163,   164,   165,       0,   177,   178,   179,   180,   181,   182,   158,     0,     0,
    166,   167,   168,   169,   170,     0,     0,     0,     0,   171,     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
    172,   173,     0,   174,   175,   176,     0,   177,   178,   179,       0,     0,     0,     0,   171,   172,   173,     0,   174,   175,
    180,   181,   161,   162,   163,   164,   165,   166,   167,   168,     176,     0,   177,   178,   179,   180,   181,   182,   161,   162,
    169,   170,     0,     0,     0,     0,   171,   172,   173,     0,     163,   164,   165,   166,   167,   168,   169,   170,     0,     0,
    174,   175,   176,     0,   177,   178,   179,   180,   181,   163,       0,     0,   171,   172,   173,     0,   174,   175,   176,     0,
    164,     0,     0,     0,     0,   169,   170,     0,     0,     0,     177,   178,   179,   180,   181,   182,   163,   164,     0,     0,
      0,   171,     0,     0,     0,   174,   175,   176,     0,   177,       0,     0,   169,   170,     0,     0,     0,     0,   171,     0,
    178,   179,   180,   181       0,     0,   174,   175,   176,     0,   177,   178,   179,   180,
      181,   182,   176,     0,   177,   178,   179,   180,   181,   182
 };  };
   
 static const short yycheck[] = {     0,  static const short yycheck[] = {     0,
     72,     0,     0,    11,    23,    46,    38,    43,     5,     4,      72,     0,     0,    11,    23,    38,    41,     4,     4,     4,
     11,     3,    11,    49,     4,    26,     4,    38,    40,    41,      11,     3,    11,    26,    42,    43,    45,    38,    25,    48,
      4,     3,    23,     4,    23,    66,    21,    22,    23,    24,       4,     4,    23,     4,    23,    22,    23,    24,    25,     5,
      4,     4,    64,    28,    26,    46,    39,    32,    33,    34,       4,    64,    29,    46,    26,     5,    33,    34,    35,     4,
     52,    53,    54,    64,     5,     4,    38,    44,    69,    44,       4,     3,    49,    64,     3,    41,    38,    42,    69,    46,
      3,    39,    60,    48,    46,    50,    44,    52,    53,    60,      46,     3,    60,    50,    46,    52,    52,    54,    55,    60,
     44,    60,    50,    44,    72,    47,    50,    40,    42,    50,      44,    60,    46,    46,    72,    52,    53,    54,    52,    52,
     44,    72,    73,    72,    73,    73,    50,    69,     4,    91,      46,    72,    73,    72,    73,    73,    46,    69,     4,     3,
      3,    25,     4,    44,     3,    44,    51,    99,    41,   108,      49,    46,    46,    53,    44,    45,    53,    52,    52,   108,
     51,    50,    45,    41,     4,    48,     4,    45,     4,    44,      49,    43,     4,     4,    43,    47,    46,    45,    50,     4,
     48,    43,     4,    26,    46,    49,    47,   108,     4,   108,       4,    46,    26,    51,    91,     4,     4,   108,    48,   108,
    182,    42,    43,    41,     4,    41,    41,    45,    44,    45,      49,   183,    99,    44,    45,    42,    66,    43,     4,    42,
     48,    47,    46,    46,    42,    43,   127,   128,   127,   128,      46,    47,    46,    49,    44,    45,   127,   128,   127,   128,
     35,    36,    37,    41,   142,    41,    44,    45,    44,    41,      44,    44,    43,    43,   142,    46,    47,    47,    45,    43,
     47,   142,    44,   142,    42,    41,    40,     4,    44,    42,      50,   142,    46,   142,    43,    43,    43,    46,    46,    44,
     43,    40,    43,   117,   118,   119,   120,   121,   122,   123,      47,    51,    48,    50,   117,   118,   119,   120,   121,   122,
    124,    25,   126,    42,   236,    29,    30,    31,    42,    33,     123,   124,     4,   126,    42,    54,   238,    55,    26,     0,
     34,    35,    36,    37,   182,    33,    34,    35,    36,    37,       0,     5,    30,    31,    32,   183,    34,    35,    36,    37,
     46,   182,   183,   182,   183,   183,    49,     4,    40,     5,      38,    39,   183,   184,   183,   184,   184,    36,    37,    38,
    191,    52,   191,   191,   158,   159,   160,   161,   162,   163,      39,   192,    54,   192,   192,   158,   159,   160,   161,   162,
    164,   165,   166,   167,   168,   169,   170,   171,   172,   173,     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
    174,   175,   176,   177,   178,   179,   180,   181,    29,    30,     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
     31,    53,    33,    34,    35,    36,    37,    31,   236,    33,      30,    31,    32,    91,    34,    35,    36,    37,    38,    39,
     34,    35,    36,    37,     0,   236,   237,   236,   237,   237,     238,    34,    35,    36,    37,    38,    39,   238,   239,   238,
      8,     9,    10,    11,    12,    13,    14,    15,    16,    17,     239,   239,     9,    10,    11,    12,    13,    14,    15,    16,
     18,    19,    20,     0,    91,    54,   185,    25,    26,    27,      17,    18,    19,    20,    21,    72,   186,   239,   238,    26,
     72,    29,    30,    31,   236,    33,    34,    35,    36,    37,      27,    28,   241,    30,    31,    32,    56,    34,    35,    36,
     30,    31,   239,    33,    34,    35,    36,    37,    56,   237,      37,    38,    39,    31,    32,    58,    34,    35,    36,    37,
      3,    49,     8,     9,    10,    11,    12,    13,    14,    15,      38,    39,     3,    74,    51,     9,    10,    11,    12,    13,
     16,    17,    18,    19,    20,    58,    72,    74,   128,    25,      14,    15,    16,    17,    18,    19,    20,    21,    72,   128,
     26,    27,    -1,    29,    30,    31,    -1,    33,    34,    35,      -1,    -1,    26,    27,    28,    -1,    30,    31,    32,    -1,
     36,    37,     8,     9,    -1,    11,    12,    13,    14,    15,      34,    35,    36,    37,    38,    39,     9,    10,    -1,    12,
     16,    17,    18,    19,    20,    -1,    -1,    -1,    -1,    25,      13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
     26,    27,    -1,    29,    30,    31,    -1,    33,    34,    35,      -1,    -1,    -1,    26,    27,    28,    -1,    30,    31,    32,
     36,    37,     8,    -1,    -1,    11,    12,    13,    14,    15,      -1,    34,    35,    36,    37,    38,    39,     9,    -1,    -1,
     16,    17,    18,    19,    20,    -1,    -1,    -1,    -1,    25,      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     26,    27,    -1,    29,    30,    31,    -1,    33,    34,    35,      -1,    -1,    -1,    -1,    26,    27,    28,    -1,    30,    31,
     36,    37,    11,    12,    13,    14,    15,    16,    17,    18,      32,    -1,    34,    35,    36,    37,    38,    39,    12,    13,
     19,    20,    -1,    -1,    -1,    -1,    25,    26,    27,    -1,      14,    15,    16,    17,    18,    19,    20,    21,    -1,    -1,
     29,    30,    31,    -1,    33,    34,    35,    36,    37,    13,      -1,    -1,    26,    27,    28,    -1,    30,    31,    32,    -1,
     14,    -1,    -1,    -1,    -1,    19,    20,    -1,    -1,    -1,      34,    35,    36,    37,    38,    39,    14,    15,    -1,    -1,
     -1,    25,    -1,    -1,    -1,    29,    30,    31,    -1,    33,      -1,    -1,    20,    21,    -1,    -1,    -1,    -1,    26,    -1,
     34,    35,    36,    37      -1,    -1,    30,    31,    32,    -1,    34,    35,    36,    37,
       38,    39,    32,    -1,    34,    35,    36,    37,    38,    39
 };  };
 #define YYPURE 1  #define YYPURE 1
   
Line 1007  yyreduce: Line 1011  yyreduce:
   switch (yyn) {    switch (yyn) {
   
 case 1:  case 1:
 #line 107 "compile.y"  #line 108 "compile.y"
 {  {
         Method& method=*NEW Method(POOL,           Method& method=*NEW Method(POOL, 
                 *main_method_name,                   *main_method_name, 
Line 1019  case 1: Line 1023  case 1:
 ;  ;
     break;}      break;}
 case 8:  case 8:
 #line 124 "compile.y"  #line 125 "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 1087  case 8: Line 1091  case 8:
 ;  ;
     break;}      break;}
 case 12:  case 12:
 #line 190 "compile.y"  #line 191 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 16:  case 16:
 #line 195 "compile.y"  #line 196 "compile.y"
 {  {
         const String *name=LA2S(yyvsp[-5]);          const String *name=LA2S(yyvsp[-5]);
   
Line 1121  case 16: Line 1125  case 16:
 ;  ;
     break;}      break;}
 case 19:  case 19:
 #line 224 "compile.y"  #line 225 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 23:  case 23:
 #line 226 "compile.y"  #line 227 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 29:  case 29:
 #line 234 "compile.y"  #line 235 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 35:  case 35:
 #line 240 "compile.y"  #line 241 "compile.y"
 {  {
         yyval=yyvsp[0]; /* stack: resulting value */          yyval=yyvsp[0]; /* stack: resulting value */
         O(yyval, OP_WRITE_VALUE); /* value=pop; wcontext.write(value) */          O(yyval, OP_WRITE_VALUE); /* value=pop; wcontext.write(value) */
 ;  ;
     break;}      break;}
 case 36:  case 36:
 #line 244 "compile.y"  #line 245 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 39:  case 39:
 #line 246 "compile.y"  #line 247 "compile.y"
 { yyval=yyvsp[-1] ;  { yyval=yyvsp[-1] ;
     break;}      break;}
 case 42:  case 42:
 #line 250 "compile.y"  #line 251 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         Array *diving_code=yyvsp[0];          Array *diving_code=yyvsp[0];
         const String *first_name=LA2S(diving_code);          const String *first_name=LA2S(diving_code);
           // self.xxx... -> xxx...
           // OP_VALUE+string+OP_GET_ELEMENT+... -> OP_WITH_SELF+...
         if(first_name && *first_name==SELF_ELEMENT_NAME) {          if(first_name && *first_name==SELF_ELEMENT_NAME) {
                 O(yyval, OP_WITH_SELF); /* stack: starting context */                  O(yyval, OP_WITH_SELF); /* stack: starting context */
                 P(yyval, diving_code,                   P(yyval, diving_code, 
                         /* skip over... */                          /* skip over... */
                         diving_code->size()>2?3/*OP_+string+get_element*/:2/*OP_+string*/);                          diving_code->size()>=3?3/*OP_VALUE+string+OP_GET_ELEMENTx*/:2/*OP_+string*/);
         } else {          } else {
                 O(yyval, OP_WITH_READ); /* stack: starting context */                  O(yyval, OP_WITH_READ); /* stack: starting context */
   
                   // ^if ELEMENT -> ^if ELEMENT_OR_OPERATOR
                   // OP_VALUE+string+OP_GET_ELEMENT. -> OP_VALUE+string+OP_GET_ELEMENT_OR_OPERATOR.
                   if(PC.in_call_value && diving_code->size()==3)
                           diving_code->put_int(2, OP_GET_ELEMENT_OR_OPERATOR);
                 P(yyval, diving_code);                  P(yyval, diving_code);
         }          }
         /* diving code; stack: current context */          /* diving code; stack: current context */
 ;  ;
     break;}      break;}
 case 43:  case 43:
 #line 265 "compile.y"  #line 273 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 45:  case 45:
 #line 266 "compile.y"  #line 274 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 46:  case 46:
 #line 270 "compile.y"  #line 278 "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 50:
 #line 278 "compile.y"  #line 286 "compile.y"
 {  {
         yyval=N(POOL);          yyval=N(POOL);
         Array *diving_code=yyvsp[0];          Array *diving_code=yyvsp[0];
         const String *first_name=LA2S(diving_code);          const String *first_name=LA2S(diving_code);
           // $self.xxx... -> $xxx...
           // OP_VALUE+string+OP_GET_ELEMENT+... -> OP_WITH_SELF+...
         if(first_name && *first_name==SELF_ELEMENT_NAME) {          if(first_name && *first_name==SELF_ELEMENT_NAME) {
                 O(yyval, OP_WITH_SELF); /* stack: starting context */                  O(yyval, OP_WITH_SELF); /* stack: starting context */
                 P(yyval, diving_code,                   P(yyval, diving_code, 
                         /* skip over... */                          /* skip over... */
                         diving_code->size()>2?3/*OP_+string+get_element*/:2/*OP_+string*/);                          diving_code->size()>=3?3/*OP_VALUE+string+OP_GET_ELEMENTx*/:2/*OP_+string*/);
         } else {          } else {
                 O(yyval, OP_WITH_ROOT); /* stack: starting context */                  O(yyval, OP_WITH_ROOT); /* stack: starting context */
                 P(yyval, diving_code);                  P(yyval, diving_code);
Line 1199  case 50: Line 1212  case 50:
 ;  ;
     break;}      break;}
 case 51:  case 51:
 #line 293 "compile.y"  #line 303 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_WITH_WRITE); /* stack: starting context */          O(yyval, OP_WITH_WRITE); /* stack: starting context */
Line 1207  case 51: Line 1220  case 51:
 ;  ;
     break;}      break;}
 case 52:  case 52:
 #line 298 "compile.y"  #line 308 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 56:  case 56:
 #line 305 "compile.y"  #line 315 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=yyvsp[-1]; // stack: context, name, value          yyval=yyvsp[-1]; // stack: context, name, value
Line 1219  case 56: Line 1232  case 56:
 ;  ;
     break;}      break;}
 case 57:  case 57:
 #line 311 "compile.y"  #line 321 "compile.y"
 {   { 
         // stack: context, name          // stack: context, name
         yyval=yyvsp[-1]; // stack: context, name, value          yyval=yyvsp[-1]; // stack: context, name, value
Line 1227  case 57: Line 1240  case 57:
 ;  ;
     break;}      break;}
 case 58:  case 58:
 #line 317 "compile.y"  #line 327 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=N(POOL);           yyval=N(POOL); 
Line 1235  case 58: Line 1248  case 58:
 ;  ;
     break;}      break;}
 case 62:  case 62:
 #line 328 "compile.y"  #line 338 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_CREATE_EWPOOL); /* stack: empty write context */          O(yyval, OP_CREATE_EWPOOL); /* stack: empty write context */
Line 1244  case 62: Line 1257  case 62:
 ;  ;
     break;}      break;}
 case 65:  case 65:
 #line 335 "compile.y"  #line 345 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 66:  case 66:
 #line 339 "compile.y"  #line 349 "compile.y"
 {  {
         yyval=yyvsp[0]; /* stack: value */          yyval=yyvsp[0]; /* stack: value */
         O(yyval, OP_WRITE_VALUE); /* value=pop; wcontext.write(value) */          O(yyval, OP_WRITE_VALUE); /* value=pop; wcontext.write(value) */
 ;  ;
     break;}      break;}
 case 67:  case 67:
 #line 343 "compile.y"  #line 353 "compile.y"
 { PC.object_constructor_allowed=true ;  { 
                                           PC.in_call_value=true; 
                           ;
     break;}      break;}
 case 68:  case 68:
 #line 344 "compile.y"  #line 356 "compile.y"
 { PC.object_constructor_allowed=false ;  {
                                   PC.in_call_value=false;
                           ;
     break;}      break;}
 case 69:  case 69:
 #line 345 "compile.y"  #line 359 "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 */
         O(yyval, OP_GET_METHOD_FRAME); /* stack: context,method_frame */          O(yyval, OP_GET_METHOD_FRAME); /* stack: context,method_frame */
Line 1279  case 69: Line 1296  case 69:
 ;  ;
     break;}      break;}
 case 72:  case 72:
 #line 361 "compile.y"  #line 375 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 76:  case 76:
 #line 367 "compile.y"  #line 381 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 77:  case 77:
 #line 368 "compile.y"  #line 382 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 78:  case 78:
 #line 369 "compile.y"  #line 383 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 80:  case 80:
 #line 372 "compile.y"  #line 386 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 82:  case 82:
 #line 376 "compile.y"  #line 390 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 84:  case 84:
 #line 380 "compile.y"  #line 394 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 85:  case 85:
 #line 382 "compile.y"  #line 396 "compile.y"
 {  {
         yyval=yyvsp[0];          yyval=yyvsp[0];
         O(yyval, OP_STORE_PARAM);          O(yyval, OP_STORE_PARAM);
 ;  ;
     break;}      break;}
 case 86:  case 86:
 #line 386 "compile.y"  #line 400 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         PEA(yyval, yyvsp[0]);          PEA(yyval, yyvsp[0]);
 ;  ;
     break;}      break;}
 case 87:  case 87:
 #line 390 "compile.y"  #line 404 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         PCA(yyval, yyvsp[0]);          PCA(yyval, yyvsp[0]);
 ;  ;
     break;}      break;}
 case 91:  case 91:
 #line 399 "compile.y"  #line 413 "compile.y"
 {  {
         yyval=yyvsp[0];          yyval=yyvsp[0];
         O(yyval, OP_WRITE_EXPR_RESULT);          O(yyval, OP_WRITE_EXPR_RESULT);
 ;  ;
     break;}      break;}
 case 93:  case 93:
 #line 406 "compile.y"  #line 420 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 95:  case 95:
 #line 408 "compile.y"  #line 422 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 97:  case 97:
 #line 410 "compile.y"  #line 424 "compile.y"
 {  {
           // 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
   
         /* 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 98:  case 98:
 #line 415 "compile.y"  #line 432 "compile.y"
 {  {
         /* stack: context */          /* stack: context */
         yyval=yyvsp[0]; /* stack: context,name */          yyval=yyvsp[0]; /* stack: context,name */
Line 1359  case 98: Line 1379  case 98:
 ;  ;
     break;}      break;}
 case 104:  case 104:
 #line 428 "compile.y"  #line 445 "compile.y"
 {  {
         yyval=yyvsp[0];          yyval=yyvsp[0];
         O(yyval, OP_GET_ELEMENT);          O(yyval, OP_GET_ELEMENT);
 ;  ;
     break;}      break;}
 case 105:  case 105:
 #line 432 "compile.y"  #line 449 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_CREATE_EWPOOL);          O(yyval, OP_CREATE_EWPOOL);
Line 1377  case 105: Line 1397  case 105:
 ;  ;
     break;}      break;}
 case 106:  case 106:
 #line 440 "compile.y"  #line 457 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_CREATE_EWPOOL);          O(yyval, OP_CREATE_EWPOOL);
Line 1386  case 106: Line 1406  case 106:
 ;  ;
     break;}      break;}
 case 107:  case 107:
 #line 446 "compile.y"  #line 463 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_WITH_READ);          O(yyval, OP_WITH_READ);
Line 1394  case 107: Line 1414  case 107:
 ;  ;
     break;}      break;}
 case 109:  case 109:
 #line 451 "compile.y"  #line 468 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 110:  case 110:
 #line 452 "compile.y"  #line 469 "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 113:
 #line 461 "compile.y"  #line 478 "compile.y"
 {  {
         yyval=yyvsp[-1]; // stack: class name string          yyval=yyvsp[-1]; // stack: class name string
         O(yyval, OP_GET_CLASS);          O(yyval, OP_GET_CLASS);
 ;  ;
     break;}      break;}
 case 114:  case 114:
 #line 465 "compile.y"  #line 482 "compile.y"
 {  {
         yyval=yyvsp[-1];          yyval=yyvsp[-1];
         if(!PC.object_constructor_allowed) {          if(!PC.in_call_value) {
                 strcpy(PC.error, ":: not allowed here");                  strcpy(PC.error, ":: not allowed here");
                 YYERROR;                  YYERROR;
         }          }
Line 1423  case 114: Line 1443  case 114:
 ;  ;
     break;}      break;}
 case 115:  case 115:
 #line 477 "compile.y"  #line 494 "compile.y"
 {  {
         if((yyval=yyvsp[0])->size()==2) // only one string literal in there?          if((yyval=yyvsp[0])->size()==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 119:
 #line 485 "compile.y"  #line 502 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 120:  case 120:
 #line 486 "compile.y"  #line 503 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 121:  case 121:
 #line 487 "compile.y"  #line 504 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 122:  case 122:
 #line 489 "compile.y"  #line 506 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_NEG) ;  { yyval=yyvsp[0];  O(yyval, OP_NEG) ;
     break;}      break;}
 case 123:  case 123:
 #line 490 "compile.y"  #line 507 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 124:  case 124:
 #line 491 "compile.y"  #line 508 "compile.y"
 { yyval=yyvsp[0];        O(yyval, OP_INV) ;  { yyval=yyvsp[0];        O(yyval, OP_INV) ;
     break;}      break;}
 case 125:  case 125:
 #line 492 "compile.y"  #line 509 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_NOT) ;  { yyval=yyvsp[0];  O(yyval, OP_NOT) ;
     break;}      break;}
 case 126:  case 126:
 #line 493 "compile.y"  #line 510 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_DEF) ;  { yyval=yyvsp[0];  O(yyval, OP_DEF) ;
     break;}      break;}
 case 127:  case 127:
 #line 494 "compile.y"  #line 511 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_IN) ;  { yyval=yyvsp[0];  O(yyval, OP_IN) ;
     break;}      break;}
 case 128:  case 128:
 #line 495 "compile.y"  #line 512 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_FEXISTS) ;  { yyval=yyvsp[0];  O(yyval, OP_FEXISTS) ;
     break;}      break;}
 case 129:  case 129:
 #line 496 "compile.y"  #line 513 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_DEXISTS) ;  { yyval=yyvsp[0];  O(yyval, OP_DEXISTS) ;
     break;}      break;}
 case 130:  case 130:
 #line 498 "compile.y"  #line 515 "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 131:
 #line 499 "compile.y"  #line 516 "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 132:
 #line 500 "compile.y"  #line 517 "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 133:
 #line 501 "compile.y"  #line 518 "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 134:
 #line 502 "compile.y"  #line 519 "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 135:
 #line 503 "compile.y"  #line 520 "compile.y"
 { yyval=yyvsp[-2];      P(yyval, yyvsp[0]);  O(yyval, OP_BIN_AND) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_INTDIV) ;
     break;}      break;}
 case 136:  case 136:
 #line 504 "compile.y"  #line 521 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_BIN_OR) ;  { yyval=yyvsp[-2];      P(yyval, yyvsp[0]);  O(yyval, OP_BIN_AND) ;
     break;}      break;}
 case 137:  case 137:
 #line 505 "compile.y"  #line 522 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_BIN_XOR) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_BIN_OR) ;
     break;}      break;}
 case 138:  case 138:
 #line 506 "compile.y"  #line 523 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_LOG_AND) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_BIN_XOR) ;
     break;}      break;}
 case 139:  case 139:
 #line 507 "compile.y"  #line 524 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_LOG_OR) ;  { yyval=yyvsp[-2];  PNC(yyval, yyvsp[0]);  O(yyval, OP_LOG_AND) ;
     break;}      break;}
 case 140:  case 140:
 #line 508 "compile.y"  #line 525 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_LOG_XOR) ;  { yyval=yyvsp[-2];  PNC(yyval, yyvsp[0]);  O(yyval, OP_LOG_OR) ;
     break;}      break;}
 case 141:  case 141:
 #line 509 "compile.y"  #line 526 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_LT) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_LOG_XOR) ;
     break;}      break;}
 case 142:  case 142:
 #line 510 "compile.y"  #line 527 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_GT) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_LT) ;
     break;}      break;}
 case 143:  case 143:
 #line 511 "compile.y"  #line 528 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_LE) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_GT) ;
     break;}      break;}
 case 144:  case 144:
 #line 512 "compile.y"  #line 529 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_GE) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_LE) ;
     break;}      break;}
 case 145:  case 145:
 #line 513 "compile.y"  #line 530 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_EQ) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_GE) ;
     break;}      break;}
 case 146:  case 146:
 #line 514 "compile.y"  #line 531 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_NE) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_EQ) ;
     break;}      break;}
 case 147:  case 147:
 #line 515 "compile.y"  #line 532 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_LT) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_NUM_NE) ;
     break;}      break;}
 case 148:  case 148:
 #line 516 "compile.y"  #line 533 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_GT) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_LT) ;
     break;}      break;}
 case 149:  case 149:
 #line 517 "compile.y"  #line 534 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_LE) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_GT) ;
     break;}      break;}
 case 150:  case 150:
 #line 518 "compile.y"  #line 535 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_GE) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_LE) ;
     break;}      break;}
 case 151:  case 151:
 #line 519 "compile.y"  #line 536 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_EQ) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_GE) ;
     break;}      break;}
 case 152:  case 152:
 #line 520 "compile.y"  #line 537 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_NE) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_EQ) ;
     break;}      break;}
 case 153:  case 153:
 #line 521 "compile.y"  #line 538 "compile.y"
 { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_IS) ;  { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_STR_NE) ;
     break;}      break;}
 case 154:  case 154:
 #line 524 "compile.y"  #line 539 "compile.y"
   { yyval=yyvsp[-2];  P(yyval, yyvsp[0]);  O(yyval, OP_IS) ;
       break;}
   case 155:
   #line 542 "compile.y"
 {  {
         yyval=N(POOL);          yyval=N(POOL);
         O(yyval, OP_CREATE_SWPOOL); /* stack: empty write context */          O(yyval, OP_CREATE_SWPOOL); /* stack: empty write context */
Line 1578  case 154: Line 1602  case 154:
         O(yyval, OP_REDUCE_SWPOOL); /* context=pop; stack: context.get_string() */          O(yyval, OP_REDUCE_SWPOOL); /* context=pop; stack: context.get_string() */
 ;  ;
     break;}      break;}
 case 155:  case 156:
 #line 533 "compile.y"  #line 551 "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 156:  case 157:
 #line 538 "compile.y"  #line 556 "compile.y"
 { yyval=VL(NEW VVoid(POOL)) ;  { yyval=VL(NEW VVoid(POOL)) ;
     break;}      break;}
 case 157:  case 158:
 #line 539 "compile.y"  #line 557 "compile.y"
 { yyval=N(POOL) ;  { yyval=N(POOL) ;
     break;}      break;}
 }  }
Line 1815  yyerrhandle: Line 1839  yyerrhandle:
     }      }
   return 1;    return 1;
 }  }
 #line 541 "compile.y"  #line 559 "compile.y"
   
 #endif  #endif
   
Line 1836  yyerrhandle: Line 1860  yyerrhandle:
 */  */
   
 static int yylex(YYSTYPE *lvalp, void *pc) {  static int yylex(YYSTYPE *lvalp, void *pc) {
         #define lexical_brackets_nestage PC.brackets_nestages[PC.sp]          #define lexical_brackets_nestage PC.brackets_nestages[PC.ls_sp]
         #define RC {result=c; goto break2; }          #define RC {result=c; goto break2; }
   
     register int c;      register int c;
Line 1862  static int yylex(YYSTYPE *lvalp, void *p Line 1886  static int yylex(YYSTYPE *lvalp, void *p
                 } else                  } else
                         PC.col++;                          PC.col++;
   
                 if(c=='^')                  if(c=='@' && PC.col==0+1) {
                           if(PC.ls==LS_DEF_SPECIAL_BODY) {
                                   // @SPECIAL
                                   // ...
                                   // @<here = 
                                   pop_LS(PC); // exiting from LS_DEF_SPECIAL_BODY state
                           } // continuing checks
                           if(PC.ls==LS_USER) {
                                   push_LS(PC, LS_DEF_NAME);
                                   RC;
                           } else // @ in first column inside some code [when could that be?]
                                   result=BAD_METHOD_DECL_START;
                           goto break2;
                   } else if(c=='^')
                         switch(PC.ls) {                          switch(PC.ls) {
 case LS_EXPRESSION_VAR_NAME_WITH_COLON:  case LS_EXPRESSION_VAR_NAME_WITH_COLON:
 case LS_EXPRESSION_VAR_NAME_WITHOUT_COLON:  case LS_EXPRESSION_VAR_NAME_WITHOUT_COLON:
Line 1881  default: Line 1918  default:
                         case '(': case ')':                          case '(': case ')':
                         case '[': case ']':                          case '[': case ']':
                         case '{': case '}':                          case '{': case '}':
                         case '"':                           case '"':  case ':':
                                 if(end!=begin) {                                  if(end!=begin) {
                                         // append piece till ^                                          // append piece till ^
                                         PC.string->APPEND_CLEAN(begin, end-begin, PC.file, begin_line);                                          PC.string->APPEND_CLEAN(begin, end-begin, PC.file, begin_line);
Line 1939  default: Line 1976  default:
                         }                          }
                         // fall into COMMENT lexical state [wait for \n]                          // fall into COMMENT lexical state [wait for \n]
                         push_LS(PC, LS_COMMENT);                          push_LS(PC, LS_COMMENT);
                           continue;
                 }                  }
                 switch(PC.ls) {                  switch(PC.ls) {
   
Line 1961  default: Line 1999  default:
                         case '^':                          case '^':
                                 push_LS(PC, LS_METHOD_NAME);                                  push_LS(PC, LS_METHOD_NAME);
                                 RC;                                  RC;
                         case '@':  
                                 if(PC.col==0+1) {  
                                         push_LS(PC, LS_DEF_NAME);  
                                         RC;  
                                 }  
                                 break;  
                         case ']':                          case ']':
                                 if(PC.ls==LS_NAME_SQUARE_PART)                                  if(PC.ls==LS_NAME_SQUARE_PART)
                                         if(--lexical_brackets_nestage==0) {// $name.[co<]?>de<]?>                                          if(--lexical_brackets_nestage==0) {// $name.[co<]?>de<]?>
Line 2062  default: Line 2094  default:
                         break;                          break;
   
                 case LS_DEF_SPECIAL_BODY:                  case LS_DEF_SPECIAL_BODY:
                         //                          @todo in case                          if(c=='\n')
                         // ################  
                         // @next-method  
                         // we are here with c=='@'  
                         // which is wrong, and need action  
                         if(c=='\n') {  
                                 switch(*PC.source) {  
                                 case '@': case 0: // end of special_code  
                                         pop_LS(PC);  
                                         break;  
                                 }  
                                 RC;                                  RC;
                         }  
                         break;                          break;
   
                 // (EXPRESSION)                  // (EXPRESSION)
Line 2112  default: Line 2133  default:
                                         goto break2;                                          goto break2;
                                 }                                  }
                                 goto break2;                                  goto break2;
                         case '+': case '*': case '/': case '%':                           case '+': case '*': case '/': case '%': case '\\':
                         case '~':                          case '~':
                         case ';':                          case ';':
                                 RC;                                  RC;
Line 2206  default: Line 2227  default:
                         if(                          if(
                                 PC.ls==LS_EXPRESSION_VAR_NAME_WITH_COLON ||                                  PC.ls==LS_EXPRESSION_VAR_NAME_WITH_COLON ||
                                 PC.ls==LS_EXPRESSION_VAR_NAME_WITHOUT_COLON) {                                  PC.ls==LS_EXPRESSION_VAR_NAME_WITHOUT_COLON) {
                                 // name in expr ends also before binary operators                                   // name in expr ends also before 
                                 switch(c) {                                  switch(c) {
                                   // expression minus
                                 case '-':                                   case '-': 
                                   // expression integer division
                                   case '\\':
                                         pop_LS(PC);                                          pop_LS(PC);
                                         PC.source--;  if(--PC.col<0) { PC.line--;  PC.col=-1; }                                          PC.source--;  if(--PC.col<0) { PC.line--;  PC.col=-1; }
                                         result=EON;                                          result=EON;
Line 2372  default: Line 2396  default:
                         case '.': // name part delim                           case '.': // name part delim 
                         case '$': // name part subvar                          case '$': // name part subvar
                         case ':': // ':name' or 'class:name'                          case ':': // ':name' or 'class:name'
                           case '^': // ^abc^xxx wrong. bailing out
                           case ']': case '}': case ')': // ^abc]}) wrong. bailing out
                                 RC;                                  RC;
                         }                          }
                         break;                          break;

Removed from v.1.15  
changed lines
  Added in v.1.41


E-mail: