Diff for /parser3/src/main/compile.tab.C between versions 1.81.2.5 and 1.81.2.11

version 1.81.2.5, 2003/01/31 14:03:53 version 1.81.2.11, 2003/03/12 10:47:12
Line 84  static int yylex(YYSTYPE *lvalp, void *p Line 84  static int yylex(YYSTYPE *lvalp, void *p
 // local convinient inplace typecast & var  // local convinient inplace typecast & var
 #define PC  (*(parse_control *)pc)  #define PC  (*(parse_control *)pc)
 #define POOL  (*PC.pool)  #define POOL  (*PC.pool)
 #undef NEW  
 #define NEW new(POOL)  
 #ifndef DOXYGEN  #ifndef DOXYGEN
 #ifndef YYSTYPE  #ifndef YYSTYPE
 #define YYSTYPE int  #define YYSTYPE int
Line 210  static const short yyrhs[] = {    62, Line 208  static const short yyrhs[] = {    62,
   
 #if YYDEBUG != 0  #if YYDEBUG != 0
 static const short yyrline[] = { 0,  static const short yyrline[] = { 0,
    115,   123,   125,   125,   126,   128,   128,   130,   201,   201,     113,   121,   123,   123,   124,   126,   126,   128,   200,   200,
    202,   202,   203,   204,   204,   206,   235,   235,   236,   237,     201,   201,   202,   203,   203,   205,   234,   234,   235,   236,
    237,   238,   238,   240,   240,   244,   244,   246,   246,   247,     236,   237,   237,   239,   239,   243,   243,   245,   245,   246,
    247,   248,   248,   248,   252,   259,   260,   260,   261,   262,     246,   247,   247,   247,   251,   258,   259,   259,   260,   261,
    264,   265,   287,   288,   288,   292,   296,   298,   299,   300,     263,   264,   286,   287,   287,   291,   295,   297,   298,   299,
    317,   322,   324,   326,   327,   329,   335,   343,   349,   351,     316,   321,   323,   325,   326,   328,   334,   342,   348,   350,
    352,   354,   360,   361,   361,   365,   371,   374,   377,   390,     351,   353,   359,   360,   360,   364,   370,   373,   376,   389,
    392,   392,   393,   395,   396,   398,   399,   400,   401,   403,     391,   391,   392,   394,   395,   397,   398,   399,   400,   402,
    405,   407,   409,   411,   413,   417,   421,   425,   427,   428,     404,   406,   408,   410,   412,   416,   420,   424,   426,   427,
    430,   439,   439,   441,   441,   442,   443,   451,   456,   458,     429,   438,   438,   440,   440,   441,   442,   450,   455,   457,
    460,   461,   462,   464,   468,   477,   483,   488,   488,   489,     459,   460,   461,   463,   467,   476,   482,   487,   487,   488,
    494,   496,   498,   510,   522,   527,   529,   530,   531,   532,     493,   495,   497,   509,   521,   526,   528,   529,   530,   531,
    533,   535,   536,   537,   538,   539,   540,   541,   542,   544,     532,   534,   535,   536,   537,   538,   539,   540,   541,   543,
    545,   546,   547,   548,   549,   550,   551,   552,   553,   554,     544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
    555,   556,   557,   558,   559,   560,   561,   562,   563,   564,     554,   555,   556,   557,   558,   559,   560,   561,   562,   563,
    565,   566,   567,   568,   569,   570,   573,   582,   587,   588     564,   565,   566,   567,   568,   569,   572,   581,   586,   587
 };  };
 #endif  #endif
   
Line 1032  yyreduce: Line 1030  yyreduce:
   switch (yyn) {    switch (yyn) {
   
 case 1:  case 1:
 #line 116 "compile.y"  #line 114 "compile.y"
 {  {
         MethodPtr method(new Method(main_method_name, Method::CT_ANY,          MethodPtr method(new Method(main_method_name, Method::CT_ANY,
                 0, 0, /*min, max numbered_params_count*/                  0, 0, /*min, max numbered_params_count*/
Line 1042  case 1: Line 1040  case 1:
 ;  ;
     break;}      break;}
 case 8:  case 8:
 #line 131 "compile.y"  #line 129 "compile.y"
 {  {
         StringPtr command=LA2S(*yyvsp[-2]);          StringPtr command=LA2S(*yyvsp[-2]);
         YYSTYPE strings_code=yyvsp[0];          YYSTYPE strings_code=yyvsp[0];
Line 1063  case 8: Line 1061  case 8:
                         // new class' name                          // new class' name
                         StringPtr name=LA2S(*strings_code);                          StringPtr name=LA2S(*strings_code);
                         // creating the class                          // creating the class
                         PC.cclass=VStateless_classPtr(new VClass);                          VStateless_classPtr cclass(new VClass);
                           PC.cclass=cclass.get();
                         PC.cclass->set_name(name);                          PC.cclass->set_name(name);
                         // append to request's classes                          // append to request's classes
                         PC.request->classes().put(name, PC.cclass);                          PC.request->classes().put(name, cclass);
                 } else {                  } else {
                         strcpy(PC.error, "@"CLASS_NAME" must contain sole name");                          strcpy(PC.error, "@"CLASS_NAME" must contain sole name");
                         YYERROR;                          YYERROR;
Line 1086  case 8: Line 1085  case 8:
                         if(ValuePtr base_class_value=PC.request->classes().get(base_name)) {                          if(ValuePtr base_class_value=PC.request->classes().get(base_name)) {
                                 // @CLASS == @BASE sanity check                                  // @CLASS == @BASE sanity check
                                 if(VStateless_class *base_class=base_class_value->get_class()) {                                  if(VStateless_class *base_class=base_class_value->get_class()) {
                                         if(PC.cclass.get()==base_class) {                                          if(PC.cclass==base_class) {
                                                 strcpy(PC.error, "@"CLASS_NAME" equals @"BASE_NAME);                                                  strcpy(PC.error, "@"CLASS_NAME" equals @"BASE_NAME);
                                                 YYERROR;                                                  YYERROR;
                                         }                                          }
Line 1115  case 8: Line 1114  case 8:
 ;  ;
     break;}      break;}
 case 12:  case 12:
 #line 202 "compile.y"  #line 201 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 16:  case 16:
 #line 207 "compile.y"  #line 206 "compile.y"
 {  {
         StringPtr name=LA2S(*yyvsp[-5]);          StringPtr name=LA2S(*yyvsp[-5]);
   
Line 1149  case 16: Line 1148  case 16:
 ;  ;
     break;}      break;}
 case 19:  case 19:
 #line 236 "compile.y"  #line 235 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 23:  case 23:
 #line 238 "compile.y"  #line 237 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 29:  case 29:
 #line 246 "compile.y"  #line 245 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 35:  case 35:
 #line 252 "compile.y"  #line 251 "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 1170  case 35:
 ;  ;
     break;}      break;}
 case 36:  case 36:
 #line 259 "compile.y"  #line 258 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 39:  case 39:
 #line 261 "compile.y"  #line 260 "compile.y"
 { yyval=yyvsp[-1] ;  { yyval=yyvsp[-1] ;
     break;}      break;}
 case 42:  case 42:
 #line 265 "compile.y"  #line 264 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         ArrayOperationPtr diving_code=yyvsp[0];          ArrayOperationPtr diving_code=yyvsp[0];
Line 1204  case 42: Line 1203  case 42:
 ;  ;
     break;}      break;}
 case 43:  case 43:
 #line 287 "compile.y"  #line 286 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 45:  case 45:
 #line 288 "compile.y"  #line 287 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 46:  case 46:
 #line 292 "compile.y"  #line 291 "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 300 "compile.y"  #line 299 "compile.y"
 {  {
         yyval=N();          yyval=N();
         ArrayOperationPtr diving_code=yyvsp[0];          ArrayOperationPtr diving_code=yyvsp[0];
Line 1239  case 50: Line 1238  case 50:
 ;  ;
     break;}      break;}
 case 51:  case 51:
 #line 317 "compile.y"  #line 316 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         O(*yyval, OP_WITH_WRITE); /* stack: starting context */          O(*yyval, OP_WITH_WRITE); /* stack: starting context */
Line 1247  case 51: Line 1246  case 51:
 ;  ;
     break;}      break;}
 case 52:  case 52:
 #line 322 "compile.y"  #line 321 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 56:  case 56:
 #line 329 "compile.y"  #line 328 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=yyvsp[-1]; // stack: context, name, value          yyval=yyvsp[-1]; // stack: context, name, value
Line 1259  case 56: Line 1258  case 56:
 ;  ;
     break;}      break;}
 case 57:  case 57:
 #line 335 "compile.y"  #line 334 "compile.y"
 {   { 
         yyval=N();           yyval=N(); 
         O(*yyval, OP_PREPARE_TO_EXPRESSION);          O(*yyval, OP_PREPARE_TO_EXPRESSION);
Line 1269  case 57: Line 1268  case 57:
 ;  ;
     break;}      break;}
 case 58:  case 58:
 #line 343 "compile.y"  #line 342 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=N();           yyval=N(); 
Line 1277  case 58: Line 1276  case 58:
 ;  ;
     break;}      break;}
 case 62:  case 62:
 #line 354 "compile.y"  #line 353 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         OA(*yyval, OP_OBJECT_POOL, yyvsp[0]); /* stack: empty write context */          OA(*yyval, OP_OBJECT_POOL, yyvsp[0]); /* stack: empty write context */
Line 1286  case 62: Line 1285  case 62:
 ;  ;
     break;}      break;}
 case 65:  case 65:
 #line 361 "compile.y"  #line 360 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 66:  case 66:
 #line 365 "compile.y"  #line 364 "compile.y"
 {  {
         yyval=yyvsp[0]; /* stack: value */          yyval=yyvsp[0]; /* stack: value */
         changetail_or_append(*yyval,           changetail_or_append(*yyval, 
Line 1299  case 66: Line 1298  case 66:
 ;  ;
     break;}      break;}
 case 67:  case 67:
 #line 371 "compile.y"  #line 370 "compile.y"
 {   { 
                                         PC.in_call_value=true;                                           PC.in_call_value=true; 
                         ;                          ;
     break;}      break;}
 case 68:  case 68:
 #line 374 "compile.y"  #line 373 "compile.y"
 {  {
                                 PC.in_call_value=false;                                  PC.in_call_value=false;
                         ;                          ;
     break;}      break;}
 case 69:  case 69:
 #line 377 "compile.y"  #line 376 "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 1326  case 69: Line 1325  case 69:
 ;  ;
     break;}      break;}
 case 72:  case 72:
 #line 392 "compile.y"  #line 391 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 76:  case 76:
 #line 398 "compile.y"  #line 397 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 77:  case 77:
 #line 399 "compile.y"  #line 398 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 78:  case 78:
 #line 400 "compile.y"  #line 399 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 80:  case 80:
 #line 403 "compile.y"  #line 402 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 82:  case 82:
 #line 407 "compile.y"  #line 406 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 84:  case 84:
 #line 411 "compile.y"  #line 410 "compile.y"
 { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 85:  case 85:
 #line 413 "compile.y"  #line 412 "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 417 "compile.y"  #line 416 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         OA(*yyval, OP_EXPR_CODE__STORE_PARAM, yyvsp[0]);          OA(*yyval, OP_EXPR_CODE__STORE_PARAM, yyvsp[0]);
 ;  ;
     break;}      break;}
 case 87:  case 87:
 #line 421 "compile.y"  #line 420 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         OA(*yyval, OP_CURLY_CODE__STORE_PARAM, yyvsp[0]);          OA(*yyval, OP_CURLY_CODE__STORE_PARAM, yyvsp[0]);
 ;  ;
     break;}      break;}
 case 91:  case 91:
 #line 430 "compile.y"  #line 429 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         O(*yyval, OP_PREPARE_TO_EXPRESSION);          O(*yyval, OP_PREPARE_TO_EXPRESSION);
Line 1384  case 91: Line 1383  case 91:
 ;  ;
     break;}      break;}
 case 93:  case 93:
 #line 439 "compile.y"  #line 438 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 95:  case 95:
 #line 441 "compile.y"  #line 440 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 97:  case 97:
 #line 443 "compile.y"  #line 442 "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 1403  case 97: Line 1402  case 97:
 ;  ;
     break;}      break;}
 case 98:  case 98:
 #line 451 "compile.y"  #line 450 "compile.y"
 {  {
         /* stack: context */          /* stack: context */
         yyval=yyvsp[0]; /* stack: context,name */          yyval=yyvsp[0]; /* stack: context,name */
Line 1411  case 98: Line 1410  case 98:
 ;  ;
     break;}      break;}
 case 104:  case 104:
 #line 464 "compile.y"  #line 463 "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 468 "compile.y"  #line 467 "compile.y"
 {  {
         ArrayOperationPtr code;          ArrayOperationPtr code;
         {          {
Line 1430  case 105: Line 1429  case 105:
 ;  ;
     break;}      break;}
 case 106:  case 106:
 #line 477 "compile.y"  #line 476 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         OA(*yyval, OP_OBJECT_POOL, yyvsp[-1]); /* stack: empty write context */          OA(*yyval, OP_OBJECT_POOL, yyvsp[-1]); /* stack: empty write context */
Line 1439  case 106: Line 1438  case 106:
 ;  ;
     break;}      break;}
 case 107:  case 107:
 #line 483 "compile.y"  #line 482 "compile.y"
 {  {
         yyval=N();           yyval=N(); 
         O(*yyval, OP_WITH_READ);          O(*yyval, OP_WITH_READ);
Line 1447  case 107: Line 1446  case 107:
 ;  ;
     break;}      break;}
 case 109:  case 109:
 #line 488 "compile.y"  #line 487 "compile.y"
 { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;  { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;
     break;}      break;}
 case 110:  case 110:
 #line 489 "compile.y"  #line 488 "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 498 "compile.y"  #line 497 "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 1473  case 113: Line 1472  case 113:
 ;  ;
     break;}      break;}
 case 114:  case 114:
 #line 510 "compile.y"  #line 509 "compile.y"
 {  {
         yyval=yyvsp[-1];          yyval=yyvsp[-1];
         if(!PC.in_call_value) {          if(!PC.in_call_value) {
Line 1484  case 114: Line 1483  case 114:
 ;  ;
     break;}      break;}
 case 115:  case 115:
 #line 522 "compile.y"  #line 521 "compile.y"
 {  {
         // see OP_PREPARE_TO_EXPRESSION!!          // see OP_PREPARE_TO_EXPRESSION!!
         if((yyval=yyvsp[0])->count()==2) // only one string literal in there?          if((yyval=yyvsp[0])->count()==2) // only one string literal in there?
Line 1492  case 115: Line 1491  case 115:
 ;  ;
     break;}      break;}
 case 119:  case 119:
 #line 531 "compile.y"  #line 530 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 120:  case 120:
 #line 532 "compile.y"  #line 531 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 121:  case 121:
 #line 533 "compile.y"  #line 532 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 122:  case 122:
 #line 535 "compile.y"  #line 534 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_NEG) ;  { yyval=yyvsp[0];  O(*yyval, OP_NEG) ;
     break;}      break;}
 case 123:  case 123:
 #line 536 "compile.y"  #line 535 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 124:  case 124:
 #line 537 "compile.y"  #line 536 "compile.y"
 { yyval=yyvsp[0];        O(*yyval, OP_INV) ;  { yyval=yyvsp[0];        O(*yyval, OP_INV) ;
     break;}      break;}
 case 125:  case 125:
 #line 538 "compile.y"  #line 537 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_NOT) ;  { yyval=yyvsp[0];  O(*yyval, OP_NOT) ;
     break;}      break;}
 case 126:  case 126:
 #line 539 "compile.y"  #line 538 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_DEF) ;  { yyval=yyvsp[0];  O(*yyval, OP_DEF) ;
     break;}      break;}
 case 127:  case 127:
 #line 540 "compile.y"  #line 539 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_IN) ;  { yyval=yyvsp[0];  O(*yyval, OP_IN) ;
     break;}      break;}
 case 128:  case 128:
 #line 541 "compile.y"  #line 540 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_FEXISTS) ;  { yyval=yyvsp[0];  O(*yyval, OP_FEXISTS) ;
     break;}      break;}
 case 129:  case 129:
 #line 542 "compile.y"  #line 541 "compile.y"
 { yyval=yyvsp[0];  O(*yyval, OP_DEXISTS) ;  { yyval=yyvsp[0];  O(*yyval, OP_DEXISTS) ;
     break;}      break;}
 case 130:  case 130:
 #line 544 "compile.y"  #line 543 "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 545 "compile.y"  #line 544 "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 546 "compile.y"  #line 545 "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 547 "compile.y"  #line 546 "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 548 "compile.y"  #line 547 "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 549 "compile.y"  #line 548 "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 550 "compile.y"  #line 549 "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 551 "compile.y"  #line 550 "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 552 "compile.y"  #line 551 "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 553 "compile.y"  #line 552 "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 554 "compile.y"  #line 553 "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 555 "compile.y"  #line 554 "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 556 "compile.y"  #line 555 "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 557 "compile.y"  #line 556 "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 558 "compile.y"  #line 557 "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 559 "compile.y"  #line 558 "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 560 "compile.y"  #line 559 "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 561 "compile.y"  #line 560 "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 562 "compile.y"  #line 561 "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 563 "compile.y"  #line 562 "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 564 "compile.y"  #line 563 "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 565 "compile.y"  #line 564 "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 566 "compile.y"  #line 565 "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 567 "compile.y"  #line 566 "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 568 "compile.y"  #line 567 "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 569 "compile.y"  #line 568 "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 570 "compile.y"  #line 569 "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 573 "compile.y"  #line 572 "compile.y"
 {  {
         yyval=N();          yyval=N();
         OA(*yyval, OP_STRING_POOL, yyvsp[0]); /* stack: empty write context */          OA(*yyval, OP_STRING_POOL, yyvsp[0]); /* stack: empty write context */
Line 1653  case 157: Line 1652  case 157:
 ;  ;
     break;}      break;}
 case 158:  case 158:
 #line 582 "compile.y"  #line 581 "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 587 "compile.y"  #line 586 "compile.y"
 { yyval=VL(ValuePtr(new VVoid())) ;  { yyval=VL(ValuePtr(new VVoid())) ;
     break;}      break;}
 case 160:  case 160:
 #line 588 "compile.y"  #line 587 "compile.y"
 { yyval=N() ;  { yyval=N() ;
     break;}      break;}
 }  }
Line 1889  yyerrhandle: Line 1888  yyerrhandle:
     }      }
   return 1;    return 1;
 }  }
 #line 590 "compile.y"  #line 589 "compile.y"
   
 #endif  #endif
   
Line 2623  static int real_yyerror(parse_control *p Line 2622  static int real_yyerror(parse_control *p
   
 static void yyprint(FILE *file, int type, YYSTYPE value) {  static void yyprint(FILE *file, int type, YYSTYPE value) {
         if(type==STRING)          if(type==STRING)
                 fprintf(file, " \"%s\"", LA2S(*value)->cstr());                  fprintf(file, " \"%s\"", LA2S(*value)->cstr().get());
 }  }

Removed from v.1.81.2.5  
changed lines
  Added in v.1.81.2.11


E-mail: