mainly theoratical work on semi, add regex sample
This commit is contained in:
@@ -53,3 +53,72 @@ static void Match_Dot(ReadOnlySpan<char> input)
|
||||
ptr += 1;
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user