Skip to content

Commit 3e8b0ef

Browse files
Merge pull request #4 from SimpleStateMachine/dev
Dev
2 parents 9c2edb4 + 98920c8 commit 3e8b0ef

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+351
-95
lines changed

src/SimpleStateMachine.StructuralSearch.Sandbox/Program.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ internal static class Program
1313
{
1414
static void Main(string[] args)
1515
{
16-
var tesds = ParametersParser.StringFormatParameter.ParseOrThrow("\"tfasdfa\\\"sd$var$.Lenght\"");
17-
var rule = StructuralSearch.ParseFindRule("$var$ equals $var$.Lenght and Not StartsWith \"123\"");
16+
//var tesds = ParametersParser.StringFormatParameter.ParseOrThrow("\"tfasdfa\\\"sd$var$.Lenght\"");
17+
var replaceRule = StructuralSearch.ParseReplaceRule("$var$ equals $var$ => $var$.Trim");
18+
19+
var rule = StructuralSearch.ParseFindRule("$var$ equals $var$.Lenght and Not StartsWith \"123\\\" $var$ \\\"\"");
1820
var rule2 = StructuralSearch.ParseFindRule("$var$ equals $var$.Offset.Start and Not StartsWith \"123\"");
19-
var result1 = rule.Execute("test");
20-
var result2 = rule.Execute("10");
21-
var result3 = rule.Execute("5.3");
21+
// var result1 = rule.Execute("test");
22+
// var result2 = rule.Execute("10");
23+
// var result3 = rule.Execute("5.3");
2224

2325
var t = ExprParser.ParseOrThrow("2 + 2 + 2");
2426
var resw = t.Invoke();
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System.Linq;
2+
using Pidgin;
3+
using Xunit;
4+
5+
namespace SimpleStateMachine.StructuralSearch.Tests
6+
{
7+
public class FindRuleParserTests
8+
{
9+
[Theory]
10+
[InlineData("equals $var$")]
11+
[InlineData("equals \"\\$\"")]
12+
[InlineData("Not equals $var$.Lenght")]
13+
[InlineData("Not equals $var$.offset.Start")]
14+
[InlineData("equals $var$.Lenght and Not StartsWith \"123\"")]
15+
[InlineData("equals $var$.Lenght and Not StartsWith \"\\\"Test\"")]
16+
public void FindRuleParsingShouldBeSuccess(string ruleStr)
17+
{
18+
var rule = FindRuleParser.Expr.ParseOrThrow(ruleStr);
19+
var _ruleStr = rule.ToString()?.ToLower();
20+
Assert.NotNull(rule);
21+
Assert.Equal(_ruleStr, ruleStr.ToLower());
22+
}
23+
}
24+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using System.Linq;
2+
using Pidgin;
3+
using Xunit;
4+
5+
namespace SimpleStateMachine.StructuralSearch.Tests
6+
{
7+
public class ReplaceRuleParserTests
8+
{
9+
[Theory]
10+
[InlineData("equals $var$", "$var$")]
11+
[InlineData("equals \"\\$\"", "\"\\$\"")]
12+
[InlineData("Not equals $var$.Lenght", "$var$.Lenght")]
13+
[InlineData("Not equals $var$.offset.Start", "$var$.offset.Start")]
14+
[InlineData("equals $var$.Lenght and Not StartsWith \"123\"", "$var$.offset.Start.Trim")]
15+
[InlineData("equals $var$.Lenght and Not StartsWith \"\\\"Test\"", "$var$.offset.Start.ToUpper")]
16+
public void FindRuleParsingShouldBeSuccess(string findRule, string replaceRule)
17+
{
18+
var placeholder = "$var$";
19+
var replaceRuleStr = $"{placeholder} {findRule} => {replaceRule}";
20+
var rule = StructuralSearch.ParseReplaceRule(replaceRuleStr);
21+
var _ruleStr = rule.ToString().ToLower();
22+
Assert.NotNull(rule);
23+
Assert.Equal(_ruleStr, replaceRuleStr.ToLower());
24+
}
25+
}
26+
}

src/SimpleStateMachine.StructuralSearch.Tests/RuleParserTests.cs

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/SimpleStateMachine.StructuralSearch/Constant.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,21 @@ public static partial class Constant
8787
/// </summary>
8888
public static readonly char Dote = '.';
8989

90+
/// <summary>
91+
/// Char: '='
92+
/// </summary>
93+
public static readonly char Equals = '=';
94+
95+
/// <summary>
96+
/// Char: '>'
97+
/// </summary>
98+
public static readonly char More = '>';
99+
100+
/// <summary>
101+
/// String: "=>"
102+
/// </summary>
103+
public static readonly string Should = $"{Equals}{More}";
104+
90105
/// <summary>
91106
/// Parenthesis chars: '(' and ')'
92107
/// </summary>

src/SimpleStateMachine.StructuralSearch/Helper/CharHelper.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System;
2+
using System.Linq;
3+
4+
namespace SimpleStateMachine.StructuralSearch.Helper
5+
{
6+
public static class EscapeHelper
7+
{
8+
public static string Escape(string str, Func<char, char> replaceRule)
9+
{
10+
return new string(str.Select(replaceRule).ToArray());
11+
}
12+
13+
public static string EscapeChars(string str, Func<char, char> replaceRule, params char[] filter)
14+
{
15+
return new string(str.Select(c => filter.Contains(c) ? replaceRule(c) : c).ToArray());
16+
}
17+
18+
public static string EscapeExclude(string str, Func<char, char> replaceRule, params char[] excluded)
19+
{
20+
return new string(str.Select(c => excluded.Contains(c) ? c : replaceRule(c)).ToArray());
21+
}
22+
23+
public static string Escape(string str, Func<char, string> replaceRule)
24+
{
25+
return string.Join(string.Empty, str.Select(replaceRule));
26+
}
27+
28+
public static string EscapeChars(string str, Func<char, string> replaceRule, params char[] filter)
29+
{
30+
return string.Join(string.Empty, str.Select(c => filter.Contains(c) ? replaceRule(c) : c.ToString()));
31+
}
32+
33+
public static string EscapeExclude(string str, Func<char, string> replaceRule, params char[] excluded)
34+
{
35+
return string.Join(string.Empty, str.Select(c => excluded.Contains(c) ? c.ToString() : replaceRule(c)));
36+
}
37+
}
38+
}

src/SimpleStateMachine.StructuralSearch/Rule/FindRule/Rule.cs

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/SimpleStateMachine.StructuralSearch/Rule/FindRule/StringParameter.cs

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/SimpleStateMachine.StructuralSearch/Rule/RuleParser.cs

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)