<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2
sealed class <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2 : Regex
using System.CodeDom.Compiler;
using System.Collections;
using System.Runtime.CompilerServices;
namespace System.Text.RegularExpressions.Generated
{
[GeneratedCode("System.Text.RegularExpressions.Generator", "8.0.12.16413")]
internal sealed class <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2 : Regex
{
private sealed class RunnerFactory : RegexRunnerFactory
{
private sealed class Runner : RegexRunner
{
protected override void Scan(ReadOnlySpan<char> inputSpan)
{
if (TryFindNextPossibleStartingPosition(inputSpan) && !TryMatchAtCurrentPosition(inputSpan))
runtextpos = inputSpan.Length;
}
private bool TryFindNextPossibleStartingPosition(ReadOnlySpan<char> inputSpan)
{
int runtextpos = base.runtextpos;
if (runtextpos <= inputSpan.Length - 6 && runtextpos == 0)
return true;
base.runtextpos = inputSpan.Length;
return false;
}
private bool TryMatchAtCurrentPosition(ReadOnlySpan<char> inputSpan)
{
int runtextpos = base.runtextpos;
int start = runtextpos;
int num = 0;
int num2 = 0;
int arg = 0;
int arg2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
int pos = 0;
ReadOnlySpan<char> span = inputSpan.Slice(runtextpos);
if (runtextpos != 0) {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
if (!span.StartsWith("SSH-")) {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
runtextpos += 4;
span = inputSpan.Slice(runtextpos);
num = runtextpos;
int num6 = span.IndexOf('-');
if (num6 < 0)
num6 = span.Length;
if (num6 == 0) {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
span = span.Slice(num6);
runtextpos += num6;
Capture(1, num, runtextpos);
if (span.IsEmpty || span[0] != '-') {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
runtextpos++;
span = inputSpan.Slice(runtextpos);
num2 = runtextpos;
num4 = runtextpos;
while (true) {
num3 = Crawlpos();
Capture(2, num2, runtextpos);
num5 = 0;
while (true) {
<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, Crawlpos(), runtextpos);
num5++;
int num7;
if (!span.IsEmpty && span[0] == ' ') {
runtextpos++;
span = inputSpan.Slice(runtextpos);
num7 = runtextpos;
arg = runtextpos;
int num8 = span.IndexOf('\n');
if (num8 < 0)
num8 = span.Length;
if (num8 != 0) {
span = span.Slice(num8);
runtextpos += num8;
arg2 = runtextpos;
arg++;
goto IL_0209;
}
}
goto IL_0259;
IL_0259:
if (--num5 < 0)
break;
runtextpos = runstack[--pos];
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]);
span = inputSpan.Slice(runtextpos);
goto IL_02ab;
IL_02ab:
if (runtextpos >= inputSpan.Length - 1 && ((uint)runtextpos >= (uint)inputSpan.Length || inputSpan[runtextpos] == '\n')) {
base.runtextpos = runtextpos;
Capture(0, start, runtextpos);
return true;
}
if (<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_hasTimeout)
CheckTimeout();
if (num5 == 0)
break;
num7 = runstack[--pos];
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]);
<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPop(runstack, ref pos, out arg2, out arg);
if (<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_hasTimeout)
CheckTimeout();
if (arg < arg2) {
runtextpos = --arg2;
span = inputSpan.Slice(runtextpos);
goto IL_0209;
}
goto IL_0259;
IL_0209:
<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, arg, arg2, Crawlpos());
Capture(3, num7, runtextpos);
<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, num7);
if (num5 == 0)
continue;
goto IL_02ab;
}
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(num3);
if (<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_hasTimeout)
CheckTimeout();
runtextpos = num4;
span = inputSpan.Slice(runtextpos);
if (span.IsEmpty || span[0] == '\n')
break;
runtextpos++;
span = inputSpan.Slice(runtextpos);
num4 = runtextpos;
}
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
}
[NullableContext(1)]
protected override RegexRunner CreateInstance()
{
return new Runner();
}
}
[Nullable(1)]
internal static readonly <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2 Instance = new <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2();
private <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2()
{
pattern = "^SSH-(?<protoversion>[^-]+)-(?<softwareversion>.*?)([ ](?<comments>.+))?$";
roptions = RegexOptions.ExplicitCapture;
Regex.ValidateMatchTimeout(<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_defaultTimeout);
internalMatchTimeout = <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_defaultTimeout;
factory = new RunnerFactory();
base.CapNames = new Hashtable {
{
"0",
0
},
{
"comments",
3
},
{
"protoversion",
1
},
{
"softwareversion",
2
}
};
capslist = new string[4] {
"0",
"protoversion",
"softwareversion",
"comments"
};
capsize = 4;
}
}
}