Definition at line 572 of file RegexInterpreter.cs.
573 {
576 int num = -1;
577 while (true)
578 {
579 if (num >= 0)
580 {
582 num = -1;
583 }
586 {
587 case 40:
588 return;
589 case 38:
591 continue;
592 case 37:
594 {
595 num = 1;
596 continue;
597 }
598 break;
599 case 23:
601 num = 1;
602 continue;
603 case 151:
607 continue;
608 case 31:
611 num = 0;
612 continue;
613 case 30:
616 num = 0;
617 continue;
618 case 158:
619 case 159:
621 break;
622 case 33:
626 num = 0;
627 continue;
628 case 161:
631 break;
632 case 32:
634 {
637 {
639 }
640 else
641 {
643 }
645 num = 2;
646 continue;
647 }
648 break;
649 case 160:
654 {
656 }
657 break;
658 case 24:
661 {
665 }
666 else
667 {
669 num = 1;
670 }
671 continue;
672 case 152:
677 num = 1;
678 continue;
679 case 280:
682 break;
683 case 25:
684 {
688 {
689 if (num26 != -1)
690 {
692 }
693 else
694 {
696 }
697 }
698 else
699 {
702 }
703 num = 1;
704 continue;
705 }
706 case 153:
707 {
714 continue;
715 }
716 case 281:
720 break;
721 case 27:
724 num = 1;
725 continue;
726 case 26:
729 num = 1;
730 continue;
731 case 154:
732 case 155:
733 case 162:
735 break;
736 case 28:
737 {
742 if (num18 >=
Operand(1) || (num19 == 0 && num18 >= 0))
743 {
745 num = 2;
746 }
747 else
748 {
752 }
753 continue;
754 }
755 case 156:
759 {
762 num = 2;
763 continue;
764 }
766 break;
767 case 284:
770 break;
771 case 29:
772 {
776 if (num8 < 0)
777 {
781 }
782 else
783 {
785 num = 2;
786 }
787 continue;
788 }
789 case 157:
790 {
795 {
800 continue;
801 }
803 break;
804 }
805 case 285:
809 break;
810 case 34:
813 num = 0;
814 continue;
815 case 35:
819 {
821 }
822 break;
823 case 36:
827 num = 0;
828 continue;
829 case 164:
832 {
834 }
835 break;
836 case 14:
838 {
839 num = 0;
840 continue;
841 }
842 break;
843 case 15:
845 {
846 num = 0;
847 continue;
848 }
849 break;
850 case 16:
852 {
853 num = 0;
854 continue;
855 }
856 break;
857 case 17:
859 {
860 num = 0;
861 continue;
862 }
863 break;
864 case 41:
866 {
867 num = 0;
868 continue;
869 }
870 break;
871 case 42:
873 {
874 num = 0;
875 continue;
876 }
877 break;
878 case 18:
880 {
881 num = 0;
882 continue;
883 }
884 break;
885 case 19:
887 {
888 num = 0;
889 continue;
890 }
891 break;
892 case 20:
894 {
895 num = 0;
896 continue;
897 }
898 break;
899 case 21:
901 {
902 num = 0;
903 continue;
904 }
905 break;
906 case 9:
908 {
909 num = 1;
910 continue;
911 }
912 break;
913 case 10:
915 {
916 num = 1;
917 continue;
918 }
919 break;
920 case 11:
922 {
925 {
926 num = 1;
927 continue;
928 }
929 }
930 break;
931 case 12:
933 {
934 num = 1;
935 continue;
936 }
937 break;
938 case 13:
939 {
942 {
944 {
945 break;
946 }
947 }
949 {
950 break;
951 }
952 num = 1;
953 continue;
954 }
955 case 0:
956 {
959 {
960 break;
961 }
963 while (num28-- > 0)
964 {
966 {
967 goto end_IL_0037;
968 }
969 }
970 num = 2;
971 continue;
972 }
973 case 1:
974 {
977 {
978 break;
979 }
981 while (num27-- > 0)
982 {
984 {
985 goto end_IL_0037;
986 }
987 }
988 num = 2;
989 continue;
990 }
991 case 2:
992 {
995 {
996 break;
997 }
1001 while (num24-- > 0)
1002 {
1003 if ((uint)num24 % 2048u == 0)
1004 {
1006 }
1007 if (!RegexCharClass.CharInClass(
Forwardcharnext(), set2, ref asciiResultCache2))
1008 {
1009 goto end_IL_0037;
1010 }
1011 }
1012 num = 2;
1013 continue;
1014 }
1015 case 3:
1016 case 43:
1017 {
1020 int num23;
1021 for (num23 = num22; num23 > 0; num23--)
1022 {
1024 {
1026 break;
1027 }
1028 }
1030 {
1032 }
1033 num = 2;
1034 continue;
1035 }
1036 case 4:
1037 case 44:
1038 {
1041 int num21;
1043 {
1045 if (num21 == -1)
1046 {
1048 num21 = 0;
1049 }
1050 else
1051 {
1053 num21 = num20 - num21;
1054 }
1055 }
1056 else
1057 {
1058 for (num21 = num20; num21 > 0; num21--)
1059 {
1061 {
1063 break;
1064 }
1065 }
1066 }
1068 {
1070 }
1071 num = 2;
1072 continue;
1073 }
1074 case 5:
1075 case 45:
1076 {
1081 int num16;
1082 for (num16 = num14; num16 > 0; num16--)
1083 {
1084 if ((uint)num16 % 2048u == 0)
1085 {
1087 }
1088 if (!RegexCharClass.CharInClass(
Forwardcharnext(),
set, ref asciiResultCache))
1089 {
1091 break;
1092 }
1093 }
1095 {
1097 }
1098 num = 2;
1099 continue;
1100 }
1101 case 131:
1102 case 132:
1103 case 133:
1104 {
1108 if (num12 > 0)
1109 {
1111 }
1112 num = 2;
1113 continue;
1114 }
1115 case 6:
1116 case 7:
1117 case 8:
1118 {
1120 if (num11 > 0)
1121 {
1123 }
1124 num = 2;
1125 continue;
1126 }
1127 case 134:
1128 {
1132 {
1134 if (num10 > 0)
1135 {
1137 }
1138 num = 2;
1139 continue;
1140 }
1141 break;
1142 }
1143 case 135:
1144 {
1148 {
1150 if (num6 > 0)
1151 {
1153 }
1154 num = 2;
1155 continue;
1156 }
1157 break;
1158 }
1159 case 136:
1160 {
1165 {
1167 if (num4 > 0)
1168 {
1170 }
1171 num = 2;
1172 continue;
1173 }
1174 break;
1175 }
1176 case 46:
1177 {
1179 num = 0;
1180 continue;
1181 }
1182 end_IL_0037:
1183 break;
1184 }
1186 }
1187 }
readonly string[] Strings
readonly int[][] StringsAsciiLookup
bool MatchString(string str)
bool MatchRef(int index, int length)
void TransferCapture(int capnum, int uncapnum, int start, int end)
bool IsECMABoundary(int index, int startpos, int endpos)
bool IsBoundary(int index, int startpos, int endpos)
void Capture(int capnum, int start, int end)
References System.Text.RegularExpressions.RegexInterpreter._caseInsensitive, System.Text.RegularExpressions.RegexInterpreter._code, System.Text.RegularExpressions.RegexInterpreter._codepos, System.Text.RegularExpressions.RegexInterpreter._operator, System.Text.RegularExpressions.RegexInterpreter._rightToLeft, System.Text.RegularExpressions.RegexInterpreter.Advance(), System.Text.RegularExpressions.RegexInterpreter.Backtrack(), System.Text.RegularExpressions.RegexInterpreter.Backwardnext(), System.Text.RegularExpressions.RegexInterpreter.Bump(), System.Text.RegularExpressions.RegexRunner.Capture(), System.Text.RegularExpressions.RegexCharClass.CharInClass(), System.Text.RegularExpressions.RegexRunner.CheckTimeout(), System.Text.RegularExpressions.RegexCode.Codes, System.Text.RegularExpressions.RegexRunner.Crawlpos(), System.Text.RegularExpressions.RegexInterpreter.Forwardcharnext(), System.Text.RegularExpressions.RegexInterpreter.Forwardchars(), System.Text.RegularExpressions.RegexInterpreter.Goto(), System.Text.RegularExpressions.i, System.Text.RegularExpressions.RegexRunner.IsBoundary(), System.Text.RegularExpressions.RegexRunner.IsECMABoundary(), System.Text.RegularExpressions.RegexRunner.IsMatched(), System.Text.RegularExpressions.RegexInterpreter.Leftchars(), System.Text.RegularExpressions.RegexRunner.MatchIndex(), System.Text.RegularExpressions.RegexRunner.MatchLength(), System.Text.RegularExpressions.RegexInterpreter.MatchRef(), System.Text.RegularExpressions.RegexInterpreter.MatchString(), System.Math.Min(), System.Text.RegularExpressions.RegexInterpreter.Operand(), System.Text.RegularExpressions.RegexInterpreter.Rightchars(), System.Text.RegularExpressions.Regex.roptions, System.Text.RegularExpressions.RegexRunner.runregex, System.Text.RegularExpressions.RegexRunner.runtext, System.Text.RegularExpressions.RegexRunner.runtextbeg, System.Text.RegularExpressions.RegexRunner.runtextend, System.Text.RegularExpressions.RegexRunner.runtextpos, System.Text.RegularExpressions.RegexRunner.runtextstart, System.Text.RegularExpressions.RegexRunner.runtrack, System.Text.RegularExpressions.RegexInterpreter.SetOperator(), System.Text.RegularExpressions.RegexInterpreter.StackPeek(), System.Text.RegularExpressions.RegexInterpreter.StackPop(), System.Text.RegularExpressions.RegexInterpreter.StackPush(), System.Text.RegularExpressions.RegexCode.Strings, System.Text.RegularExpressions.RegexCode.StringsAsciiLookup, System.Text.RegularExpressions.RegexInterpreter.TrackPeek(), System.Text.RegularExpressions.RegexInterpreter.TrackPop(), System.Text.RegularExpressions.RegexInterpreter.Trackpos(), System.Text.RegularExpressions.RegexInterpreter.TrackPush(), System.Text.RegularExpressions.RegexInterpreter.TrackPush2(), System.Text.RegularExpressions.RegexInterpreter.Trackto(), System.Text.RegularExpressions.RegexRunner.TransferCapture(), and System.Text.RegularExpressions.RegexRunner.Uncapture().