Changeset 276 for trunk/enki/EnkiParser.d
- Timestamp:
- 12/06/06 18:30:00 (2 years ago)
- Files:
-
- trunk/enki/EnkiParser.d (modified) (83 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/enki/EnkiParser.d
r275 r276 125 125 if(parse_eoi().success){ 126 126 goto loopend12; 127 } 127 }else{ 128 goto exprStart13; 129 } 130 exprStart13: 128 131 {//Expression 129 132 uint start10 = position; … … 135 138 setError("Expected Rule, Comment or Directive."); 136 139 position = start11; 137 goto mismatch1 4;140 goto mismatch15; 138 141 } 139 142 } 140 143 if(!(parse_WS().success)){ 141 goto mismatch1 4;142 } 143 goto match1 3;144 mismatch1 4:144 goto mismatch15; 145 } 146 goto match14; 147 mismatch15: 145 148 {/*do nothing*/} 146 149 position = start10; 147 150 goto loopend12; 148 match1 3:151 match14: 149 152 clearErrors(); 150 153 goto loop11; … … 190 193 uint start13 = position; 191 194 if(!(parse_Identifier().assign!(String)(bind_name))){ 192 goto mismatch1 8;193 } 194 if(!(parse_WS().success)){ 195 goto mismatch1 8;195 goto mismatch19; 196 } 197 if(!(parse_WS().success)){ 198 goto mismatch19; 196 199 } 197 200 {//OptionalExpr … … 216 219 } 217 220 if(!(parse_WS().success)){ 218 goto mismatch1 8;221 goto mismatch19; 219 222 } 220 223 if(!(terminal("::=").success)){ 221 goto mismatch1 8;222 } 223 if(!(parse_WS().success)){ 224 goto mismatch1 8;224 goto mismatch19; 225 } 226 if(!(parse_WS().success)){ 227 goto mismatch19; 225 228 } 226 229 if(!(parse_Expression().assign!(Expression)(bind_expr))){ 227 goto mismatch1 8;228 } 229 if(!(parse_WS().success)){ 230 goto mismatch1 8;230 goto mismatch19; 231 } 232 if(!(parse_WS().success)){ 233 goto mismatch19; 231 234 } 232 235 if(!(terminal(";").success)){ 233 goto mismatch1 8;234 } 235 goto match1 7;236 mismatch1 8:236 goto mismatch19; 237 } 238 goto match18; 239 mismatch19: 237 240 setError("Expected Identifier."); 238 241 position = start13; 239 goto mismatch1 6;240 match1 7:241 clearErrors(); 242 goto match1 5;243 } 244 match1 5:242 goto mismatch17; 243 match18: 244 clearErrors(); 245 goto match16; 246 } 247 match16: 245 248 debug writefln("parse_Rule() PASS"); 246 249 ResultT!(Rule) passed = ResultT!(Rule)(new Rule(bind_name,bind_pred,bind_expr,bind_decl)); 247 250 return passed; 248 mismatch1 6:251 mismatch17: 249 252 position = start12; 250 253 ResultT!(Rule) failed = ResultT!(Rule)(); … … 269 272 if((parse_ParamsExpr().assign!(Param[])(bind_params))){ 270 273 clearErrors(); 271 goto match 19;274 goto match20; 272 275 }else{ 273 276 setError("Expected ParamsExpr."); 274 277 position = start19; 275 goto mismatch2 0;276 } 277 } 278 match 19:278 goto mismatch21; 279 } 280 } 281 match20: 279 282 debug writefln("parse_RuleDecl() PASS"); 280 283 ResultT!(RuleDecl) passed = ResultT!(RuleDecl)(new RuleDecl(bind_params)); 281 284 return passed; 282 mismatch2 0:285 mismatch21: 283 286 position = start18; 284 287 ResultT!(RuleDecl) failed = ResultT!(RuleDecl)(); … … 302 305 uint start21 = position; 303 306 if(!(terminal("=").success)){ 304 goto mismatch2 4;305 } 306 if(!(parse_WS().success)){ 307 goto mismatch2 4;307 goto mismatch25; 308 } 309 if(!(parse_WS().success)){ 310 goto mismatch25; 308 311 } 309 312 {//Expression … … 314 317 setError("Expected ClassPredicate, FunctionPredicate or BindingPredicate."); 315 318 position = start22; 316 goto mismatch2 4;317 } 318 } 319 goto match2 3;320 mismatch2 4:319 goto mismatch25; 320 } 321 } 322 goto match24; 323 mismatch25: 321 324 {/*do nothing*/} 322 325 position = start21; 323 goto mismatch2 2;324 match2 3:325 clearErrors(); 326 goto match2 1;327 } 328 match2 1:326 goto mismatch23; 327 match24: 328 clearErrors(); 329 goto match22; 330 } 331 match22: 329 332 debug writefln("parse_RulePredicate() PASS"); 330 333 return ResultT!(RulePredicate)(bind_pred); 331 mismatch2 2:334 mismatch23: 332 335 position = start20; 333 336 return ResultT!(RulePredicate)(); … … 352 355 if((terminal("new").success && parse_WS().success && parse_Identifier().assign!(String)(bind_name) && parse_WS().success && parse_ParamsExpr().assign!(Param[])(bind_params))){ 353 356 clearErrors(); 354 goto match2 5;357 goto match26; 355 358 }else{ 356 359 position = start24; 357 goto mismatch2 6;358 } 359 } 360 match2 5:360 goto mismatch27; 361 } 362 } 363 match26: 361 364 debug writefln("parse_ClassPredicate() PASS"); 362 365 ResultT!(ClassPredicate) passed = ResultT!(ClassPredicate)(new ClassPredicate(bind_name,bind_params)); 363 366 return passed; 364 mismatch2 6:367 mismatch27: 365 368 position = start23; 366 369 ResultT!(ClassPredicate) failed = ResultT!(ClassPredicate)(); … … 386 389 if((parse_ExplicitParam().assign!(Param)(bind_decl) && parse_WS().success && parse_ParamsExpr().assign!(Param[])(bind_params))){ 387 390 clearErrors(); 388 goto match2 7;391 goto match28; 389 392 }else{ 390 393 setError("Expected ExplicitParam."); 391 394 position = start26; 392 goto mismatch2 8;393 } 394 } 395 match2 7:395 goto mismatch29; 396 } 397 } 398 match28: 396 399 debug writefln("parse_FunctionPredicate() PASS"); 397 400 ResultT!(FunctionPredicate) passed = ResultT!(FunctionPredicate)(new FunctionPredicate(bind_decl,bind_params)); 398 401 return passed; 399 mismatch2 8:402 mismatch29: 400 403 position = start25; 401 404 ResultT!(FunctionPredicate) failed = ResultT!(FunctionPredicate)(); … … 420 423 if((parse_Param().assign!(Param)(bind_param))){ 421 424 clearErrors(); 422 goto match 29;425 goto match30; 423 426 }else{ 424 427 setError("Expected Param."); 425 428 position = start28; 426 goto mismatch3 0;427 } 428 } 429 match 29:429 goto mismatch31; 430 } 431 } 432 match30: 430 433 debug writefln("parse_BindingPredicate() PASS"); 431 434 ResultT!(BindingPredicate) passed = ResultT!(BindingPredicate)(new BindingPredicate(bind_param)); 432 435 return passed; 433 mismatch3 0:436 mismatch31: 434 437 position = start27; 435 438 ResultT!(BindingPredicate) failed = ResultT!(BindingPredicate)(); … … 453 456 uint start30 = position; 454 457 if(!(terminal("(").success)){ 455 goto mismatch3 4;456 } 457 if(!(parse_WS().success)){ 458 goto mismatch3 4;458 goto mismatch35; 459 } 460 if(!(parse_WS().success)){ 461 goto mismatch35; 459 462 } 460 463 {//OptionalExpr … … 462 465 uint start32 = position; 463 466 if(!(parse_Param().assignCat!(Param[])(bind_params))){ 464 goto mismatch3 6;467 goto mismatch37; 465 468 } 466 469 if(!(parse_WS().success)){ 467 goto mismatch3 6;470 goto mismatch37; 468 471 } 469 472 {//ZeroOrMoreExpr 470 473 uint termPos34; 471 loop3 7:474 loop38: 472 475 termPos34 = position; 476 exprStart40: 473 477 {//Expression 474 478 uint start35 = position; 475 479 if((terminal(",").success && parse_WS().success && parse_Param().assignCat!(Param[])(bind_params) && parse_WS().success)){ 476 480 clearErrors(); 477 goto loop3 7;481 goto loop38; 478 482 }else{ 479 483 position = start35; 480 goto loopend3 8;484 goto loopend39; 481 485 } 482 486 } 483 loopend3 8:487 loopend39: 484 488 {/*do nothing*/} 485 489 } 486 goto match3 5;487 mismatch3 6:490 goto match36; 491 mismatch37: 488 492 {/*do nothing*/} 489 493 position = start32; 490 494 {/*do nothing*/} 491 match3 5:495 match36: 492 496 clearErrors(); 493 497 {/*do nothing*/} … … 495 499 } 496 500 if(!(terminal(")").success)){ 497 goto mismatch3 4;498 } 499 goto match3 3;500 mismatch3 4:501 goto mismatch35; 502 } 503 goto match34; 504 mismatch35: 501 505 {/*do nothing*/} 502 506 position = start30; 503 goto mismatch3 2;504 match3 3:505 clearErrors(); 506 goto match3 1;507 } 508 match3 1:507 goto mismatch33; 508 match34: 509 clearErrors(); 510 goto match32; 511 } 512 match32: 509 513 debug writefln("parse_ParamsExpr() PASS"); 510 514 return ResultT!(Param[])(bind_params); 511 mismatch3 2:515 mismatch33: 512 516 position = start29; 513 517 return ResultT!(Param[])(); … … 531 535 if((parse_ExplicitParam().assign!(Param)(bind_param)) || (parse_WeakParam().assign!(Param)(bind_param))){ 532 536 clearErrors(); 533 goto match 39;537 goto match41; 534 538 }else{ 535 539 setError("Expected ExplicitParam or WeakParam."); 536 540 position = start37; 537 goto mismatch4 0;538 } 539 } 540 match 39:541 goto mismatch42; 542 } 543 } 544 match41: 541 545 debug writefln("parse_Param() PASS"); 542 546 return ResultT!(Param)(bind_param); 543 mismatch4 0:547 mismatch42: 544 548 position = start36; 545 549 return ResultT!(Param)(); … … 563 567 if((parse_Identifier().assign!(String)(bind_name))){ 564 568 clearErrors(); 565 goto match4 1;569 goto match43; 566 570 }else{ 567 571 setError("Expected Identifier."); 568 572 position = start39; 569 goto mismatch4 2;570 } 571 } 572 match4 1:573 goto mismatch44; 574 } 575 } 576 match43: 573 577 debug writefln("parse_WeakParam() PASS"); 574 578 ResultT!(Param) passed = ResultT!(Param)(new Param(bind_name)); 575 579 return passed; 576 mismatch4 2:580 mismatch44: 577 581 position = start38; 578 582 ResultT!(Param) failed = ResultT!(Param)(); … … 598 602 uint start41 = position; 599 603 if(!(parse_Identifier().assign!(String)(bind_type))){ 600 goto mismatch4 6;601 } 602 if(!(parse_WS().success)){ 603 goto mismatch4 6;604 goto mismatch48; 605 } 606 if(!(parse_WS().success)){ 607 goto mismatch48; 604 608 } 605 609 {//OptionalExpr … … 614 618 } 615 619 if(!(parse_Identifier().assign!(String)(bind_name))){ 616 goto mismatch4 6;617 } 618 goto match4 5;619 mismatch4 6:620 goto mismatch48; 621 } 622 goto match47; 623 mismatch48: 620 624 setError("Expected Identifier."); 621 625 position = start41; 622 goto mismatch4 4;623 match4 5:624 clearErrors(); 625 goto match4 3;626 } 627 match4 3:626 goto mismatch46; 627 match47: 628 clearErrors(); 629 goto match45; 630 } 631 match45: 628 632 debug writefln("parse_ExplicitParam() PASS"); 629 633 ResultT!(Param) passed = ResultT!(Param)(new Param(bind_isArray,bind_type,bind_name)); 630 634 return passed; 631 mismatch4 4:635 mismatch46: 632 636 position = start40; 633 637 ResultT!(Param) failed = ResultT!(Param)(); … … 659 663 } 660 664 } 661 goto match 49;662 mismatch5 0:665 goto match51; 666 mismatch52: 663 667 {/*do nothing*/} 664 668 position = start45; 665 goto mismatch 48;666 match 49:667 clearErrors(); 668 goto match4 7;669 } 670 match4 7:669 goto mismatch50; 670 match51: 671 clearErrors(); 672 goto match49; 673 } 674 match49: 671 675 debug writefln("parse_Brackets() PASS"); 672 676 return ResultT!(bool)(true); 673 mismatch 48:677 mismatch50: 674 678 position = start44; 675 679 return ResultT!(bool)(); … … 692 696 uint start49 = position; 693 697 if(!(parse_Term().assignCat!(Term[])(bind_terms))){ 694 goto mismatch5 4;695 } 696 if(!(parse_WS().success)){ 697 goto mismatch5 4;698 goto mismatch56; 699 } 700 if(!(parse_WS().success)){ 701 goto mismatch56; 698 702 } 699 703 {//ZeroOrMoreExpr 700 704 uint termPos51; 701 loop5 5:705 loop57: 702 706 termPos51 = position; 707 exprStart59: 703 708 {//Expression 704 709 uint start52 = position; 705 710 if((terminal("|").success && parse_WS().success && parse_Term().assignCat!(Term[])(bind_terms) && parse_WS().success)){ 706 711 clearErrors(); 707 goto loop5 5;712 goto loop57; 708 713 }else{ 709 714 position = start52; 710 goto loopend5 6;711 } 712 } 713 loopend5 6:715 goto loopend58; 716 } 717 } 718 loopend58: 714 719 {/*do nothing*/} 715 720 } 716 goto match5 3;717 mismatch5 4:721 goto match55; 722 mismatch56: 718 723 setError("Expected Term."); 719 724 position = start49; 720 goto mismatch5 2;721 match5 3:722 clearErrors(); 723 goto match5 1;724 } 725 match5 1:725 goto mismatch54; 726 match55: 727 clearErrors(); 728 goto match53; 729 } 730 match53: 726 731 debug writefln("parse_Expression() PASS"); 727 732 ResultT!(Expression) passed = ResultT!(Expression)(new Expression(bind_terms)); 728 733 return passed; 729 mismatch5 2:734 mismatch54: 730 735 position = start48; 731 736 ResultT!(Expression) failed = ResultT!(Expression)(); … … 749 754 uint start54 = position; 750 755 if(!(parse_SubExpression().assignCat!(SubExpression[])(bind_factors))){ 751 goto mismatch6 0;752 } 753 if(!(parse_WS().success)){ 754 goto mismatch6 0;756 goto mismatch63; 757 } 758 if(!(parse_WS().success)){ 759 goto mismatch63; 755 760 } 756 761 {//ZeroOrMoreExpr 757 762 uint termPos56; 758 loop6 1:763 loop64: 759 764 termPos56 = position; 765 exprStart66: 760 766 {//Expression 761 767 uint start57 = position; 762 768 if((parse_SubExpression().assignCat!(SubExpression[])(bind_factors) && parse_WS().success)){ 763 769 clearErrors(); 764 goto loop6 1;770 goto loop64; 765 771 }else{ 766 772 setError("Expected SubExpression."); 767 773 position = start57; 768 goto loopend6 2;769 } 770 } 771 loopend6 2:774 goto loopend65; 775 } 776 } 777 loopend65: 772 778 {/*do nothing*/} 773 779 } 774 goto match 59;775 mismatch6 0:780 goto match62; 781 mismatch63: 776 782 setError("Expected SubExpression."); 777 783 position = start54; 778 goto mismatch 58;779 match 59:780 clearErrors(); 781 goto match 57;782 } 783 match 57:784 goto mismatch61; 785 match62: 786 clearErrors(); 787 goto match60; 788 } 789 match60: 784 790 debug writefln("parse_Term() PASS"); 785 791 return ResultT!(SubExpression[])(bind_factors); 786 mismatch 58:792 mismatch61: 787 793 position = start53; 788 794 return ResultT!(SubExpression[])(); … … 806 812 if((parse_Production().assign!(SubExpression)(bind_expr)) || (parse_Substitution().assign!(SubExpression)(bind_expr)) || (parse_Terminal().assign!(SubExpression)(bind_expr)) || (parse_Range().assign!(SubExpression)(bind_expr)) || (parse_Regexp().assign!(SubExpression)(bind_expr)) || (parse_GroupExpr().assign!(SubExpression)(bind_expr)) || (parse_OptionalExpr().assign!(SubExpression)(bind_expr)) || (parse_ZeroOrMoreExpr().assign!(SubExpression)(bind_expr)) || (parse_NegateExpr().assign!(SubExpression)(bind_expr)) || (parse_TestExpr().assign!(SubExpression)(bind_expr)) || (parse_LiteralExpr().assign!(SubExpression)(bind_expr)) || (parse_CustomTerminal().assign!(SubExpression)(bind_expr))){ 807 813 clearErrors(); 808 goto match6 3;814 goto match67; 809 815 }else{ 810 816 setError("Expected Production, Substitution, Terminal, Range, Regexp, GroupExpr, OptionalExpr, ZeroOrMoreExpr, NegateExpr, TestExpr, LiteralExpr or CustomTerminal."); 811 817 position = start59; 812 goto mismatch6 4;813 } 814 } 815 match6 3:818 goto mismatch68; 819 } 820 } 821 match67: 816 822 debug writefln("parse_SubExpression() PASS"); 817 823 return ResultT!(SubExpression)(bind_expr); 818 mismatch6 4:824 mismatch68: 819 825 position = start58; 820 826 return ResultT!(SubExpression)(); … … 839 845 uint start61 = position; 840 846 if(!(parse_Identifier().assign!(String)(bind_name))){ 841 goto mismatch 68;842 } 843 if(!(parse_WS().success)){ 844 goto mismatch 68;847 goto mismatch72; 848 } 849 if(!(parse_WS().success)){ 850 goto mismatch72; 845 851 } 846 852 {//OptionalExpr … … 848 854 uint start63 = position; 849 855 if(!(terminal("!(").success)){ 850 goto mismatch7 0;856 goto mismatch74; 851 857 } 852 858 if(!(parse_WS().success)){ 853 goto mismatch7 0;859 goto mismatch74; 854 860 } 855 861 if(!(parse_ProductionArg().assignCat!(ProductionArg[])(bind_args))){ 856 goto mismatch7 0;862 goto mismatch74; 857 863 } 858 864 {//ZeroOrMoreExpr 859 865 uint start64 = position; 860 866 uint termPos65; 861 loop7 1:867 loop75: 862 868 termPos65 = position; 863 869 if(terminal(")").success){ 864 goto loopend72; 870 goto loopend76; 871 }else{ 872 goto exprStart77; 865 873 } 874 exprStart77: 866 875 {//Expression 867 876 uint start66 = position; 868 877 if((parse_WS().success && terminal(",").success && parse_WS().success && parse_ProductionArg().assignCat!(ProductionArg[])(bind_args))){ 869 878 clearErrors(); 870 goto loop7 1;879 goto loop75; 871 880 }else{ 872 881 setError("Expected WS."); 873 882 position = start66; 874 goto loopend7 2;883 goto loopend76; 875 884 } 876 885 } 877 loopend7 2:886 loopend76: 878 887 {/*do nothing*/} 879 888 } 880 goto match 69;881 mismatch7 0:889 goto match73; 890 mismatch74: 882 891 {/*do nothing*/} 883 892 position = start63; 884 893 {/*do nothing*/} 885 match 69:894 match73: 886 895 clearErrors(); 887 896 {/*do nothing*/} … … 898 907 } 899 908 } 900 goto match 67;901 mismatch 68:909 goto match71; 910 mismatch72: 902 911 setError("Expected Identifier."); 903 912 position = start61; 904 goto mismatch 66;905 match 67:906 clearErrors(); 907 goto match6 5;908 } 909 match6 5:913 goto mismatch70; 914 match71: 915 clearErrors(); 916 goto match69; 917 } 918 match69: 910 919 debug writefln("parse_Production() PASS"); 911 920 ResultT!(Production) passed = ResultT!(Production)(new Production(bind_name,bind_binding,bind_args)); 912 921 return passed; 913 mismatch 66:922 mismatch70: 914 923 position = start60; 915 924 ResultT!(Production) failed = ResultT!(Production)(); … … 934 943 if((parse_StringProductionArg().assign!(ProductionArg)(bind_arg)) || (parse_BindingProductionArg().assign!(ProductionArg)(bind_arg))){ 935 944 clearErrors(); 936 goto match7 3;945 goto match78; 937 946 }else{ 938 947 setError("Expected StringProductionArg or BindingProductionArg."); 939 948 position = start70; 940 goto mismatch7 4;941 } 942 } 943 match7 3:949 goto mismatch79; 950 } 951 } 952 match78: 944 953 debug writefln("parse_ProductionArg() PASS"); 945 954 return ResultT!(ProductionArg)(bind_arg); 946 mismatch7 4:955 mismatch79: 947 956 position = start69; 948 957 return ResultT!(ProductionArg)(); … … 966 975 if((parse_String().assign!(String)(bind_value))){ 967 976 clearErrors(); 968 goto match 75;977 goto match80; 969 978 }else{ 970 979 setError("Expected String."); 971 980 position = start72; 972 goto mismatch 76;973 } 974 } 975 match 75:981 goto mismatch81; 982 } 983 } 984 match80: 976 985 debug writefln("parse_StringProductionArg() PASS"); 977 986 ResultT!(StringProductionArg) passed = ResultT!(StringProductionArg)(new StringProductionArg(bind_value)); 978 987 return passed; 979 mismatch 76:988 mismatch81: 980 989 position = start71; 981 990 ResultT!(StringProductionArg) failed = ResultT!(StringProductionArg)(); … … 1000 1009 if((parse_Identifier().assign!(String)(bind_value))){ 1001 1010 clearErrors(); 1002 goto match 77;1011 goto match82; 1003 1012 }else{ 1004 1013 setError("Expected Identifier."); 1005 1014 position = start74; 1006 goto mismatch 78;1007 } 1008 } 1009 match 77:1015 goto mismatch83; 1016 } 1017 } 1018 match82: 1010 1019 debug writefln("parse_BindingProductionArg() PASS"); 1011 1020 ResultT!(BindingProductionArg) passed = ResultT!(BindingProductionArg)(new BindingProductionArg(bind_value)); 1012 1021 return passed; 1013 mismatch 78:1022 mismatch83: 1014 1023 position = start73; 1015 1024 ResultT!(BindingProductionArg) failed = ResultT!(BindingProductionArg)(); … … 1034 1043 uint start76 = position; 1035 1044 if(!(terminal(".").success)){ 1036 goto mismatch8 2;1045 goto mismatch87; 1037 1046 } 1038 1047 if(!(parse_Identifier().assign!(String)(bind_name))){ 1039 goto mismatch8 2;1040 } 1041 if(!(parse_WS().success)){ 1042 goto mismatch8 2;1048 goto mismatch87; 1049 } 1050 if(!(parse_WS().success)){ 1051 goto mismatch87; 1043 1052 } 1044 1053 {//OptionalExpr … … 1052 1061 } 1053 1062 } 1054 goto match8 1;1055 mismatch8 2:1063 goto match86; 1064 mismatch87: 1056 1065 {/*do nothing*/} 1057 1066 position = start76; 1058 goto mismatch8 0;1059 match8 1:1060 clearErrors(); 1061 goto match 79;1062 } 1063 match 79:1067 goto mismatch85; 1068 match86: 1069 clearErrors(); 1070 goto match84; 1071 } 1072 match84: 1064 1073 debug writefln("parse_Substitution() PASS"); 1065 1074 ResultT!(Substitution) passed = ResultT!(Substitution)(new Substitution(bind_name,bind_binding)); 1066 1075 return passed; 1067 mismatch8 0:1076 mismatch85: 1068 1077 position = start75; 1069 1078 ResultT!(Substitution) failed = ResultT!(Substitution)(); … … 1088 1097 uint start80 = position; 1089 1098 if(!(terminal("(").success)){ 1090 goto mismatch 86;1091 } 1092 if(!(parse_WS().success)){ 1093 goto mismatch 86;1099 goto mismatch91; 1100 } 1101 if(!(parse_WS().success)){ 1102 goto mismatch91; 1094 1103 } 1095 1104 if(!(parse_Expression().assign!(Expression)(bind_expr))){ 1096 goto mismatch 86;1097 } 1098 if(!(parse_WS().success)){ 1099 goto mismatch 86;1105 goto mismatch91; 1106 } 1107 if(!(parse_WS().success)){ 1108 goto mismatch91; 1100 1109 } 1101 1110 if(!(terminal(")").success)){ 1102 goto mismatch 86;1103 } 1104 if(!(parse_WS().success)){ 1105 goto mismatch 86;1111 goto mismatch91; 1112 } 1113 if(!(parse_WS().success)){ 1114 goto mismatch91; 1106 1115 } 1107 1116 {//OptionalExpr … … 1115 1124 } 1116 1125 } 1117 goto match 85;1118 mismatch 86:1126 goto match90; 1127 mismatch91: 1119 1128 {/*do nothing*/} 1120 1129 position = start80; 1121 goto mismatch8 4;1122 match 85:1123 clearErrors(); 1124 goto match8 3;1125 } 1126 match8 3:1130 goto mismatch89; 1131 match90: 1132 clearErrors(); 1133 goto match88; 1134 } 1135 match88: 1127 1136 debug writefln("parse_GroupExpr() PASS"); 1128 1137 ResultT!(GroupExpr) passed = ResultT!(GroupExpr)(new GroupExpr(bind_expr,bind_binding)); 1129 1138 return passed; 1130 mismatch8 4:1139  
