--- parser3/src/main/compile.tab.C 2009/05/20 13:38:41 1.134 +++ parser3/src/main/compile.tab.C 2009/06/05 23:34:48 1.139 @@ -132,7 +132,7 @@ Copyright (c) 2001-2009 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://design.ru/paf) - $Id: compile.tab.C,v 1.134 2009/05/20 13:38:41 misha Exp $ + $Id: compile.tab.C,v 1.139 2009/06/05 23:34:48 misha Exp $ */ /** @@ -459,21 +459,21 @@ static const unsigned short int yyrline[ 0, 132, 132, 139, 141, 141, 142, 144, 144, 146, 247, 247, 248, 248, 249, 250, 250, 252, 252, 302, 302, 303, 304, 304, 305, 305, 307, 307, 311, 311, - 313, 313, 314, 314, 315, 315, 315, 319, 356, 357, - 357, 358, 360, 361, 362, 416, 417, 417, 421, 434, - 435, 436, 437, 454, 459, 462, 463, 464, 466, 469, - 466, 477, 485, 492, 493, 494, 496, 502, 503, 503, - 507, 518, 521, 518, 545, 547, 547, 549, 550, 551, - 553, 556, 553, 559, 560, 562, 563, 566, 567, 570, - 571, 573, 576, 590, 595, 596, 597, 602, 602, 604, - 604, 605, 606, 614, 619, 622, 623, 624, 625, 627, - 631, 640, 643, 640, 651, 656, 656, 657, 663, 664, - 666, 683, 695, 697, 698, 699, 700, 701, 702, 703, - 704, 706, 707, 708, 709, 710, 711, 712, 713, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 738, 739, 740, 741, 744, 749, 770, 775, - 776, 777, 779 + 313, 313, 314, 314, 315, 315, 315, 319, 357, 358, + 358, 359, 361, 362, 363, 421, 422, 422, 426, 439, + 440, 441, 442, 459, 464, 467, 468, 469, 471, 474, + 471, 482, 490, 497, 498, 499, 501, 507, 508, 508, + 512, 523, 526, 523, 554, 556, 556, 558, 559, 560, + 562, 565, 562, 568, 569, 571, 572, 575, 576, 579, + 580, 582, 585, 599, 604, 605, 606, 611, 611, 613, + 613, 614, 615, 623, 628, 631, 632, 633, 634, 636, + 640, 649, 652, 649, 660, 665, 665, 666, 672, 673, + 675, 692, 704, 706, 707, 708, 709, 710, 711, 712, + 713, 715, 716, 717, 718, 719, 720, 721, 722, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 753, 758, 779, 784, + 785, 786, 788 }; #endif @@ -1625,54 +1625,55 @@ yyreduce: { yyval=N(); YYSTYPE code=yyvsp[0]; + #ifdef OPTIMIZE_BYTECODE_GET_ELEMENT if(!maybe_change_first_opcode(*code, OP::OP_VALUE__GET_ELEMENT, /*=>*/OP::OP_VALUE__GET_ELEMENT__WRITE)) #endif - { - size_t count=code->count(); - size_t len=6; + { + size_t count=code->count(); +#ifdef OPTIMIZE_BYTECODE_GET_SELF_ELEMENT + if( + count!=3 + || !maybe_change_first_opcode(*code, OP::OP_WITH_SELF__VALUE__GET_ELEMENT, /*=>*/OP::OP_WITH_SELF__VALUE__GET_ELEMENT__WRITE) + ) +#endif #ifdef OPTIMIZE_BYTECODE_GET_OBJECT_ELEMENT - if( - count==len - && maybe_change_first_opcode(*code, OP::OP_GET_OBJECT_ELEMENT, OP::OP_GET_ELEMENT, /*=>*/OP::OP_GET_OBJECT_ELEMENT__WRITE) - ){ - //P(*$$, *code, 0/*offset*/, count-1/*limit*/); // someday skip last OP_GET_ELEMENT - //break; - } else + if( + count!=5 + || !maybe_change_first_opcode(*code, OP::OP_GET_OBJECT_ELEMENT, /*=>*/OP::OP_GET_OBJECT_ELEMENT__WRITE) + ) #endif #ifdef OPTIMIZE_BYTECODE_GET_OBJECT_VAR_ELEMENT - if( - count==len - && maybe_change_first_opcode(*code, OP::OP_GET_OBJECT_VAR_ELEMENT, OP::OP_GET_ELEMENT, /*=>*/OP::OP_GET_OBJECT_VAR_ELEMENT__WRITE) - ){ - //P(*$$, *code, 0/*offset*/, count-1/*limit*/); // someday skip last OP_GET_ELEMENT - //break; - } else + if( + count!=5 + || !maybe_change_first_opcode(*code, OP::OP_GET_OBJECT_VAR_ELEMENT, /*=>*/OP::OP_GET_OBJECT_VAR_ELEMENT__WRITE) + ) #endif - - changetail_or_append(*code, - OP::OP_GET_ELEMENT, false, /*=>*/OP::OP_GET_ELEMENT__WRITE, - /*or */OP::OP_WRITE_VALUE - ); /* value=pop; wcontext.write(value) */ + { + changetail_or_append(*code, + OP::OP_GET_ELEMENT, false, /*=>*/OP::OP_GET_ELEMENT__WRITE, + /*or */OP::OP_WRITE_VALUE + ); /* value=pop; wcontext.write(value) */ } + } P(*yyval, *code); ;} break; case 38: -#line 356 "compile.y" +#line 357 "compile.y" { yyval=yyvsp[0] ;} break; case 41: -#line 358 "compile.y" +#line 359 "compile.y" { yyval=yyvsp[-1] ;} break; case 44: -#line 362 "compile.y" +#line 363 "compile.y" { yyval=N(); YYSTYPE diving_code=yyvsp[0]; @@ -1681,27 +1682,31 @@ yyreduce: // self.xxx... => xxx... // OP_VALUE+origin+string+OP_GET_ELEMENT+... -> OP_WITH_SELF+... if(first_name && *first_name==SELF_ELEMENT_NAME) { - O(*yyval, OP::OP_WITH_SELF); /* stack: starting context */ - P(*yyval, *diving_code, - /* skip over... */ - count>=4?4/*OP_VALUE+origin+string+OP_GET_ELEMENTx*/:3/*OP::OP_+origin+string*/); +#ifdef OPTIMIZE_BYTECODE_GET_SELF_ELEMENT + if(maybe_make_with_self_get_element(*yyval, *diving_code, count)){ + // optimization for $self.field and ^self.method + } else +#endif + { + O(*yyval, OP::OP_WITH_SELF); /* stack: starting context */ + P(*yyval, *diving_code, + /* skip over... */ + count>=4?4/*OP_VALUE+origin+string+OP_GET_ELEMENTx*/:3/*OP::OP_+origin+string*/); + } } - #ifdef OPTIMIZE_BYTECODE_GET_OBJECT_ELEMENT else if(maybe_make_get_object_element(*yyval, *diving_code, count)){ - // optimisation for $object.field + ^object.method[ + // optimization for $object.field + ^object.method[ } #endif - #ifdef OPTIMIZE_BYTECODE_GET_OBJECT_VAR_ELEMENT else if(maybe_make_get_object_var_element(*yyval, *diving_code, count)){ - // optimisation for $object.$var + // optimization for $object.$var } #endif - #ifdef OPTIMIZE_BYTECODE_GET_ELEMENT else if(count==4){ // optimization O(*yyval, @@ -1730,22 +1735,22 @@ yyreduce: break; case 45: -#line 416 "compile.y" +#line 421 "compile.y" { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;} break; case 47: -#line 417 "compile.y" +#line 422 "compile.y" { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;} break; case 48: -#line 421 "compile.y" +#line 426 "compile.y" { yyval=N(); #ifdef OPTIMIZE_BYTECODE_CONSTRUCT - if(maybe_make_root_or_write_construct(*yyval, *yyvsp[-1], *yyvsp[0])){ - // $a(1) or $.b(2) or $c[d] or $.e[f] + if(maybe_optimize_construct(*yyval, *yyvsp[-1], *yyvsp[0])){ + // $a(expr), $.a(expr), $a[value], $.a[value], $self.a[value], $self.a(expr) } else #endif { @@ -1756,7 +1761,7 @@ yyreduce: break; case 52: -#line 437 "compile.y" +#line 442 "compile.y" { yyval=N(); YYSTYPE diving_code=yyvsp[0]; @@ -1777,7 +1782,7 @@ yyreduce: break; case 53: -#line 454 "compile.y" +#line 459 "compile.y" { yyval=N(); O(*yyval, OP::OP_WITH_WRITE); /* stack: starting context */ @@ -1786,12 +1791,12 @@ yyreduce: break; case 54: -#line 459 "compile.y" +#line 464 "compile.y" { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;} break; case 58: -#line 466 "compile.y" +#line 471 "compile.y" { // allow $result_or_other_variable[ letters here any time ] *reinterpret_cast(&yyval)=PC.explicit_result; PC.explicit_result=false; @@ -1799,14 +1804,14 @@ yyreduce: break; case 59: -#line 469 "compile.y" +#line 474 "compile.y" { PC.explicit_result=*reinterpret_cast(&yyvsp[-1]); ;} break; case 60: -#line 471 "compile.y" +#line 476 "compile.y" { // stack: context, name yyval=yyvsp[-2]; // stack: context, name, value @@ -1815,7 +1820,7 @@ yyreduce: break; case 61: -#line 477 "compile.y" +#line 482 "compile.y" { yyval=N(); O(*yyval, OP::OP_PREPARE_TO_EXPRESSION); @@ -1826,7 +1831,7 @@ yyreduce: break; case 62: -#line 485 "compile.y" +#line 490 "compile.y" { // stack: context, name yyval=N(); @@ -1835,7 +1840,7 @@ yyreduce: break; case 66: -#line 496 "compile.y" +#line 501 "compile.y" { yyval=N(); OA(*yyval, OP::OP_OBJECT_POOL, yyvsp[0]); /* stack: empty write context */ @@ -1845,12 +1850,12 @@ yyreduce: break; case 69: -#line 503 "compile.y" +#line 508 "compile.y" { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;} break; case 70: -#line 507 "compile.y" +#line 512 "compile.y" { #ifdef OPTIMIZE_BYTECODE_CUT_REM_OPERATOR if((*yyvsp[0]).count()) @@ -1865,24 +1870,28 @@ yyreduce: break; case 71: -#line 518 "compile.y" +#line 523 "compile.y" { PC.in_call_value=true; ;} break; case 72: -#line 521 "compile.y" +#line 526 "compile.y" { PC.in_call_value=false; ;} break; case 73: -#line 524 "compile.y" +#line 529 "compile.y" { /* ^field.$method{vasya} */ #ifdef OPTIMIZE_BYTECODE_CUT_REM_OPERATOR +#ifdef OPTIMIZE_BYTECODE_GET_ELEMENT const String* operator_name=LA2S(*yyvsp[-3], 0, OP::OP_VALUE__GET_ELEMENT_OR_OPERATOR); +#else + const String* operator_name=LA2S(*yyvsp[-3], 1); +#endif if(operator_name && *operator_name == REM_OPERATOR_NAME){ yyval=N(); } else @@ -1903,12 +1912,12 @@ yyreduce: break; case 76: -#line 547 "compile.y" +#line 556 "compile.y" { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;} break; case 80: -#line 553 "compile.y" +#line 562 "compile.y" { // allow ^call[ letters here any time ] *reinterpret_cast(&yyval)=PC.explicit_result; PC.explicit_result=false; @@ -1916,51 +1925,51 @@ yyreduce: break; case 81: -#line 556 "compile.y" +#line 565 "compile.y" { PC.explicit_result=*reinterpret_cast(&yyvsp[-1]); ;} break; case 82: -#line 558 "compile.y" +#line 567 "compile.y" {yyval=yyvsp[-2];} break; case 83: -#line 559 "compile.y" +#line 568 "compile.y" {yyval=yyvsp[-1];} break; case 84: -#line 560 "compile.y" +#line 569 "compile.y" {yyval=yyvsp[-1];} break; case 86: -#line 563 "compile.y" +#line 572 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;} break; case 88: -#line 567 "compile.y" +#line 576 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;} break; case 90: -#line 571 "compile.y" +#line 580 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]) ;} break; case 91: -#line 573 "compile.y" +#line 582 "compile.y" { yyval=yyvsp[0]; ;} break; case 92: -#line 576 "compile.y" +#line 585 "compile.y" { YYSTYPE expr_code=yyvsp[0]; if(expr_code->count()==3 @@ -1978,7 +1987,7 @@ yyreduce: break; case 93: -#line 590 "compile.y" +#line 599 "compile.y" { yyval=N(); OA(*yyval, OP::OP_CURLY_CODE__STORE_PARAM, yyvsp[0]); @@ -1986,17 +1995,17 @@ yyreduce: break; case 98: -#line 602 "compile.y" +#line 611 "compile.y" { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;} break; case 100: -#line 604 "compile.y" +#line 613 "compile.y" { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;} break; case 102: -#line 606 "compile.y" +#line 615 "compile.y" { // we know that name_advance1 not called from ^xxx context // so we'll not check for operator call possibility as we do in name_advance2 @@ -2008,7 +2017,7 @@ yyreduce: break; case 103: -#line 614 "compile.y" +#line 623 "compile.y" { /* stack: context */ yyval=yyvsp[0]; /* stack: context,name */ @@ -2017,7 +2026,7 @@ yyreduce: break; case 109: -#line 627 "compile.y" +#line 636 "compile.y" { yyval=yyvsp[0]; O(*yyval, OP::OP_GET_ELEMENT); @@ -2025,7 +2034,7 @@ yyreduce: break; case 110: -#line 631 "compile.y" +#line 640 "compile.y" { YYSTYPE code; { @@ -2038,7 +2047,7 @@ yyreduce: break; case 111: -#line 640 "compile.y" +#line 649 "compile.y" { // allow $result_or_other_variable[ letters here any time ] *reinterpret_cast(&yyval)=PC.explicit_result; PC.explicit_result=false; @@ -2046,14 +2055,14 @@ yyreduce: break; case 112: -#line 643 "compile.y" +#line 652 "compile.y" { PC.explicit_result=*reinterpret_cast(&yyvsp[-1]); ;} break; case 113: -#line 645 "compile.y" +#line 654 "compile.y" { yyval=N(); OA(*yyval, OP::OP_OBJECT_POOL, yyvsp[-2]); /* stack: empty write context */ @@ -2063,7 +2072,7 @@ yyreduce: break; case 114: -#line 651 "compile.y" +#line 660 "compile.y" { yyval=N(); O(*yyval, OP::OP_WITH_READ); @@ -2072,12 +2081,12 @@ yyreduce: break; case 116: -#line 656 "compile.y" +#line 665 "compile.y" { yyval=yyvsp[-1]; P(*yyval, *yyvsp[0]) ;} break; case 117: -#line 657 "compile.y" +#line 666 "compile.y" { yyval=yyvsp[0]; O(*yyval, OP::OP_GET_ELEMENT__WRITE); @@ -2085,7 +2094,7 @@ yyreduce: break; case 120: -#line 666 "compile.y" +#line 675 "compile.y" { yyval=yyvsp[-1]; // stack: class name string if(*LA2S(*yyval) == BASE_NAME) { // pseudo BASE class @@ -2098,7 +2107,7 @@ yyreduce: } #ifdef OPTIMIZE_BYTECODE_GET_CLASS // optimized OP_VALUE+origin+string+OP_GET_CLASS => OP_VALUE__GET_CLASS+origin+string - maybe_change_first_opcode(*yyval, OP::OP_VALUE, OP::OP_VALUE__GET_CLASS, true/*assert if top opcode != OP_VALUE*/) + maybe_change_first_opcode(*yyval, OP::OP_VALUE, OP::OP_VALUE__GET_CLASS) #else O(*yyval, OP::OP_GET_CLASS); #endif @@ -2106,7 +2115,7 @@ yyreduce: break; case 121: -#line 683 "compile.y" +#line 692 "compile.y" { yyval=yyvsp[-1]; if(!PC.in_call_value) { @@ -2118,197 +2127,197 @@ yyreduce: break; case 128: -#line 702 "compile.y" +#line 711 "compile.y" { yyval = yyvsp[-1] ;} break; case 129: -#line 703 "compile.y" +#line 712 "compile.y" { yyval = yyvsp[-1] ;} break; case 130: -#line 704 "compile.y" +#line 713 "compile.y" { yyval = yyvsp[-1]; ;} break; case 131: -#line 706 "compile.y" +#line 715 "compile.y" { yyval=yyvsp[0]; O(*yyval, OP::OP_NEG) ;} break; case 132: -#line 707 "compile.y" +#line 716 "compile.y" { yyval=yyvsp[0] ;} break; case 133: -#line 708 "compile.y" +#line 717 "compile.y" { yyval=yyvsp[0]; O(*yyval, OP::OP_INV) ;} break; case 134: -#line 709 "compile.y" +#line 718 "compile.y" { yyval=yyvsp[0]; O(*yyval, OP::OP_NOT) ;} break; case 135: -#line 710 "compile.y" +#line 719 "compile.y" { yyval=yyvsp[0]; O(*yyval, OP::OP_DEF) ;} break; case 136: -#line 711 "compile.y" +#line 720 "compile.y" { yyval=yyvsp[0]; O(*yyval, OP::OP_IN) ;} break; case 137: -#line 712 "compile.y" +#line 721 "compile.y" { yyval=yyvsp[0]; O(*yyval, OP::OP_FEXISTS) ;} break; case 138: -#line 713 "compile.y" +#line 722 "compile.y" { yyval=yyvsp[0]; O(*yyval, OP::OP_DEXISTS) ;} break; case 139: -#line 715 "compile.y" +#line 724 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_SUB) ;} break; case 140: -#line 716 "compile.y" +#line 725 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_ADD) ;} break; case 141: -#line 717 "compile.y" +#line 726 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_MUL) ;} break; case 142: -#line 718 "compile.y" +#line 727 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_DIV) ;} break; case 143: -#line 719 "compile.y" +#line 728 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_MOD) ;} break; case 144: -#line 720 "compile.y" +#line 729 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_INTDIV) ;} break; case 145: -#line 721 "compile.y" +#line 730 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_BIN_SL) ;} break; case 146: -#line 722 "compile.y" +#line 731 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_BIN_SR) ;} break; case 147: -#line 723 "compile.y" +#line 732 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_BIN_AND) ;} break; case 148: -#line 724 "compile.y" +#line 733 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_BIN_OR) ;} break; case 149: -#line 725 "compile.y" +#line 734 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_BIN_XOR) ;} break; case 150: -#line 726 "compile.y" +#line 735 "compile.y" { yyval=yyvsp[-2]; OA(*yyval, OP::OP_NESTED_CODE, yyvsp[0]); O(*yyval, OP::OP_LOG_AND) ;} break; case 151: -#line 727 "compile.y" +#line 736 "compile.y" { yyval=yyvsp[-2]; OA(*yyval, OP::OP_NESTED_CODE, yyvsp[0]); O(*yyval, OP::OP_LOG_OR) ;} break; case 152: -#line 728 "compile.y" +#line 737 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_LOG_XOR) ;} break; case 153: -#line 729 "compile.y" +#line 738 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_NUM_LT) ;} break; case 154: -#line 730 "compile.y" +#line 739 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_NUM_GT) ;} break; case 155: -#line 731 "compile.y" +#line 740 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_NUM_LE) ;} break; case 156: -#line 732 "compile.y" +#line 741 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_NUM_GE) ;} break; case 157: -#line 733 "compile.y" +#line 742 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_NUM_EQ) ;} break; case 158: -#line 734 "compile.y" +#line 743 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_NUM_NE) ;} break; case 159: -#line 735 "compile.y" +#line 744 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_STR_LT) ;} break; case 160: -#line 736 "compile.y" +#line 745 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_STR_GT) ;} break; case 161: -#line 737 "compile.y" +#line 746 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_STR_LE) ;} break; case 162: -#line 738 "compile.y" +#line 747 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_STR_GE) ;} break; case 163: -#line 739 "compile.y" +#line 748 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_STR_EQ) ;} break; case 164: -#line 740 "compile.y" +#line 749 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_STR_NE) ;} break; case 165: -#line 741 "compile.y" +#line 750 "compile.y" { yyval=yyvsp[-2]; P(*yyval, *yyvsp[0]); O(*yyval, OP::OP_IS) ;} break; case 166: -#line 744 "compile.y" +#line 753 "compile.y" { // optimized OP_STRING => OP_VALUE for doubles maybe_change_string_literal_to_double_literal(*(yyval=yyvsp[0])); @@ -2316,7 +2325,7 @@ yyreduce: break; case 167: -#line 749 "compile.y" +#line 758 "compile.y" { #ifdef OPTIMIZE_BYTECODE_STRING_POOL // it brakes ^if(" 09 "){...} @@ -2338,7 +2347,7 @@ yyreduce: break; case 168: -#line 770 "compile.y" +#line 779 "compile.y" { // optimized OP_STRING+OP_WRITE_VALUE => OP_STRING__WRITE change_string_literal_to_write_string_literal(*(yyval=yyvsp[0])) @@ -2346,22 +2355,22 @@ yyreduce: break; case 169: -#line 775 "compile.y" +#line 784 "compile.y" { yyval=VL(/*we know that we will not change it*/const_cast(&vvoid), 0, 0, 0) ;} break; case 170: -#line 776 "compile.y" +#line 785 "compile.y" { yyval = VL(/*we know that we will not change it*/const_cast(&vtrue), 0, 0, 0) ;} break; case 171: -#line 777 "compile.y" +#line 786 "compile.y" { yyval = VL(/*we know that we will not change it*/const_cast(&vfalse), 0, 0, 0) ;} break; case 172: -#line 779 "compile.y" +#line 788 "compile.y" { yyval=N() ;} break; @@ -2369,7 +2378,7 @@ yyreduce: } /* Line 1010 of yacc.c. */ -#line 2373 "compile.tab.C" +#line 2382 "compile.tab.C" yyvsp -= yylen; yyssp -= yylen; @@ -2594,7 +2603,7 @@ yyreturn: } -#line 781 "compile.y" +#line 790 "compile.y" #endif