Diff for /parser3/src/main/compile.tab.C between versions 1.38 and 1.46

version 1.38, 2002/02/07 11:31:54 version 1.46, 2002/04/09 16:27:26
Line 209  static const short yyrline[] = { 0, Line 209  static const short yyrline[] = { 0,
    226,   227,   227,   229,   229,   233,   233,   235,   235,   236,     226,   227,   227,   229,   229,   233,   233,   235,   235,   236,
    236,   237,   237,   237,   241,   245,   246,   246,   247,   248,     236,   237,   237,   237,   241,   245,   246,   246,   247,   248,
    250,   251,   273,   274,   274,   278,   282,   284,   285,   286,     250,   251,   273,   274,   274,   278,   282,   284,   285,   286,
    303,   308,   310,   312,   313,   315,   321,   327,   333,   335,     303,   308,   310,   312,   313,   315,   321,   329,   335,   337,
    336,   338,   344,   345,   345,   349,   353,   356,   359,   373,     338,   340,   346,   347,   347,   351,   355,   358,   361,   375,
    375,   375,   376,   378,   379,   381,   382,   383,   384,   386,     377,   377,   378,   380,   381,   383,   384,   385,   386,   388,
    388,   390,   392,   394,   396,   400,   404,   408,   410,   411,     390,   392,   394,   396,   398,   402,   406,   410,   412,   413,
    413,   420,   420,   422,   422,   423,   424,   432,   437,   439,     415,   424,   424,   426,   426,   427,   428,   436,   441,   443,
    441,   442,   443,   445,   449,   457,   463,   468,   468,   469,     445,   446,   447,   449,   453,   461,   467,   472,   472,   473,
    474,   476,   478,   482,   494,   498,   500,   501,   502,   503,     478,   480,   482,   486,   498,   503,   505,   506,   507,   508,
    504,   506,   507,   508,   509,   510,   511,   512,   513,   515,     509,   511,   512,   513,   514,   515,   516,   517,   518,   520,
    516,   517,   518,   519,   520,   521,   522,   523,   524,   525,     521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
    526,   527,   528,   529,   530,   531,   532,   533,   534,   535,     531,   532,   533,   534,   535,   536,   537,   538,   539,   540,
    536,   537,   538,   539,   542,   551,   556,   557     541,   542,   543,   544,   547,   556,   561,   562
 };  };
 #endif  #endif
   
Line 1169  case 42: Line 1169  case 42:
   
                 // ^if ELEMENT -> ^if ELEMENT_OR_OPERATOR                  // ^if ELEMENT -> ^if ELEMENT_OR_OPERATOR
                 // OP_VALUE+string+OP_GET_ELEMENT. -> OP_VALUE+string+OP_GET_ELEMENT_OR_OPERATOR.                  // OP_VALUE+string+OP_GET_ELEMENT. -> OP_VALUE+string+OP_GET_ELEMENT_OR_OPERATOR.
                 if(diving_code->size()==3)                  if(PC.in_call_value && diving_code->size()==3)
                         diving_code->put_int(2, OP_GET_ELEMENT_OR_OPERATOR);                          diving_code->put_int(2, OP_GET_ELEMENT_OR_OPERATOR);
                 P(yyval, diving_code);                  P(yyval, diving_code);
         }          }
Line 1234  case 56: Line 1234  case 56:
 case 57:  case 57:
 #line 321 "compile.y"  #line 321 "compile.y"
 {   { 
           yyval=N(POOL); 
           O(yyval, OP_PREPARE_TO_EXPRESSION);
         // stack: context, name          // stack: context, name
         yyval=yyvsp[-1]; // stack: context, name, value          P(yyval, yyvsp[-1]); // stack: context, name, value
         O(yyval, OP_CONSTRUCT_EXPR); /* value=pop->as_expr_result; name=pop; context=pop; construct(context,name,value) */          O(yyval, OP_CONSTRUCT_EXPR); /* value=pop->as_expr_result; name=pop; context=pop; construct(context,name,value) */
 ;  ;
     break;}      break;}
 case 58:  case 58:
 #line 327 "compile.y"  #line 329 "compile.y"
 {  {
         // stack: context, name          // stack: context, name
         yyval=N(POOL);           yyval=N(POOL); 
Line 1248  case 58: Line 1250  case 58:
 ;  ;
     break;}      break;}
 case 62:  case 62:
 #line 338 "compile.y"  #line 340 "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 1257  case 62: Line 1259  case 62:
 ;  ;
     break;}      break;}
 case 65:  case 65:
 #line 345 "compile.y"  #line 347 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 66:  case 66:
 #line 349 "compile.y"  #line 351 "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 353 "compile.y"  #line 355 "compile.y"
 {   { 
                                         PC.object_constructor_allowed=true;                                           PC.in_call_value=true; 
                         ;                          ;
     break;}      break;}
 case 68:  case 68:
 #line 356 "compile.y"  #line 358 "compile.y"
 {  {
                                 PC.object_constructor_allowed=false;                                  PC.in_call_value=false;
                         ;                          ;
     break;}      break;}
 case 69:  case 69:
 #line 359 "compile.y"  #line 361 "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 1296  case 69: Line 1298  case 69:
 ;  ;
     break;}      break;}
 case 72:  case 72:
 #line 375 "compile.y"  #line 377 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 76:  case 76:
 #line 381 "compile.y"  #line 383 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 77:  case 77:
 #line 382 "compile.y"  #line 384 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 78:  case 78:
 #line 383 "compile.y"  #line 385 "compile.y"
 {yyval=yyvsp[-1];  {yyval=yyvsp[-1];
     break;}      break;}
 case 80:  case 80:
 #line 386 "compile.y"  #line 388 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 82:  case 82:
 #line 390 "compile.y"  #line 392 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 84:  case 84:
 #line 394 "compile.y"  #line 396 "compile.y"
 { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-2]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 85:  case 85:
 #line 396 "compile.y"  #line 398 "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 400 "compile.y"  #line 402 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         PEA(yyval, yyvsp[0]);          PEA(yyval, yyvsp[0]);
 ;  ;
     break;}      break;}
 case 87:  case 87:
 #line 404 "compile.y"  #line 406 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         PCA(yyval, yyvsp[0]);          PCA(yyval, yyvsp[0]);
 ;  ;
     break;}      break;}
 case 91:  case 91:
 #line 413 "compile.y"  #line 415 "compile.y"
 {  {
         yyval=yyvsp[0];          yyval=N(POOL); 
           O(yyval, OP_PREPARE_TO_EXPRESSION);
           P(yyval, yyvsp[0]);
         O(yyval, OP_WRITE_EXPR_RESULT);          O(yyval, OP_WRITE_EXPR_RESULT);
 ;  ;
     break;}      break;}
 case 93:  case 93:
 #line 420 "compile.y"  #line 424 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 95:  case 95:
 #line 422 "compile.y"  #line 426 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 97:  case 97:
 #line 424 "compile.y"  #line 428 "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 1371  case 97: Line 1375  case 97:
 ;  ;
     break;}      break;}
 case 98:  case 98:
 #line 432 "compile.y"  #line 436 "compile.y"
 {  {
         /* stack: context */          /* stack: context */
         yyval=yyvsp[0]; /* stack: context,name */          yyval=yyvsp[0]; /* stack: context,name */
Line 1379  case 98: Line 1383  case 98:
 ;  ;
     break;}      break;}
 case 104:  case 104:
 #line 445 "compile.y"  #line 449 "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 449 "compile.y"  #line 453 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_CREATE_EWPOOL);          O(yyval, OP_CREATE_EWPOOL);
Line 1397  case 105: Line 1401  case 105:
 ;  ;
     break;}      break;}
 case 106:  case 106:
 #line 457 "compile.y"  #line 461 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_CREATE_EWPOOL);          O(yyval, OP_CREATE_EWPOOL);
Line 1406  case 106: Line 1410  case 106:
 ;  ;
     break;}      break;}
 case 107:  case 107:
 #line 463 "compile.y"  #line 467 "compile.y"
 {  {
         yyval=N(POOL);           yyval=N(POOL); 
         O(yyval, OP_WITH_READ);          O(yyval, OP_WITH_READ);
Line 1414  case 107: Line 1418  case 107:
 ;  ;
     break;}      break;}
 case 109:  case 109:
 #line 468 "compile.y"  #line 472 "compile.y"
 { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;  { yyval=yyvsp[-1]; P(yyval, yyvsp[0]) ;
     break;}      break;}
 case 110:  case 110:
 #line 469 "compile.y"  #line 473 "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 478 "compile.y"  #line 482 "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 482 "compile.y"  #line 486 "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 1443  case 114: Line 1447  case 114:
 ;  ;
     break;}      break;}
 case 115:  case 115:
 #line 494 "compile.y"  #line 498 "compile.y"
 {  {
           // 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?
                 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 502 "compile.y"  #line 507 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 120:  case 120:
 #line 503 "compile.y"  #line 508 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 121:  case 121:
 #line 504 "compile.y"  #line 509 "compile.y"
 { yyval = yyvsp[-1]; ;  { yyval = yyvsp[-1]; ;
     break;}      break;}
 case 122:  case 122:
 #line 506 "compile.y"  #line 511 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_NEG) ;  { yyval=yyvsp[0];  O(yyval, OP_NEG) ;
     break;}      break;}
 case 123:  case 123:
 #line 507 "compile.y"  #line 512 "compile.y"
 { yyval=yyvsp[0] ;  { yyval=yyvsp[0] ;
     break;}      break;}
 case 124:  case 124:
 #line 508 "compile.y"  #line 513 "compile.y"
 { yyval=yyvsp[0];        O(yyval, OP_INV) ;  { yyval=yyvsp[0];        O(yyval, OP_INV) ;
     break;}      break;}
 case 125:  case 125:
 #line 509 "compile.y"  #line 514 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_NOT) ;  { yyval=yyvsp[0];  O(yyval, OP_NOT) ;
     break;}      break;}
 case 126:  case 126:
 #line 510 "compile.y"  #line 515 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_DEF) ;  { yyval=yyvsp[0];  O(yyval, OP_DEF) ;
     break;}      break;}
 case 127:  case 127:
 #line 511 "compile.y"  #line 516 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_IN) ;  { yyval=yyvsp[0];  O(yyval, OP_IN) ;
     break;}      break;}
 case 128:  case 128:
 #line 512 "compile.y"  #line 517 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_FEXISTS) ;  { yyval=yyvsp[0];  O(yyval, OP_FEXISTS) ;
     break;}      break;}
 case 129:  case 129:
 #line 513 "compile.y"  #line 518 "compile.y"
 { yyval=yyvsp[0];  O(yyval, OP_DEXISTS) ;  { yyval=yyvsp[0];  O(yyval, OP_DEXISTS) ;
     break;}      break;}
 case 130:  case 130:
 #line 515 "compile.y"  #line 520 "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 516 "compile.y"  #line 521 "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 517 "compile.y"  #line 522 "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 518 "compile.y"  #line 523 "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 519 "compile.y"  #line 524 "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 520 "compile.y"  #line 525 "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 521 "compile.y"  #line 526 "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 137:  case 137:
 #line 522 "compile.y"  #line 527 "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 138:  case 138:
 #line 523 "compile.y"  #line 528 "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 139:  case 139:
 #line 524 "compile.y"  #line 529 "compile.y"
 { yyval=yyvsp[-2];  PNC(yyval, yyvsp[0]);  O(yyval, OP_LOG_AND) ;  { yyval=yyvsp[-2];  PNC(yyval, yyvsp[0]);  O(yyval, OP_LOG_AND) ;
     break;}      break;}
 case 140:  case 140:
 #line 525 "compile.y"  #line 530 "compile.y"
 { yyval=yyvsp[-2];  PNC(yyval, yyvsp[0]);  O(yyval, OP_LOG_OR) ;  { yyval=yyvsp[-2];  PNC(yyval, yyvsp[0]);  O(yyval, OP_LOG_OR) ;
     break;}      break;}
 case 141:  case 141:
 #line 526 "compile.y"  #line 531 "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 142:  case 142:
 #line 527 "compile.y"  #line 532 "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 143:  case 143:
 #line 528 "compile.y"  #line 533 "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 144:  case 144:
 #line 529 "compile.y"  #line 534 "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 145:  case 145:
 #line 530 "compile.y"  #line 535 "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 146:  case 146:
 #line 531 "compile.y"  #line 536 "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 147:  case 147:
 #line 532 "compile.y"  #line 537 "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 148:  case 148:
 #line 533 "compile.y"  #line 538 "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 149:  case 149:
 #line 534 "compile.y"  #line 539 "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 150:  case 150:
 #line 535 "compile.y"  #line 540 "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 151:  case 151:
 #line 536 "compile.y"  #line 541 "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 152:  case 152:
 #line 537 "compile.y"  #line 542 "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 153:  case 153:
 #line 538 "compile.y"  #line 543 "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 154:  case 154:
 #line 539 "compile.y"  #line 544 "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 155:  case 155:
 #line 542 "compile.y"  #line 547 "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 1603  case 155: Line 1608  case 155:
 ;  ;
     break;}      break;}
 case 156:  case 156:
 #line 551 "compile.y"  #line 556 "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 157:  case 157:
 #line 556 "compile.y"  #line 561 "compile.y"
 { yyval=VL(NEW VVoid(POOL)) ;  { yyval=VL(NEW VVoid(POOL)) ;
     break;}      break;}
 case 158:  case 158:
 #line 557 "compile.y"  #line 562 "compile.y"
 { yyval=N(POOL) ;  { yyval=N(POOL) ;
     break;}      break;}
 }  }
Line 1839  yyerrhandle: Line 1844  yyerrhandle:
     }      }
   return 1;    return 1;
 }  }
 #line 559 "compile.y"  #line 564 "compile.y"
   
 #endif  #endif
   
Line 2227  default: Line 2232  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;

Removed from v.1.38  
changed lines
  Added in v.1.46


E-mail: