Diff for /parser3/src/main/compile.tab.C between versions 1.70 and 1.79

version 1.70, 2002/10/14 15:22:42 version 1.79, 2002/12/15 09:11:14
Line 33 Line 33
 #define FEXISTS 283  #define FEXISTS 283
 #define DEXISTS 284  #define DEXISTS 284
 #define IS      285  #define IS      285
 #define NEG     286  #define NUNARY  286
   
 #line 1 "compile.y"  #line 1 "compile.y"
   
Line 72 Line 72
 #include "pa_vdouble.h"  #include "pa_vdouble.h"
 #include "pa_globals.h"  #include "pa_globals.h"
 #include "pa_vvoid.h"  #include "pa_vvoid.h"
   #include "pa_vmethod_frame.h"
   
 #define SELF_ELEMENT_NAME "self"  
 #define USE_CONTROL_METHOD_NAME "USE"  #define USE_CONTROL_METHOD_NAME "USE"
   
 static int real_yyerror(parse_control *pc, char *s);  static int real_yyerror(parse_control *pc, char *s);
Line 110  static const char yytranslate[] = { Line 110  static const char yytranslate[] = {
      2,     2,     2,     2,     2,     2,     2,     2,     2,    46,       2,     2,     2,     2,     2,     2,     2,     2,     2,    46,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,    34,    58,     2,    50,    42,    36,    59,    54,       2,     2,    44,    58,     2,    50,    41,    35,    59,    54,
     55,    40,    39,     2,    38,    53,    41,     2,     2,     2,      55,    38,    36,     2,    37,    53,    39,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,    57,    49,    32,       2,     2,     2,     2,     2,     2,     2,    57,    49,    32,
      2,    33,     2,    45,     2,     2,     2,     2,     2,     2,       2,    33,     2,    45,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     47,    43,    48,    56,     2,     2,     2,     2,     2,     2,      47,    40,    48,    56,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,    51,    35,    52,    37,     2,     2,     2,     2,       2,     2,    51,    34,    52,    43,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     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 135  static const char yytranslate[] = { Line 135  static const char yytranslate[] = {
      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,       2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     27,    28,    29,    30,    31,    44      27,    28,    29,    30,    31,    42
 };  };
   
 #if YYDEBUG != 0  #if YYDEBUG != 0
Line 189  static const short yyrhs[] = {    62, Line 189  static const short yyrhs[] = {    62,
      0,   129,     0,   128,   129,     0,    50,   127,     0,   131,       0,   129,     0,   128,   129,     0,    50,   127,     0,   131,
      0,   132,     0,     4,    57,     0,   131,    57,     0,   134,       0,   132,     0,     4,    57,     0,   131,    57,     0,   134,
      0,     4,     0,    80,     0,   101,     0,    58,   135,    58,       0,     4,     0,    80,     0,   101,     0,    58,   135,    58,
      0,    59,   135,    59,     0,    54,   134,    55,     0,    38,       0,    59,   135,    59,     0,    54,   134,    55,     0,    37,
    134,     0,    39,   134,     0,    37,   134,     0,    34,   134,     134,     0,    36,   134,     0,    43,   134,     0,    44,   134,
      0,    27,   134,     0,    28,   134,     0,    29,   134,     0,       0,    27,   134,     0,    28,   134,     0,    29,   134,     0,
     30,   134,     0,   134,    38,   134,     0,   134,    39,   134,      30,   134,     0,   134,    37,   134,     0,   134,    36,   134,
      0,   134,    40,   134,     0,   134,    41,   134,     0,   134,       0,   134,    38,   134,     0,   134,    39,   134,     0,   134,
     42,   134,     0,   134,    43,   134,     0,   134,    19,   134,      41,   134,     0,   134,    40,   134,     0,   134,    19,   134,
      0,   134,    20,   134,     0,   134,    36,   134,     0,   134,       0,   134,    20,   134,     0,   134,    35,   134,     0,   134,
     35,   134,     0,   134,    14,   134,     0,   134,    11,   134,      34,   134,     0,   134,    14,   134,     0,   134,    11,   134,
      0,   134,    12,   134,     0,   134,    13,   134,     0,   134,       0,   134,    12,   134,     0,   134,    13,   134,     0,   134,
     32,   134,     0,   134,    33,   134,     0,   134,    15,   134,      32,   134,     0,   134,    33,   134,     0,   134,    15,   134,
      0,   134,    16,   134,     0,   134,    17,   134,     0,   134,       0,   134,    16,   134,     0,   134,    17,   134,     0,   134,
Line 210  static const short yyrhs[] = {    62, Line 210  static const short yyrhs[] = {    62,
   
 #if YYDEBUG != 0  #if YYDEBUG != 0
 static const short yyrline[] = { 0,  static const short yyrline[] = { 0,
    114,   124,   126,   126,   127,   129,   129,   131,   198,   198,     115,   125,   127,   127,   128,   130,   130,   132,   199,   199,
    199,   199,   200,   201,   201,   203,   232,   232,   233,   234,     200,   200,   201,   202,   202,   204,   233,   233,   234,   235,
    234,   235,   235,   237,   237,   241,   241,   243,   243,   244,     235,   236,   236,   238,   238,   242,   242,   244,   244,   245,
    244,   245,   245,   245,   249,   256,   257,   257,   258,   259,     245,   246,   246,   246,   250,   257,   258,   258,   259,   260,
    261,   262,   299,   300,   300,   304,   308,   310,   311,   312,     262,   263,   285,   286,   286,   290,   294,   296,   297,   298,
    329,   334,   336,   338,   339,   341,   347,   355,   361,   363,     315,   320,   322,   324,   325,   327,   333,   341,   347,   349,
    364,   366,   372,   373,   373,   377,   383,   386,   389,   402,     350,   352,   358,   359,   359,   363,   369,   372,   375,   388,
    404,   404,   405,   407,   408,   410,   411,   412,   413,   415,     390,   390,   391,   393,   394,   396,   397,   398,   399,   401,
    417,   419,   421,   423,   425,   429,   433,   437,   439,   440,     403,   405,   407,   409,   411,   415,   419,   423,   425,   426,
    442,   451,   451,   453,   453,   454,   455,   463,   468,   470,     428,   437,   437,   439,   439,   440,   441,   449,   454,   456,
    472,   473,   474,   476,   480,   489,   495,   500,   500,   501,     458,   459,   460,   462,   466,   475,   481,   486,   486,   487,
    506,   508,   510,   522,   534,   539,   541,   542,   543,   544,     492,   494,   496,   508,   520,   525,   527,   528,   529,   530,
    545,   547,   548,   549,   550,   551,   552,   553,   554,   556,     531,   533,   534,   535,   536,   537,   538,   539,   540,   542,
    557,   558,   559,   560,   561,   562,   563,   564,   565,   566,     543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
    567,   568,   569,   570,   571,   572,   573,   574,   575,   576,     553,   554,   555,   556,   557,   558,   559,   560,   561,   562,
    577,   578,   579,   580,   581,   582,   585,   594,   599,   600     563,   564,   565,   566,   567,   568,   571,   580,   585,   586
 };  };
 #endif  #endif
   
Line 237  static const char * const yytname[] = { Line 237  static const char * const yytname[] = {
 "BAD_METHOD_PARAMETER_NAME_CHARACTER","BAD_MATH_OPERATOR_CHARACTER","\"&&\"",  "BAD_METHOD_PARAMETER_NAME_CHARACTER","BAD_MATH_OPERATOR_CHARACTER","\"&&\"",
 "\"||\"","\"!||\"","\"!|\"","\"<=\"","\">=\"","\"==\"","\"!=\"","\"<<\"","\">>\"",  "\"||\"","\"!||\"","\"!|\"","\"<=\"","\">=\"","\"==\"","\"!=\"","\"<<\"","\">>\"",
 "\"lt\"","\"gt\"","\"le\"","\"ge\"","\"eq\"","\"ne\"","\"def\"","\"in\"","\"-f\"",  "\"lt\"","\"gt\"","\"le\"","\"ge\"","\"eq\"","\"ne\"","\"def\"","\"in\"","\"-f\"",
 "\"-d\"","\"is\"","'<'","'>'","'!'","'|'","'&'","'~'","'-'","'+'","'*'","'/'",  "\"-d\"","\"is\"","'<'","'>'","'|'","'&'","'+'","'-'","'*'","'/'","'\\\\'","'%'",
 "'%'","'\\\\'","NEG","'@'","'\\n'","'['","']'","';'","'$'","'{'","'}'","'.'",  "NUNARY","'~'","'!'","'@'","'\\n'","'['","']'","';'","'$'","'{'","'}'","'.'",
 "'('","')'","'^'","':'","'\\\"'","'\\''","all","methods","one_big_piece","method",  "'('","')'","'^'","':'","'\\\"'","'\\''","all","methods","one_big_piece","method",
 "control_method","maybe_control_strings","control_strings","control_string",  "control_method","maybe_control_strings","control_strings","control_string",
 "maybe_string","code_method","maybe_bracketed_strings","bracketed_maybe_strings",  "maybe_string","code_method","maybe_bracketed_strings","bracketed_maybe_strings",
Line 312  static const short yydefact[] = {   160, Line 312  static const short yydefact[] = {   160,
     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,   160,   160,   117,   118,       0,     0,     0,     0,     0,     0,   160,   160,   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,   123,   122,
    122,   123,     0,   157,     0,     0,    57,     0,     0,     0,     124,   125,     0,   157,     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,     0,     0,     0,   159,   160,     0,     0,    71,    73,       0,     0,     0,     0,   159,   160,     0,     0,    71,    73,
     74,    75,    23,   160,   121,   119,   120,   141,   142,   143,      74,    75,    23,   160,   121,   119,   120,   141,   142,   143,
    140,   146,   147,   148,   149,   136,   137,   150,   151,   152,     140,   146,   147,   148,   149,   136,   137,   150,   151,   152,
    153,   154,   155,   156,   144,   145,   139,   138,   130,   131,     153,   154,   155,   156,   144,   145,   139,   138,   131,   130,
    132,   133,   134,   135,   158,    90,     0,    79,    85,    88,     132,   133,   135,   134,   158,    90,     0,    79,    85,    88,
     87,     0,    83,     0,    81,    86,    91,    69,    72,    16,      87,     0,    83,     0,    81,    86,    91,    69,    72,    16,
     76,   159,   160,    78,     0,    77,    80,    84,    82,     0,      76,   159,   160,    78,     0,    77,    80,    84,    82,     0,
      0,     0       0,     0
Line 337  static const short yydefgoto[] = {   250 Line 337  static const short yydefgoto[] = {   250
     47,    48,   237,   132,   155,    19,   230,    20      47,    48,   237,   132,   155,    19,   230,    20
 };  };
   
 static const short yypact[] = {    36,  static const short yypact[] = {    13,
 -32768,    16,    98,-32768,    53,-32768,-32768,-32768,-32768,-32768,  -32768,    24,    98,-32768,    36,-32768,-32768,-32768,-32768,-32768,
     14,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,      14,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     -3,     4,    14,   107,    30,    46,-32768,-32768,   116,-32768,     -26,    39,    14,    44,    45,   100,-32768,-32768,    47,-32768,
 -32768,-32768,   -15,-32768,-32768,-32768,-32768,   105,-32768,    73,  -32768,-32768,    52,-32768,-32768,-32768,-32768,   118,-32768,    59,
 -32768,    18,-32768,-32768,-32768,   105,    82,-32768,    30,-32768,  -32768,     4,-32768,-32768,-32768,   118,    -3,-32768,    45,-32768,
 -32768,   136,   137,    96,-32768,   107,-32768,    97,-32768,    41,  -32768,   101,   113,    71,-32768,    44,-32768,    70,-32768,    32,
 -32768,-32768,    94,   105,   112,   105,    97,-32768,    46,   112,  -32768,-32768,    73,   118,    83,   118,    70,-32768,   100,    83,
 -32768,    44,    14,    29,-32768,-32768,-32768,-32768,     1,-32768,  -32768,    27,    14,    57,-32768,-32768,-32768,-32768,     1,-32768,
 -32768,    18,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -32768,     4,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
      6,-32768,   110,   121,-32768,   120,   123,-32768,   165,-32768,      20,-32768,    78,    91,-32768,    90,    94,-32768,   135,-32768,
 -32768,-32768,-32768,-32768,-32768,   112,   122,    14,    67,   125,  -32768,-32768,-32768,-32768,-32768,    83,    92,    14,   -22,   106,
 -32768,-32768,-32768,-32768,   124,-32768,    29,    29,    29,    29,  -32768,-32768,-32768,-32768,   115,-32768,    57,    57,    57,    57,
     29,    29,    29,    29,   103,    29,    14,    14,-32768,-32768,      57,    57,    57,    57,   105,    57,    14,    14,-32768,-32768,
    119,   281,    52,-32768,-32768,-32768,-32768,   173,-32768,   133,     114,   281,    72,-32768,-32768,-32768,-32768,   142,-32768,   107,
 -32768,    14,-32768,-32768,   450,   450,   450,   450,   450,   433,  -32768,    14,-32768,-32768,   440,   440,   440,   440,-32768,-32768,
 -32768,-32768,   236,-32768,   126,   131,-32768,    29,    29,    29,  -32768,-32768,   236,-32768,   112,   120,-32768,    57,    57,    57,
     29,    29,    29,    29,    29,    29,    29,    29,    29,    29,      57,    57,    57,    57,    57,    57,    57,    57,    57,    57,
     29,    29,    29,    29,    29,    29,    29,    29,    29,    29,      57,    57,    57,    57,    57,    57,    57,    57,    57,    57,
     29,    29,    29,    29,    45,    14,    29,    66,-32768,-32768,      57,    57,    57,    57,    41,    14,    57,     5,-32768,-32768,
 -32768,-32768,-32768,    14,-32768,-32768,-32768,   377,   347,   314,  -32768,-32768,-32768,    14,-32768,-32768,-32768,   371,   343,   312,
    245,   407,   407,   420,   420,   187,   458,   407,   407,   407,     244,   399,   399,   412,   412,   136,   136,   399,   399,   399,
    407,   420,   420,   450,   407,   407,   -12,   433,    81,    81,     399,   412,   412,   440,   399,   399,   447,   453,    93,    93,
 -32768,-32768,-32768,-32768,    83,-32768,    85,-32768,-32768,-32768,  -32768,-32768,-32768,-32768,   -11,-32768,    19,-32768,-32768,-32768,
 -32768,   -30,-32768,    63,-32768,-32768,-32768,-32768,-32768,-32768,  -32768,   -10,-32768,   -33,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,    45,    14,-32768,    29,-32768,-32768,-32768,-32768,   180,  -32768,    41,    14,-32768,    57,-32768,-32768,-32768,-32768,   180,
    181,-32768     181,-32768
 };  };
   
 static const short yypgoto[] = {-32768,  static const short yypgoto[] = {-32768,
 -32768,-32768,   177,-32768,-32768,-32768,   100,-32768,-32768,-32768,  -32768,-32768,   177,-32768,-32768,-32768,    99,-32768,-32768,-32768,
    138,-32768,-32768,-32768,     3,   -18,    -7,   -71,-32768,     0,     129,-32768,-32768,-32768,     3,   -18,    -7,   -71,-32768,     0,
 -32768,-32768,   -11,-32768,-32768,   -29,-32768,-32768,-32768,-32768,  -32768,-32768,    -6,-32768,-32768,   -37,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,   159,-32768,-32768,-32768,  -32768,-32768,-32768,-32768,-32768,-32768,   119,-32768,-32768,-32768,
      2,-32768,-32768,-32768,-32768,     5,-32768,-32768,-32768,-32768,       2,-32768,-32768,-32768,-32768,    -4,-32768,-32768,-32768,-32768,
 -32768,-32768,   -47,   -13,   -10,-32768,-32768,    58,    79,   -23,  -32768,-32768,   -50,   -52,   -48,-32768,-32768,   -16,    95,   -23,
 -32768,   -22,     9,-32768,-32768,-32768,   178,-32768,   179,   233,  -32768,   -24,     9,-32768,-32768,-32768,   169,-32768,   168,   224,
 -32768,-32768,   164,    40,   111,-32768,   168,    84  -32768,-32768,   154,    40,   102,-32768,   157,   -20
 };  };
   
   
 #define YYLAST          501  #define YYLAST          494
   
   
 static const short yytable[] = {    15,  static const short yytable[] = {    15,
    109,    18,    10,    51,    60,    55,   166,   167,    55,    89,     109,    18,    10,    51,    60,    55,   -98,   238,    84,    68,
     15,    42,    18,    63,    80,    81,    84,     1,   243,    21,      15,    42,    18,    81,    80,   245,     1,     1,    63,    52,
    -98,   244,    15,   178,    18,   179,   180,   181,   182,   183,      53,   246,    15,    89,    18,   -64,   -64,    21,    84,    85,
    184,    72,   116,    22,    70,    73,    84,    87,    74,     1,     107,    94,    98,   101,    70,     1,   -89,   -89,   243,    81,
     80,    81,    52,    53,     1,    80,    82,   107,   225,    67,      80,   244,    87,    55,   225,    80,    82,    61,    22,    71,
     56,  -160,    51,    56,    42,   117,   118,   119,   120,    15,      56,   185,    51,    86,    42,   186,   -97,     2,   187,    15,
     57,    18,   121,     3,   108,   122,   123,   124,   238,     4,     116,    18,     3,     3,   108,  -160,   241,   242,     4,     4,
    -97,    15,    15,    18,    18,   115,    23,   106,   125,    24,     135,    15,    15,    18,    18,   115,     3,   106,   141,   104,
      2,    38,   126,    68,     4,     3,   127,   128,   104,   142,       2,     3,     4,   117,   118,   119,   120,     4,    56,   142,
      3,     4,    23,     3,     3,    24,     4,     2,   185,     4,       3,    23,   121,   122,    24,    57,     4,    38,    72,   123,
      4,    22,   186,    85,    69,   187,    22,    15,    79,    18,     124,    22,    73,    67,    89,    74,   125,    15,    22,    18,
     61,   245,   185,   109,   -64,   -64,   186,   246,    71,   187,     126,    83,     4,   109,   127,   128,    95,    53,   185,    56,
    181,   182,   183,   184,    38,    83,    15,    15,    18,    18,      69,    79,   186,   136,   105,   187,    15,    15,    18,    18,
    -89,   -89,   241,   242,    51,    94,    98,   101,    86,    89,     181,   182,   183,   184,    51,   -97,   -14,   137,   139,   -60,
     95,    15,    53,    18,    23,   105,    56,    24,    25,    23,      38,    15,   138,    18,    23,   193,    23,    24,    25,    24,
     26,    23,    24,    25,    24,   136,   145,   146,   147,   148,      26,    23,   194,   143,    24,    25,   145,   146,   147,   148,
    149,   150,   151,   152,   -97,   153,   -14,   137,   139,   -60,     149,   150,   151,   152,    23,   153,   144,    24,   157,   196,
    109,   138,   143,   157,   135,   144,   193,   108,   194,   251,     109,   179,   180,   181,   182,   183,   184,   108,   197,   251,
    252,    50,   141,   196,    15,    15,    18,    18,   231,   197,     252,    50,   100,   239,    15,    15,    18,    18,   231,   134,
    134,   100,   239,    15,   247,    18,   240,   198,   199,   200,     111,   247,   249,    15,   248,    18,   240,   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,   219,   220,     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
    221,   222,   223,   224,   179,   180,   181,   182,   183,   184,     221,   222,   223,   224,   102,   103,    46,   131,   114,   156,
    111,   249,   248,   102,   108,    46,   103,   131,   156,   114,       0,     0,     0,     0,   108,     0,     0,     0,     0,     0,
      0,    15,    15,    18,    18,   231,   158,   159,   160,   161,       0,    15,    15,    18,    18,   231,   158,   159,   160,   161,
    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
    172,   173,     0,   166,   167,     0,   174,   175,   176,     0,     172,   173,   166,   167,     0,     0,   174,   175,   176,   177,
    177,   178,     0,   179,   180,   181,   182,   183,   184,   177,     178,   179,   180,   181,   182,   183,   184,   177,   178,   179,
    178,     0,   179,   180,   181,   182,   183,   184,     0,     0,     180,   181,   182,   183,   184,     0,     0,     0,     0,     0,
    195,   158,   159,   160,   161,   162,   163,   164,   165,   166,     195,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    167,   168,   169,   170,   171,   172,   173,     0,     0,     0,     167,   168,   169,   170,   171,   172,   173,     0,     0,     0,
      0,   174,   175,   176,     0,   177,   178,     0,   179,   180,       0,   174,   175,   176,   177,   178,   179,   180,   181,   182,
    181,   182,   183,   184,   158,   159,     0,   161,   162,   163,     183,   184,   158,   159,     0,   161,   162,   163,   164,   165,
    164,   165,   166,   167,   168,   169,   170,   171,   172,   173,     166,   167,   168,   169,   170,   171,   172,   173,     0,     0,
      0,     0,     0,     0,   174,   175,   176,     0,   177,   178,       0,     0,   174,   175,   176,   177,   178,   179,   180,   181,
      0,   179,   180,   181,   182,   183,   184,   158,     0,     0,     182,   183,   184,   158,     0,     0,   161,   162,   163,   164,
    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,     165,   166,   167,   168,   169,   170,   171,   172,   173,     0,
    171,   172,   173,     0,     0,     0,     0,   174,   175,   176,       0,     0,     0,   174,   175,   176,   177,   178,   179,   180,
      0,   177,   178,     0,   179,   180,   181,   182,   183,   184,     181,   182,   183,   184,   161,   162,   163,   164,   165,   166,
    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,     167,   168,   169,   170,   171,   172,   173,     0,     0,     0,
    171,   172,   173,     0,     0,     0,     0,   174,   175,   176,       0,   174,   175,   176,   177,   178,   179,   180,   181,   182,
      0,   177,   178,     0,   179,   180,   181,   182,   183,   184,     183,   184,   161,     0,     0,   164,   165,   166,   167,     0,
    161,     0,     0,   164,   165,   166,   167,     0,     0,     0,       0,     0,     0,   172,   173,   161,     0,     0,     0,   174,
      0,   172,   173,   161,     0,     0,     0,   174,   166,   167,     166,   167,   177,   178,   179,   180,   181,   182,   183,   184,
      0,   177,   178,     0,   179,   180,   181,   182,   183,   184,       0,     0,   174,     0,     0,   177,   178,   179,   180,   181,
    174,   166,   167,     0,   177,   178,     0,   179,   180,   181,  
    182,   183,   184,   161,     0,     0,     0,     0,   166,   167,     182,   183,   184,   161,     0,     0,     0,     0,   166,   167,
    179,   180,   181,   182,   183,   184,   166,     0,     0,     0,       0,     0,     0,     0,     0,   166,   167,     0,     0,     0,
      0,     0,     0,     0,   177,   178,     0,   179,   180,   181,       0,   166,   167,   177,   178,   179,   180,   181,   182,   183,
    182,   183,   184,     0,     0,   179,   180,   181,   182,   183,     184,   178,   179,   180,   181,   182,   183,   184,   179,   180,
    184     181,   182,   183,   184
 };  };
   
 static const short yycheck[] = {     0,  static const short yycheck[] = {     0,
     72,     0,     0,    11,    23,     5,    19,    20,     5,     4,      72,     0,     0,    11,    23,     5,     3,     3,    46,    26,
     11,     3,    11,    25,    38,    38,    46,     4,    49,     4,      11,     3,    11,    38,    38,    49,     4,     4,    25,    46,
      3,    52,    23,    36,    23,    38,    39,    40,    41,    42,      47,    55,    23,     4,    23,    48,    49,     4,    66,    46,
     43,    47,     4,     4,    26,    51,    66,    49,    54,     4,       4,    52,    53,    54,    26,     4,    48,    49,    49,    64,
     64,    64,    46,    47,     4,    69,    38,     4,     4,     4,      64,    52,    49,     5,     4,    69,    38,     4,     4,     3,
     50,    46,    60,    50,    46,    27,    28,    29,    30,    60,      50,    47,    60,    57,    46,    51,    53,    45,    54,    60,
     57,    60,    34,    50,    72,    37,    38,    39,     3,    56,       4,    60,    50,    50,    72,    46,    48,    49,    56,    56,
     53,    72,    73,    72,    73,    73,    47,    69,    50,    50,      91,    72,    73,    72,    73,    73,    50,    69,    99,    48,
     45,     3,    54,    26,    56,    50,    58,    59,    48,   108,      45,    50,    56,    27,    28,    29,    30,    56,    50,   108,
     50,    56,    47,    50,    50,    50,    56,    45,    47,    56,      50,    47,    36,    37,    50,    57,    56,     3,    47,    43,
     56,     4,    51,    46,    26,    54,     4,   108,     4,   108,      44,     4,    51,     4,     4,    54,    50,   108,     4,   108,
      4,    49,    47,   185,    48,    49,    51,    55,     3,    54,      54,    53,    56,   185,    58,    59,     4,    47,    47,    50,
     40,    41,    42,    43,    46,    53,   127,   128,   127,   128,      26,     4,    51,    46,    52,    54,   127,   128,   127,   128,
     48,    49,    48,    49,   142,    52,    53,    54,    57,     4,      38,    39,    40,    41,   142,    53,    46,    48,     4,    48,
      4,   142,    47,   142,    47,    52,    50,    50,    51,    47,      46,   142,    49,   142,    47,     4,    47,    50,    51,    50,
     53,    47,    50,    51,    50,    46,   117,   118,   119,   120,      53,    47,    46,    48,    50,    51,   117,   118,   119,   120,
    121,   122,   123,   124,    53,   126,    46,    48,     4,    48,     121,   122,   123,   124,    47,   126,    52,    50,    55,    58,
    242,    49,    48,    55,    91,    52,     4,   185,    46,     0,     242,    36,    37,    38,    39,    40,    41,   185,    59,     0,
      0,     5,    99,    58,   185,   186,   185,   186,   186,    59,       0,     5,    54,   188,   185,   186,   185,   186,   186,    91,
     91,    54,   188,   194,   242,   194,   194,   158,   159,   160,      72,   242,   245,   194,   243,   194,   194,   158,   159,   160,
    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
    171,   172,   173,   174,   175,   176,   177,   178,   179,   180,     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
    181,   182,   183,   184,    38,    39,    40,    41,    42,    43,     181,   182,   183,   184,    56,    58,     3,    74,    72,   128,
     72,   245,   243,    56,   242,     3,    58,    74,   128,    72,      -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,    -1,
     -1,   242,   243,   242,   243,   243,    11,    12,    13,    14,      -1,   242,   243,   242,   243,   243,    11,    12,    13,    14,
     15,    16,    17,    18,    19,    20,    21,    22,    23,    24,      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     25,    26,    -1,    19,    20,    -1,    31,    32,    33,    -1,      25,    26,    19,    20,    -1,    -1,    31,    32,    33,    34,
     35,    36,    -1,    38,    39,    40,    41,    42,    43,    35,      35,    36,    37,    38,    39,    40,    41,    34,    35,    36,
     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    -1,      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
     55,    11,    12,    13,    14,    15,    16,    17,    18,    19,      55,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     20,    21,    22,    23,    24,    25,    26,    -1,    -1,    -1,      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    -1,
     -1,    31,    32,    33,    -1,    35,    36,    -1,    38,    39,      -1,    31,    32,    33,    34,    35,    36,    37,    38,    39,
     40,    41,    42,    43,    11,    12,    -1,    14,    15,    16,      40,    41,    11,    12,    -1,    14,    15,    16,    17,    18,
     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     -1,    -1,    -1,    -1,    31,    32,    33,    -1,    35,    36,      -1,    -1,    31,    32,    33,    34,    35,    36,    37,    38,
     -1,    38,    39,    40,    41,    42,    43,    11,    -1,    -1,      39,    40,    41,    11,    -1,    -1,    14,    15,    16,    17,
     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     24,    25,    26,    -1,    -1,    -1,    -1,    31,    32,    33,      -1,    -1,    -1,    31,    32,    33,    34,    35,    36,    37,
     -1,    35,    36,    -1,    38,    39,    40,    41,    42,    43,      38,    39,    40,    41,    14,    15,    16,    17,    18,    19,
     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    -1,
     24,    25,    26,    -1,    -1,    -1,    -1,    31,    32,    33,      -1,    31,    32,    33,    34,    35,    36,    37,    38,    39,
     -1,    35,    36,    -1,    38,    39,    40,    41,    42,    43,      40,    41,    14,    -1,    -1,    17,    18,    19,    20,    -1,
     14,    -1,    -1,    17,    18,    19,    20,    -1,    -1,    -1,      -1,    -1,    -1,    25,    26,    14,    -1,    -1,    -1,    31,
     -1,    25,    26,    14,    -1,    -1,    -1,    31,    19,    20,      19,    20,    34,    35,    36,    37,    38,    39,    40,    41,
     -1,    35,    36,    -1,    38,    39,    40,    41,    42,    43,      -1,    -1,    31,    -1,    -1,    34,    35,    36,    37,    38,
     31,    19,    20,    -1,    35,    36,    -1,    38,    39,    40,      39,    40,    41,    14,    -1,    -1,    -1,    -1,    19,    20,
     41,    42,    43,    14,    -1,    -1,    -1,    -1,    19,    20,      -1,    -1,    -1,    -1,    -1,    19,    20,    -1,    -1,    -1,
     38,    39,    40,    41,    42,    43,    19,    -1,    -1,    -1,      -1,    19,    20,    34,    35,    36,    37,    38,    39,    40,
     -1,    -1,    -1,    -1,    35,    36,    -1,    38,    39,    40,      41,    35,    36,    37,    38,    39,    40,    41,    36,    37,
     41,    42,    43,    -1,    -1,    38,    39,    40,    41,    42,      38,    39,    40,    41
     43  
 };  };
 #define YYPURE 1  #define YYPURE 1
   
Line 1034  yyreduce: Line 1032  yyreduce:
   switch (yyn) {    switch (yyn) {
   
 case 1:  case 1:
 #line 115 "compile.y"  #line 116 "compile.y"
 {  {
         Method& method=*NEW Method(POOL,           Method& method=*NEW Method(POOL, 
                 PC.request->main_method_name,                   PC.request->main_method_name, 
Line 1046  case 1: Line 1044  case 1:
 ;  ;
     break;}      break;}
 case 8:  case 8:
 #line 132 "compile.y"  #line 133 "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 1115  case 8: Line 1113  case 8:
 ;  ;
     break;}      break;}
 case 12:  case 12:
 #line 199 "compile.y"  #line 200 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 16:  case 16:
 #line 204 "compile.y"  #line 205 "compile.y"
 {  {
         const String *name=LA2S(yyvsp[-5]);          const String *name=LA2S(yyvsp[-5]);
   
Line 1149  case 16: Line 1147  case 16:
 ;  ;
     break;}      break;}
 case 19:  case 19:
 #line 233 "compile.y"  #line 234 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 23:  case 23:
 #line 235 "compile.y"  #line 236 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 29:  case 29:
 #line 243 "compile.y"  #line 244 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 35:  case 35:
 #line 249 "compile.y"  #line 250 "compile.y"
 {  {
         yyval=yyvsp[0]; /* stack: resulting value */           yyval=yyvsp[0]; /* stack: resulting value */ 
         changetail_or_append(yyval,           changetail_or_append(yyval, 
Line 1171  case 35: Line 1169  case 35:
 ;  ;
     break;}      break;}
 case 36:  case 36:
 #line 256 "compile.y"  #line 257 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 39:  case 39:
 #line 258 "compile.y"  #line 259 "compile.y"
 { yyval=yyvsp[-1] ;  { yyval=yyvsp[-1] ;
     break;}      break;}
 case 42:  case 42:
 #line 262 "compile.y"  #line 263 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         Array *diving_code=yyvsp[0];          Array *diving_code=yyvsp[0];
Line 1194  case 42: Line 1192  case 42:
         } else {          } else {
                 O(yyval, OP_WITH_READ); /* stack: starting context */                  O(yyval, OP_WITH_READ); /* stack: starting context */
   
                 bool noDot=diving_code->size()==3;                  // ^if ELEMENT -> ^if ELEMENT_OR_OPERATOR
                 // OP_VALUE+string+OP_GET_ELEMENT. -> OP_VALUE+string+...OR_OPERATOR/OR_JUNCTION_EXP.                  // OP_VALUE+string+OP_GET_ELEMENT. -> OP_VALUE+string+OP_GET_ELEMENT_OR_OPERATOR.
                 if(PC.in_call_value) {                  if(PC.in_call_value && diving_code->size()==3)
                         //  ^if << possibly operator                          diving_code->put_int(2, OP_GET_ELEMENT_OR_OPERATOR);
                         //  but ^code.xxxx  << expand junction !!!  
   
                         diving_code->put_int(2,   
                                 noDot? // ELEMENT without .SUBELEMENT  
                                         OP_GET_ELEMENT_OR_OPERATOR // possibly ^if  [search for operator]  
                                         : OP_GET_ELEMENT_OR_JUNCTION_EXPAND); // possibly ^junction.xxx [if junction, expand it]  
                 } else {  
                         //  $code  << expand junction  
                         //  $code.value << do not expand junction  
                         //  $code.value[xxx]  << do not expand junction  
   
                         if(noDot)  
                                 diving_code->put_int(2, OP_GET_ELEMENT_OR_JUNCTION_EXPAND); // possibly $junction [if junction, expand it]  
                 }  
                   
                 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 299 "compile.y"  #line 285 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 45:  case 45:
 #line 300 "compile.y"  #line 286 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 46:  case 46:
 #line 304 "compile.y"  #line 290 "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 312 "compile.y"  #line 298 "compile.y"
 {  {
         yyval=N(POOL);          yyval=N(POOL);
         Array *diving_code=yyvsp[0];          Array *diving_code=yyvsp[0];
Line 1254  case 50: Line 1237  case 50:
 ;  ;
     break;}      break;}
 case 51:  case 51:
 #line 329 "compile.y"  #line 315 "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 1262  case 51: Line 1245  case 51:
 ;  ;
     break;}      break;}
 case 52:  case 52:
 #line 334 "compile.y"  #line 320 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 56:  case 56:
 #line 341 "compile.y"  #line 327 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=yyvsp[-1]; // stack: context, name, value          yyval=yyvsp[-1]; // stack: context, name, value
Line 1274  case 56: Line 1257  case 56:
 ;  ;
     break;}      break;}
 case 57:  case 57:
 #line 347 "compile.y"  #line 333 "compile.y"
 {   { 
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_PREPARE_TO_EXPRESSION);          O(yyval, OP_PREPARE_TO_EXPRESSION);
Line 1284  case 57: Line 1267  case 57:
 ;  ;
     break;}      break;}
 case 58:  case 58:
 #line 355 "compile.y"  #line 341 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=N(POOL);           yyval=N(POOL); 
Line 1292  case 58: Line 1275  case 58:
 ;  ;
     break;}      break;}
 case 62:  case 62:
 #line 366 "compile.y"  #line 352 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         OA(yyval, OP_OBJECT_POOL, yyvsp[0]); /* stack: empty write context */          OA(yyval, OP_OBJECT_POOL, yyvsp[0]); /* stack: empty write context */
Line 1301  case 62: Line 1284  case 62:
 ;  ;
     break;}      break;}
 case 65:  case 65:
 #line 373 "compile.y"  #line 359 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 66:  case 66:
 #line 377 "compile.y"  #line 363 "compile.y"
 {  {
         yyval=yyvsp[0]; /* stack: value */          yyval=yyvsp[0]; /* stack: value */
         changetail_or_append(yyval,           changetail_or_append(yyval, 
Line 1314  case 66: Line 1297  case 66:
 ;  ;
     break;}      break;}
 case 67:  case 67:
 #line 383 "compile.y"  #line 369 "compile.y"
 {   { 
                                         PC.in_call_value=true;                                           PC.in_call_value=true; 
                         ;                          ;
     break;}      break;}
 case 68:  case 68:
 #line 386 "compile.y"  #line 372 "compile.y"
 {  {
                                 PC.in_call_value=false;                                  PC.in_call_value=false;
                         ;                          ;
     break;}      break;}
 case 69:  case 69:
 #line 389 "compile.y"  #line 375 "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 1341  case 69: Line 1324  case 69:
 ;  ;
     break;}      break;}
 case 72:  case 72:
 #line 404 "compile.y"  #line 390 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 76:  case 76:
 #line 410 "compile.y"  #line 396 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 77:  case 77:
 #line 411 "compile.y"  #line 397 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 78:  case 78:
 #line 412 "compile.y"  #line 398 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 80:  case 80:
 #line 415 "compile.y"  #line 401 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 82:  case 82:
 #line 419 "compile.y"  #line 405 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 84:  case 84:
 #line 423 "compile.y"  #line 409 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 85:  case 85:
 #line 425 "compile.y"  #line 411 "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 429 "compile.y"  #line 415 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         OA(yyval, OP_EXPR_CODE__STORE_PARAM, yyvsp[0]);          OA(yyval, OP_EXPR_CODE__STORE_PARAM, yyvsp[0]);
 ;  ;
     break;}      break;}
 case 87:  case 87:
 #line 433 "compile.y"  #line 419 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         OA(yyval, OP_CURLY_CODE__STORE_PARAM, yyvsp[0]);          OA(yyval, OP_CURLY_CODE__STORE_PARAM, yyvsp[0]);
 ;  ;
     break;}      break;}
 case 91:  case 91:
 #line 442 "compile.y"  #line 428 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_PREPARE_TO_EXPRESSION);          O(yyval, OP_PREPARE_TO_EXPRESSION);
Line 1399  case 91: Line 1382  case 91:
 ;  ;
     break;}      break;}
 case 93:  case 93:
 #line 451 "compile.y"  #line 437 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 95:  case 95:
 #line 453 "compile.y"  #line 439 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 97:  case 97:
 #line 455 "compile.y"  #line 441 "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 1418  case 97: Line 1401  case 97:
 ;  ;
     break;}      break;}
 case 98:  case 98:
 #line 463 "compile.y"  #line 449 "compile.y"
 {  {
         /* stack: context */          /* stack: context */
         yyval=yyvsp[0]; /* stack: context,name */          yyval=yyvsp[0]; /* stack: context,name */
Line 1426  case 98: Line 1409  case 98:
 ;  ;
     break;}      break;}
 case 104:  case 104:
 #line 476 "compile.y"  #line 462 "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 480 "compile.y"  #line 466 "compile.y"
 {  {
         Array *code;          Array *code;
         {          {
Line 1445  case 105: Line 1428  case 105:
 ;  ;
     break;}      break;}
 case 106:  case 106:
 #line 489 "compile.y"  #line 475 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         OA(yyval, OP_OBJECT_POOL, yyvsp[-1]); /* stack: empty write context */          OA(yyval, OP_OBJECT_POOL, yyvsp[-1]); /* stack: empty write context */
Line 1454  case 106: Line 1437  case 106:
 ;  ;
     break;}      break;}
 case 107:  case 107:
 #line 495 "compile.y"  #line 481 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_WITH_READ);          O(yyval, OP_WITH_READ);
Line 1462  case 107: Line 1445  case 107:
 ;  ;
     break;}      break;}
 case 109:  case 109:
 #line 500 "compile.y"  #line 486 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 110:  case 110:
 #line 501 "compile.y"  #line 487 "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 510 "compile.y"  #line 496 "compile.y"
 {  {
         yyval=yyvsp[-1]; // stack: class name string          yyval=yyvsp[-1]; // stack: class name string
         if(*LA2S(yyval) == BASE_NAME) { // pseude BASE class          if(*LA2S(yyval) == BASE_NAME) { // pseude BASE class
Line 1488  case 113: Line 1471  case 113:
 ;  ;
     break;}      break;}
 case 114:  case 114:
 #line 522 "compile.y"  #line 508 "compile.y"
 {  {
         yyval=yyvsp[-1];          yyval=yyvsp[-1];
         if(!PC.in_call_value) {          if(!PC.in_call_value) {
Line 1499  case 114: Line 1482  case 114:
 ;  ;
     break;}      break;}
 case 115:  case 115:
 #line 534 "compile.y"  #line 520 "compile.y"
 {  {
         // see OP_PREPARE_TO_EXPRESSION!!          // see OP_PREPARE_TO_EXPRESSION!!
         if((yyval=yyvsp[0])->size()==2) // only one string literal in there?          if((yyval=yyvsp[0])->size()==2) // only one string literal in there?
Line 1507  case 115: Line 1490  case 115:
 ;  ;
     break;}      break;}
 case 119:  case 119:
 #line 543 "compile.y"  #line 529 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 120:  case 120:
 #line 544 "compile.y"  #line 530 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 121:  case 121:
 #line 545 "compile.y"  #line 531 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 122:  case 122:
 #line 547 "compile.y"  #line 533 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_NEG) ;  { yyval=yyvsp[0];  O(yyval, OP_NEG) ;
     break;}      break;}
 case 123:  case 123:
 #line 548 "compile.y"  #line 534 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 124:  case 124:
 #line 549 "compile.y"  #line 535 "compile.y"
 { yyval=yyvsp[0];        O(yyval, OP_INV) ;  { yyval=yyvsp[0];        O(yyval, OP_INV) ;
     break;}      break;}
 case 125:  case 125:
 #line 550 "compile.y"  #line 536 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_NOT) ;  { yyval=yyvsp[0];  O(yyval, OP_NOT) ;
     break;}      break;}
 case 126:  case 126:
 #line 551 "compile.y"  #line 537 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_DEF) ;  { yyval=yyvsp[0];  O(yyval, OP_DEF) ;
     break;}      break;}
 case 127:  case 127:
 #line 552 "compile.y"  #line 538 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_IN) ;  { yyval=yyvsp[0];  O(yyval, OP_IN) ;
     break;}      break;}
 case 128:  case 128:
 #line 553 "compile.y"  #line 539 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_FEXISTS) ;  { yyval=yyvsp[0];  O(yyval, OP_FEXISTS) ;
     break;}      break;}
 case 129:  case 129:
 #line 554 "compile.y"  #line 540 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_DEXISTS) ;  { yyval=yyvsp[0];  O(yyval, OP_DEXISTS) ;
     break;}      break;}
 case 130:  case 130:
 #line 556 "compile.y"  #line 542 "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 557 "compile.y"  #line 543 "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 558 "compile.y"  #line 544 "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 559 "compile.y"  #line 545 "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 560 "compile.y"  #line 546 "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 561 "compile.y"  #line 547 "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 136:
 #line 562 "compile.y"  #line 548 "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 137:
 #line 563 "compile.y"  #line 549 "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 138:
 #line 564 "compile.y"  #line 550 "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 139:
 #line 565 "compile.y"  #line 551 "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 140:
 #line 566 "compile.y"  #line 552 "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 141:
 #line 567 "compile.y"  #line 553 "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 142:
 #line 568 "compile.y"  #line 554 "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 143:
 #line 569 "compile.y"  #line 555 "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 144:
 #line 570 "compile.y"  #line 556 "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 145:
 #line 571 "compile.y"  #line 557 "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 146:
 #line 572 "compile.y"  #line 558 "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 147:
 #line 573 "compile.y"  #line 559 "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 148:
 #line 574 "compile.y"  #line 560 "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 149:
 #line 575 "compile.y"  #line 561 "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 150:
 #line 576 "compile.y"  #line 562 "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 151:
 #line 577 "compile.y"  #line 563 "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 152:
 #line 578 "compile.y"  #line 564 "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 153:
 #line 579 "compile.y"  #line 565 "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 154:
 #line 580 "compile.y"  #line 566 "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 155:
 #line 581 "compile.y"  #line 567 "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 156:
 #line 582 "compile.y"  #line 568 "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 157:
 #line 585 "compile.y"  #line 571 "compile.y"
 {  {
         yyval=N(POOL);          yyval=N(POOL);
         OA(yyval, OP_STRING_POOL, yyvsp[0]); /* stack: empty write context */          OA(yyval, OP_STRING_POOL, yyvsp[0]); /* stack: empty write context */
Line 1668  case 157: Line 1651  case 157:
 ;  ;
     break;}      break;}
 case 158:  case 158:
 #line 594 "compile.y"  #line 580 "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 159:
 #line 599 "compile.y"  #line 585 "compile.y"
 { yyval=VL(NEW VVoid(POOL)) ;  { yyval=VL(NEW VVoid(POOL)) ;
     break;}      break;}
 case 160:  case 160:
 #line 600 "compile.y"  #line 586 "compile.y"
 { yyval=N(POOL) ;  { yyval=N(POOL) ;
     break;}      break;}
 }  }
Line 1904  yyerrhandle: Line 1887  yyerrhandle:
     }      }
   return 1;    return 1;
 }  }
 #line 602 "compile.y"  #line 588 "compile.y"
   
 #endif  #endif
   
Line 1964  static int yylex(YYSTYPE *lvalp, void *p Line 1947  static int yylex(YYSTYPE *lvalp, void *p
                         } 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=='^')                  } else if(c=='^') {
                           if(PC.ls==LS_METHOD_AFTER) {
                                   // handle after-method situation
                                   pop_LS(PC);
                                   result=EON;
                                   skip_analized=-1; // return to punctuation afterwards to assure it's literality
                                   goto break2;
                           }
                         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 1989  default: Line 1979  default:
                                         PC.string->APPEND_CLEAN(begin, end-begin, PC.file, begin_line);                                          PC.string->APPEND_CLEAN(begin, end-begin, PC.file, begin_line);
                                 }                                  }
                                 // reset piece 'begin' position & line                                  // reset piece 'begin' position & line
                                 end=begin=PC.source; // ^                                  begin=PC.source; // ->punctuation
                                 begin_line=PC.line;                                  begin_line=PC.line;
                                 if(PC.ls==LS_METHOD_AFTER) {                                  // skip over _ after ^
                                         pop_LS(PC);                                  PC.source++;  PC.col++;
                                         result=EON;                                  // skip analysis = forced literal
                                         skip_analized=-1; // return to ^ afterwards to assure it's literality                                  continue;
                                         goto break2;  
                                 } else {  
                                         // skip over _ after ^  
                                         PC.source++;  PC.col++;  
                                         // skip analysis = forced literal  
                                         continue;  
                                 }  
   
                         // converting ^#HH into char(hex(HH))                          // converting ^#HH into char(hex(HH))
                         case '#':                          case '#':
Line 2025  default: Line 2008  default:
                                         PC.source+=3;                                          PC.source+=3;
                                         PC.col+=3;                                          PC.col+=3;
                                         // reset piece 'begin' position & line                                          // reset piece 'begin' position & line
                                         begin=PC.source; // ^                                          begin=PC.source; // ->after ^#HH
                                         begin_line=PC.line;                                          begin_line=PC.line;
                                           // skip analysis = forced literal
                                         continue;                                          continue;
                                 }                                  }
                                 break;                                  break;
                         }                          }
                         break;                          break;
                           }
                 }                  }
                 // #comment  start skipping                  // #comment  start skipping
                 if(c=='#' && PC.col==1) {                  if(c=='#' && PC.col==1) {

Removed from v.1.70  
changed lines
  Added in v.1.79


E-mail: