|
// <auto-generated/>
#nullable enable
#pragma warning disable
namespace System.Runtime.Serialization
{
partial class Globals
{
/// <remarks>
/// Pattern:<br/>
/// <code>^[\s]*System\.Runtime\.Serialization[\s]*,[\s]*PublicKey[\s]*=[\s]*(?i:00240000048000009400000006020000002400005253413100040000010001008d56c76f9e8649383049f383c44be0ec204181822a6c31cf5eb7ef486944d032188ea1d3920763712ccb12d75fb77e9811149e6148e5d32fbaab37611c1878ddc19e20ef135d0cb2cff2bfec3d115810c3d9069638fe4be215dbf795861920e5ab6f7db2e2ceef136ac23d5dd2bf031700aec232f6c6b1c785b4305c123b37ab)[\s]*$</code><br/>
/// Explanation:<br/>
/// <code>
/// ○ Match if at the beginning of the string.<br/>
/// ○ Match a whitespace character atomically any number of times.<br/>
/// ○ Match the string "System.Runtime.Serialization".<br/>
/// ○ Match a whitespace character atomically any number of times.<br/>
/// ○ Match ','.<br/>
/// ○ Match a whitespace character atomically any number of times.<br/>
/// ○ Match the string "PublicKey".<br/>
/// ○ Match a whitespace character atomically any number of times.<br/>
/// ○ Match '='.<br/>
/// ○ Match a whitespace character atomically any number of times.<br/>
/// ○ Match the string "00240000048000009400000006020000002400005253413100040000010001008".<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match the string "56".<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match the string "76".<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match '9'.<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match the string "8649383049".<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match the string "383".<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match the string "44".<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match '0'.<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match the string "204181822".<br/>
/// ○ Match a character in the set [Aa].<br/>
/// ○ Match '6'.<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match the string "31".<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match '5'.<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match '7'.<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match the string "486944".<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match the string "032188".<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match a character in the set [Aa].<br/>
/// ○ Match '1'.<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match the string "3920763712".<br/>
/// ○ Match a character in the set [Cc] exactly 2 times.<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match the string "12".<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match the string "75".<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match the string "77".<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match the string "9811149".<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match the string "6148".<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match '5'.<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match the string "32".<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match a character in the set [Aa] exactly 2 times.<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match the string "37611".<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match the string "1878".<br/>
/// ○ Match a character in the set [Dd] exactly 2 times.<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match the string "19".<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match the string "20".<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match the string "135".<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match '0'.<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match '2'.<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match a character in the set [Ff] exactly 2 times.<br/>
/// ○ Match '2'.<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match '3'.<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match the string "115810".<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match '3'.<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match the string "9069638".<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match '4'.<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match the string "215".<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match the string "795861920".<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match '5'.<br/>
/// ○ Match a character in the set [Aa].<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match '6'.<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match '7'.<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match '2'.<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match '2'.<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match a character in the set [Ee] exactly 2 times.<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match the string "136".<br/>
/// ○ Match a character in the set [Aa].<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match the string "23".<br/>
/// ○ Match a character in the set [Dd].<br/>
/// ○ Match '5'.<br/>
/// ○ Match a character in the set [Dd] exactly 2 times.<br/>
/// ○ Match '2'.<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match the string "031700".<br/>
/// ○ Match a character in the set [Aa].<br/>
/// ○ Match a character in the set [Ee].<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match the string "232".<br/>
/// ○ Match a character in the set [Ff].<br/>
/// ○ Match '6'.<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match '6'.<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match '1'.<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match the string "785".<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match the string "4305".<br/>
/// ○ Match a character in the set [Cc].<br/>
/// ○ Match the string "123".<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match the string "37".<br/>
/// ○ Match a character in the set [Aa].<br/>
/// ○ Match a character in the set [Bb].<br/>
/// ○ Match a whitespace character greedily any number of times.<br/>
/// ○ Match if at the end of the string or if before an ending newline.<br/>
/// </code>
/// </remarks>
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "11.0.14.27001")]
public static partial global::System.Text.RegularExpressions.Regex FullSRSInternalsVisibleRegex => global::System.Text.RegularExpressions.Generated.FullSRSInternalsVisibleRegex_0.Instance;
}
}
namespace System.Text.RegularExpressions.Generated
{
using System;
using System.Buffers;
using System.CodeDom.Compiler;
using System.Collections;
using System.ComponentModel;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Text.RegularExpressions;
using System.Threading;
/// <summary>Custom <see cref="Regex"/>-derived type for the FullSRSInternalsVisibleRegex method.</summary>
[GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "11.0.14.27001")]
[SkipLocalsInit]
file sealed class FullSRSInternalsVisibleRegex_0 : Regex
{
/// <summary>Cached, thread-safe singleton instance.</summary>
internal static readonly FullSRSInternalsVisibleRegex_0 Instance = new();
/// <summary>Initializes the instance.</summary>
private FullSRSInternalsVisibleRegex_0()
{
base.pattern = "^[\\s]*System\\.Runtime\\.Serialization[\\s]*,[\\s]*PublicKey[\\s]*=[\\s]*(?i:00240000048000009400000006020000002400005253413100040000010001008d56c76f9e8649383049f383c44be0ec204181822a6c31cf5eb7ef486944d032188ea1d3920763712ccb12d75fb77e9811149e6148e5d32fbaab37611c1878ddc19e20ef135d0cb2cff2bfec3d115810c3d9069638fe4be215dbf795861920e5ab6f7db2e2ceef136ac23d5dd2bf031700aec232f6c6b1c785b4305c123b37ab)[\\s]*$";
base.roptions = RegexOptions.None;
ValidateMatchTimeout(Utilities.s_defaultTimeout);
base.internalMatchTimeout = Utilities.s_defaultTimeout;
base.factory = new RunnerFactory();
base.capsize = 1;
}
/// <summary>Provides a factory for creating <see cref="RegexRunner"/> instances to be used by methods on <see cref="Regex"/>.</summary>
private sealed class RunnerFactory : RegexRunnerFactory
{
/// <summary>Creates an instance of a <see cref="RegexRunner"/> used by methods on <see cref="Regex"/>.</summary>
protected override RegexRunner CreateInstance() => new Runner();
/// <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
private sealed class Runner : RegexRunner
{
/// <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
/// <param name="inputSpan">The text being scanned by the regular expression.</param>
protected override void Scan(ReadOnlySpan<char> inputSpan)
{
// The pattern is anchored. Validate the current position and try to match at it only.
if (TryFindNextPossibleStartingPosition(inputSpan) && !TryMatchAtCurrentPosition(inputSpan))
{
base.runtextpos = inputSpan.Length;
}
}
/// <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
/// <param name="inputSpan">The text being scanned by the regular expression.</param>
/// <returns>true if a possible match was found; false if no more matches are possible.</returns>
private bool TryFindNextPossibleStartingPosition(ReadOnlySpan<char> inputSpan)
{
int pos = base.runtextpos;
// Any possible match is at least 359 characters.
if (pos <= inputSpan.Length - 359)
{
// The pattern leads with a beginning (\A) anchor.
if (pos == 0)
{
return true;
}
}
// No match found.
base.runtextpos = inputSpan.Length;
return false;
}
/// <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
/// <param name="inputSpan">The text being scanned by the regular expression.</param>
/// <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
private bool TryMatchAtCurrentPosition(ReadOnlySpan<char> inputSpan)
{
int pos = base.runtextpos;
int matchStart = pos;
int charloop_starting_pos = 0, charloop_ending_pos = 0;
ReadOnlySpan<char> slice = inputSpan.Slice(pos);
// Match if at the beginning of the string.
if (pos != 0)
{
return false; // The input didn't match.
}
// Match a whitespace character atomically any number of times.
{
int iteration = 0;
while ((uint)iteration < (uint)slice.Length && char.IsWhiteSpace(slice[iteration]))
{
iteration++;
}
slice = slice.Slice(iteration);
pos += iteration;
}
// Match the string "System.Runtime.Serialization".
if (!slice.StartsWith("System.Runtime.Serialization"))
{
return false; // The input didn't match.
}
// Match a whitespace character atomically any number of times.
{
int iteration1 = 28;
while ((uint)iteration1 < (uint)slice.Length && char.IsWhiteSpace(slice[iteration1]))
{
iteration1++;
}
slice = slice.Slice(iteration1);
pos += iteration1;
}
// Match ','.
if (slice.IsEmpty || slice[0] != ',')
{
return false; // The input didn't match.
}
// Match a whitespace character atomically any number of times.
{
int iteration2 = 1;
while ((uint)iteration2 < (uint)slice.Length && char.IsWhiteSpace(slice[iteration2]))
{
iteration2++;
}
slice = slice.Slice(iteration2);
pos += iteration2;
}
// Match the string "PublicKey".
if (!slice.StartsWith("PublicKey"))
{
return false; // The input didn't match.
}
// Match a whitespace character atomically any number of times.
{
int iteration3 = 9;
while ((uint)iteration3 < (uint)slice.Length && char.IsWhiteSpace(slice[iteration3]))
{
iteration3++;
}
slice = slice.Slice(iteration3);
pos += iteration3;
}
// Match '='.
if (slice.IsEmpty || slice[0] != '=')
{
return false; // The input didn't match.
}
// Match a whitespace character atomically any number of times.
{
int iteration4 = 1;
while ((uint)iteration4 < (uint)slice.Length && char.IsWhiteSpace(slice[iteration4]))
{
iteration4++;
}
slice = slice.Slice(iteration4);
pos += iteration4;
}
if ((uint)slice.Length < 320 ||
!slice.StartsWith("00240000048000009400000006020000002400005253413100040000010001008d56c76f9e8649383049f383c44be0ec204181822a6c31cf5eb7ef486944d032188ea1d3920763712ccb12d75fb77e9811149e6148e5d32fbaab37611c1878ddc19e20ef135d0cb2cff2bfec3d115810c3d9069638fe4be215dbf795861920e5ab6f7db2e2ceef136ac23d5dd2bf031700aec232f6c6b1c785b4305c123b37ab", StringComparison.OrdinalIgnoreCase)) // Match the string "00240000048000009400000006020000002400005253413100040000010001008d56c76f9e8649383049f383c44be0ec204181822a6c31cf5eb7ef486944d032188ea1d3920763712ccb12d75fb77e9811149e6148e5d32fbaab37611c1878ddc19e20ef135d0cb2cff2bfec3d115810c3d9069638fe4be215dbf795861920e5ab6f7db2e2ceef136ac23d5dd2bf031700aec232f6c6b1c785b4305c123b37ab" (ordinal case-insensitive)
{
return false; // The input didn't match.
}
// Match a whitespace character greedily any number of times.
//{
pos += 320;
slice = inputSpan.Slice(pos);
charloop_starting_pos = pos;
int iteration5 = 0;
while ((uint)iteration5 < (uint)slice.Length && char.IsWhiteSpace(slice[iteration5]))
{
iteration5++;
}
slice = slice.Slice(iteration5);
pos += iteration5;
charloop_ending_pos = pos;
goto CharLoopEnd;
CharLoopBacktrack:
if (Utilities.s_hasTimeout)
{
base.CheckTimeout();
}
if (charloop_starting_pos >= charloop_ending_pos)
{
return false; // The input didn't match.
}
pos = --charloop_ending_pos;
slice = inputSpan.Slice(pos);
CharLoopEnd:
//}
// Match if at the end of the string or if before an ending newline.
if (pos < inputSpan.Length - 1 || ((uint)pos < (uint)inputSpan.Length && inputSpan[pos] != '\n'))
{
goto CharLoopBacktrack;
}
// The input matched.
base.runtextpos = pos;
base.Capture(0, matchStart, pos);
return true;
}
}
}
}
/// <summary>Helper methods used by generated <see cref="Regex"/>-derived implementations.</summary>
[GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "11.0.14.27001")]
file static class Utilities
{
/// <summary>Default timeout value set in <see cref="AppContext"/>, or <see cref="Regex.InfiniteMatchTimeout"/> if none was set.</summary>
internal static readonly TimeSpan s_defaultTimeout = AppContext.GetData("REGEX_DEFAULT_MATCH_TIMEOUT") is TimeSpan timeout ? timeout : Regex.InfiniteMatchTimeout;
/// <summary>Whether <see cref="s_defaultTimeout"/> is non-infinite.</summary>
internal static readonly bool s_hasTimeout = s_defaultTimeout != Regex.InfiniteMatchTimeout;
}
}
|