mainly theoratical work on semi, add regex sample

This commit is contained in:
Youmu Liu
2026-07-23 18:51:34 +08:00
parent c1a8b39502
commit a74ebcd0b7
+69
View File
@@ -53,3 +53,72 @@ static void Match_Dot(ReadOnlySpan<char> input)
ptr += 1; ptr += 1;
region_end = ptr; region_end = ptr;
} }
//a{3,5}
static void Match_A_3_5(ReadOnlySpan<char> input)
{
int ptr = 0;
int region_start = ptr;
int region_end = region_start;
do
{
if(input[ptr..].StartsWith("aaa"))
{
ptr += 3;
region_end = ptr;
}
else
{
break;
}
for(int i = 0; i < 2; i++)
{
if(input[ptr] == 'a')
{
ptr += 1;
region_end = ptr;
}
else
{
break;
}
}
} while(false);
}
//(ab){2,3}
static void Match_AB_2_3(ReadOnlySpan<char> input)
{
int ptr = 0;
int region_start = ptr;
int region_end = region_start;
do
{
if(input[ptr..].StartsWith("abab"))
{
ptr += 4;
region_end = ptr;
}
else
{
break;
}
for(int i = 0; i < 1; i++)
{
if(input[ptr..].StartsWith("ab"))
{
ptr += 2;
region_end = ptr;
}
else
{
break;
}
}
} while(false);
}