diff --git a/StgSharp.RegularAnalysis/Abstraction/ISyntaxNode.cs b/StgSharp.RegularAnalysis/Abstraction/ISyntaxNode.cs index b6144ca8..357d0013 100644 --- a/StgSharp.RegularAnalysis/Abstraction/ISyntaxNode.cs +++ b/StgSharp.RegularAnalysis/Abstraction/ISyntaxNode.cs @@ -31,8 +31,6 @@ namespace StgSharp.RegularAnalysis.Abstraction long NodeFlag { get; } - string CodeConvertTemplate { get; } - TLabel EqualityTypeConvert { get; } TNode Previous { get; set; } diff --git a/StgSharp.RegularAnalysis/StgSharp.RegularAnalysis.csproj b/StgSharp.RegularAnalysis/StgSharp.RegularAnalysis.csproj index 0e71b385..0ab69b4c 100644 --- a/StgSharp.RegularAnalysis/StgSharp.RegularAnalysis.csproj +++ b/StgSharp.RegularAnalysis/StgSharp.RegularAnalysis.csproj @@ -7,6 +7,12 @@ $(BaseIntermediateOutputPath)Generated + + + + + + @@ -16,10 +22,17 @@ + + + + + + + diff --git a/StgSharp.RegularAnalysis/Text/RegexAnalyzer.ASTOptimize.cs b/StgSharp.RegularAnalysis/Text/RegexAnalyzer.ASTOptimize.cs index 4aca7a2c..c7b1f692 100644 --- a/StgSharp.RegularAnalysis/Text/RegexAnalyzer.ASTOptimize.cs +++ b/StgSharp.RegularAnalysis/Text/RegexAnalyzer.ASTOptimize.cs @@ -137,8 +137,7 @@ namespace StgSharp.RegularAnalysis.Text } private static void OptimizeTree( - AbstractSyntaxTree tree, - ref RegexInfo info + AbstractSyntaxTree tree ) { // phase0: scan container and remove no parent nodes @@ -194,40 +193,6 @@ namespace StgSharp.RegularAnalysis.Text } } } - - info.MinPredictLength = ComputeMinLength(tree.Root); - - static int ComputeMinLength( - RegexAstNode node - ) - { - if (node.EqualityTypeConvert is RegexElementLabel.UNIT_SPAN or - RegexElementLabel.UNIT) - { - return node.Value.Length; - } else if (node.EqualityTypeConvert == RegexElementLabel.CONCAT) - { - return ComputeMinLength(node.Left) + ComputeMinLength(node.Right); - } else if (node.EqualityTypeConvert == RegexElementLabel.ALT) - { - RegexAstNode case_0 = node.Right; - int length = int.MaxValue; - do - { - length = int.Min(ComputeMinLength(case_0), length); - case_0 = case_0.Next; - } while (!RegexAstNode.IsNullOrEmpty(case_0)); - return length; - } else if (node.EqualityTypeConvert == RegexElementLabel.COUNT) - { - string source = node.Source.Value; - int single_count = ComputeMinLength(node.Right); - return 0; - } else - { - return 0; - } - } } private static void RotateConcat( diff --git a/StgSharp.RegularAnalysis/Text/RegexAstNode.cs b/StgSharp.RegularAnalysis/Text/RegexAstNode.cs index 3a06efeb..1ca9d4ae 100644 --- a/StgSharp.RegularAnalysis/Text/RegexAstNode.cs +++ b/StgSharp.RegularAnalysis/Text/RegexAstNode.cs @@ -65,8 +65,6 @@ namespace StgSharp.RegularAnalysis.Text public string Value => Source.Value; - public string CodeConvertTemplate { get; } - public Token Source { get; private protected set; } public void AppendNode(