Skip to content

Commit 123b10f

Browse files
committed
push
1 parent 58afc92 commit 123b10f

29 files changed

+161
-103
lines changed

src/SimpleStateMachine.StructuralSearch.Tests/FindRuleParserTests.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@ public static class FindRuleParserTests
1010
{
1111
[Theory]
1212
[InlineData("$var$ equals $var$")]
13-
[InlineData("$var$ equals \"\\$\"")]
13+
[InlineData("$var$ equals \"$\"")]
1414
[InlineData("Not $var$ equals $var$.Lenght")]
1515
[InlineData("Not $var$ equals $var$.offset.Start")]
1616
[InlineData("$var$ equals $var$.Lenght and Not $var$ StartsWith \"123\"")]
1717
[InlineData("Not $var$ equals $var$.Lenght and $var$ StartsWith \"123\"")]
18-
[InlineData("$var$ equals $var$.Lenght and Not $var$ StartsWith \"\\\"Test\"")]
1918
[InlineData("$var$ Contains $var$.Lenght")]
2019
[InlineData("not $var$ Contains \"123\"")]
2120
[InlineData("$var1$.Lenght Contains $var2$.Lenght")]
@@ -28,13 +27,13 @@ public static class FindRuleParserTests
2827
[InlineData("$var$ Is Int")]
2928
[InlineData("$var$ Is DateTime")]
3029
[InlineData("$var$ equals $var1$ or $var2$ equals $var1$")]
31-
[InlineData("$var$ match \"[a-b]+\"")]
30+
[InlineData("$var$ match [a-b]+")]
3231
public static void FindRuleExprParsingShouldBeSuccess(string ruleStr)
3332
{
34-
var rule = FindRuleParser.Expr.ParseOrThrow(ruleStr);
33+
var rule = FindRuleParser.Expr.Before(CommonParser.Eof).ParseOrThrow(ruleStr);
3534
var _ruleStr = rule.ToString()?.ToLower();
3635
Assert.NotNull(rule);
37-
Assert.Equal(_ruleStr, ruleStr.ToLower());
36+
Assert.Equal(ruleStr.ToLower(), _ruleStr);
3837
}
3938

4039
[Theory]

src/SimpleStateMachine.StructuralSearch.Tests/ParameterParserTests.cs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public static void StringInParenthesesParsingShouldBeSuccess(string str)
4242
[InlineData(" ")]
4343
[InlineData("( )")]
4444
[InlineData("( )( )")]
45+
[InlineData("\"132\"")]
4546
public static void StringParameterParsingShouldBeSuccess(string str)
4647
{
4748
var parameter = StringParameterParser.StringParameter.Before(CommonParser.Eof).ParseOrThrow(str);
@@ -50,7 +51,6 @@ public static void StringParameterParsingShouldBeSuccess(string str)
5051
}
5152

5253
[Theory]
53-
[InlineData("\"132\"")]
5454
[InlineData("( ")]
5555
[InlineData("( )(")]
5656
public static void StringParameterParsingShouldBeFail(string str)
@@ -71,27 +71,27 @@ public static void PlaceholderParameterParsingShouldBeSuccess(string str)
7171
Assert.Equal(str.ToLower(), parameterStr.ToLower());
7272
}
7373

74-
// [Theory]
75-
// [InlineData("\"132\"")]
76-
// [InlineData("\"132$var1$\"")]
74+
[Theory]
75+
[InlineData("\"132\"")]
76+
[InlineData("\"132$var1$\"")]
7777
// [InlineData("\"132 $var1$\"")]
7878
// [InlineData("\"132 $var1$ \"")]
79-
// [InlineData("\"123$var1$.Lenght456\"")]
79+
[InlineData("\"123$var1$.Lenght456\"")]
8080
// [InlineData("\" \\\"132\\\" \"")]
8181
// [InlineData("\" \"")]
82-
// public static void StringFormatParameterParsingShouldBeSuccess(string str)
83-
// {
84-
// var parameter = StringRuleParameterParser.StringFormatParameter.ParseOrThrow(str);
85-
// var parameterStr = parameter.ToString()?.ToLower();
86-
// Assert.Equal(parameterStr?.ToLower(), str.ToLower());
87-
// }
88-
//
89-
// [Theory]
90-
// [InlineData("\\\"132\\\"")]
91-
// public static void StringFormatParameterParsingShouldBeFail(string str)
92-
// {
93-
// Assert.Throws<ParseException<char>>(() => StringRuleParameterParser.StringFormatParameter.ParseOrThrow(str));
94-
// }
82+
public static void StringFormatParameterParsingShouldBeSuccess(string str)
83+
{
84+
var parameter = StringParameterParser.StringFormatParameter.ParseOrThrow(str);
85+
var parameterStr = parameter.ToString()?.ToLower();
86+
Assert.Equal(parameterStr?.ToLower(), str.ToLower());
87+
}
88+
89+
[Theory]
90+
[InlineData("\\\"132\\\"")]
91+
public static void StringFormatParameterParsingShouldBeFail(string str)
92+
{
93+
Assert.Throws<ParseException<char>>(() => StringParameterParser.StringFormatParameter.ParseOrThrow(str));
94+
}
9595

9696
[Theory]
9797
[InlineData("$var$")]

src/SimpleStateMachine.StructuralSearch.Tests/ReplaceRuleParserTests.cs

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,35 @@
11
using Pidgin;
2+
using SimpleStateMachine.StructuralSearch.StructuralSearch;
23
using Xunit;
34

45
namespace SimpleStateMachine.StructuralSearch.Tests;
56

67
public static class ReplaceRuleParserTests
78
{
89
[Theory]
9-
[InlineData("$var1$ equals $var2$ then $var1$ => \"test $var3$\"")]
10-
[InlineData("$var1$ equals \"\\$\" then $var1$ => \"\\$\",$var2$ => \"132\"")]
11-
[InlineData("_ then $var1$ => \"test $var3$.Lenght\"")]
12-
[InlineData("_ then $var1$ => \"\\$\",$var2$ => \"132\"")]
13-
[InlineData("Not $var1$ equals $var$.Lenght then $var1$ => $var$.Lenght")]
14-
[InlineData("Not $var1$ equals $var$.offset.Start then $var1$ => $var$.offset.Start")]
15-
[InlineData("$var1$ equals $var$.Lenght and Not $var1$ StartsWith \"123\" then $var1$ => $var$.offset.Start.Trim")]
16-
[InlineData("$var1$ equals $var$.Lenght and Not $var1$ StartsWith \"123\" then $var1$ => $var$.offset.Start.Trim,$var2$ => $var$.offset.Start.Trim")]
17-
[InlineData("$var1$ equals $var$.Lenght and Not $var1$ StartsWith \"\\\"Test\" then $var1$ => $var$.offset.Start.ToUpper")]
10+
[InlineData("if $var1$ equals $var2$ then")]
11+
[InlineData("if Not $var1$ equals $var$.Lenght then")]
12+
[InlineData("if Not $var1$ equals $var$.offset.Start then")]
13+
[InlineData("if $var1$ equals $var$.Lenght and Not $var1$ StartsWith \"123\" then")]
14+
[InlineData("if $var1$ equals $var$.Lenght and Not $var1$ StartsWith \"Test\" then")]
15+
public static void ReplaceConditionParsingShouldBeSuccess(string replaceRule)
16+
{
17+
var rule = ReplaceRuleParser.ReplaceCondition.Before(CommonParser.Eof).ParseOrThrow(replaceRule);
18+
var ruleStr = rule.ToString()?.ToLower();
19+
Assert.NotNull(rule);
20+
Assert.Equal(replaceRule.ToLower(), ruleStr);
21+
}
22+
23+
[Theory]
24+
[InlineData("if $var1$ equals $var2$ then $var1$ => \"test $var3$\"")]
25+
[InlineData("if $var1$ equals \"\\$\" then $var1$ => \"\\$\",$var2$ => \"132\"")]
26+
[InlineData("$var1$ => \"test $var3$.Lenght\"")]
27+
[InlineData("$var1$ => \"$\",$var2$ => \"132\"")]
28+
[InlineData("if Not $var1$ equals $var$.Lenght then $var1$ => $var$.Lenght")]
29+
[InlineData("if Not $var1$ equals $var$.offset.Start then $var1$ => $var$.offset.Start")]
30+
[InlineData("if $var1$ equals $var$.Lenght and Not $var1$ StartsWith \"123\" then $var1$ => $var$.offset.Start")]
31+
[InlineData("if $var1$ equals $var$.Lenght and Not $var1$ StartsWith \"123\" then $var1$ => $var$.offset.Start,$var2$ => $var$.offset.Start")]
32+
[InlineData("if $var1$ equals $var$.Lenght and Not $var1$ StartsWith \"Test\" then $var1$ => $var$.offset.Start")]
1833
public static void ReplaceRuleParsingShouldBeSuccess(string replaceRule)
1934
{
2035
var rule = StructuralSearch.StructuralSearch.ParseReplaceRule(replaceRule);

src/SimpleStateMachine.StructuralSearch/Constant.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ internal static class Constant
99
/// String: "Then"
1010
/// </summary>
1111
public const string Then = "Then";
12+
13+
/// <summary>
14+
/// String: "If"
15+
/// </summary>
16+
public const string If = "If";
1217

1318
/// <summary>
1419
/// Parenthesis char: '('

src/SimpleStateMachine.StructuralSearch/Parsers/DebugParser.cs renamed to src/SimpleStateMachine.StructuralSearch/CustomParsers/DebugParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Pidgin;
22

3-
namespace SimpleStateMachine.StructuralSearch.Parsers;
3+
namespace SimpleStateMachine.StructuralSearch.CustomParsers;
44

55
internal class DebugParser<TToken, T> : Parser<TToken, T>
66
{

src/SimpleStateMachine.StructuralSearch/Parsers/EmptyFindParser.cs renamed to src/SimpleStateMachine.StructuralSearch/CustomParsers/EmptyFindParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using SimpleStateMachine.StructuralSearch.Input;
55
using SimpleStateMachine.StructuralSearch.Rules.FindRules;
66

7-
namespace SimpleStateMachine.StructuralSearch.Parsers;
7+
namespace SimpleStateMachine.StructuralSearch.CustomParsers;
88

99
internal sealed class EmptyFindParser : IFindParser
1010
{

src/SimpleStateMachine.StructuralSearch/Parsers/EmptyParser.cs renamed to src/SimpleStateMachine.StructuralSearch/CustomParsers/EmptyParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Pidgin;
22

3-
namespace SimpleStateMachine.StructuralSearch.Parsers;
3+
namespace SimpleStateMachine.StructuralSearch.CustomParsers;
44

55
internal static class EmptyParser
66
{

src/SimpleStateMachine.StructuralSearch/Parsers/EmptyStringParser.cs renamed to src/SimpleStateMachine.StructuralSearch/CustomParsers/EmptyStringParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Pidgin;
22

3-
namespace SimpleStateMachine.StructuralSearch.Parsers;
3+
namespace SimpleStateMachine.StructuralSearch.CustomParsers;
44

55
internal class EmptyStringParser : Parser<char, string>
66
{

src/SimpleStateMachine.StructuralSearch/Parsers/FindParser.cs renamed to src/SimpleStateMachine.StructuralSearch/CustomParsers/FindParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
using SimpleStateMachine.StructuralSearch.Input;
88
using SimpleStateMachine.StructuralSearch.Rules.FindRules;
99

10-
namespace SimpleStateMachine.StructuralSearch.Parsers;
10+
namespace SimpleStateMachine.StructuralSearch.CustomParsers;
1111

1212
internal class FindParser : IFindParser
1313
{

src/SimpleStateMachine.StructuralSearch/Parsers/FindTemplateParser.cs renamed to src/SimpleStateMachine.StructuralSearch/CustomParsers/FindTemplateParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using Pidgin;
44
using SimpleStateMachine.StructuralSearch.Context;
55

6-
namespace SimpleStateMachine.StructuralSearch.Parsers;
6+
namespace SimpleStateMachine.StructuralSearch.CustomParsers;
77

88
internal class FindTemplateParser : Parser<char, IEnumerable<string>>, IContextDependent
99
{

0 commit comments

Comments
 (0)