Skip to content

Commit 31daf24

Browse files
Merge pull request #1 from SimpleStateMachine/dev
Merger dev
2 parents c181e46 + ab67089 commit 31daf24

Some content is hidden

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

42 files changed

+577
-109
lines changed

src/SimpleStateMachine.StructuralSearch.Sandbox/Program.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,30 @@
1-
using Pidgin;
1+
using System;
2+
using Pidgin;
3+
using SimpleStateMachine.StructuralSearch.Extensions;
4+
using static Pidgin.Parser;
5+
using static Pidgin.Parser<char>;
26

37
namespace SimpleStateMachine.StructuralSearch.Sandbox
48
{
59
internal static class Program
610
{
711
static void Main(string[] args)
812
{
13+
14+
var test = String("return ")
15+
.Then(AnyCharExcept(';').ManyString())
16+
.Then(Char(';').AtLeastOnceString())
17+
.Before(Char(';'));
18+
19+
20+
// var template = StructuralSearch.ParseTemplate("");
21+
// var test = Parser.OneOf(String("Test"), CommonParser.Empty);
22+
var res = test.ParseOrThrow("return 125;;;;");
23+
24+
25+
// var lookahead = Parser.Lookahead(Char(';').Then(End).Try());
26+
// var t = Parser.String("return ").Then(Any.AtLeastOnceAsStringUntilNot(lookahead));
27+
// var res = t.ParseOrThrow("return 124;;");
928
// var testTempalte = "if($test$)";
1029
// var testText = "if((value1)&&(value2))";
1130
// var testTextForMatch = "fdjkfnafdjankfjnafkajndaif((value1)&&(value2))";

src/SimpleStateMachine.StructuralSearch.Tests/Templates/IfElseTemplate.txt renamed to src/SimpleStateMachine.StructuralSearch.Tests/FindTemplate/IfElseTemplate.txt

File renamed without changes.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
if($temp$ $sign$ null)
2+
{
3+
$var$ = $value$;
4+
}

src/SimpleStateMachine.StructuralSearch.Tests/Templates/NestedParenthesisedTemplate.txt renamed to src/SimpleStateMachine.StructuralSearch.Tests/FindTemplate/NestedParenthesisedTemplate.txt

File renamed without changes.

src/SimpleStateMachine.StructuralSearch.Tests/FindTemplateTests.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,33 @@ namespace SimpleStateMachine.StructuralSearch.Tests
77
public class FindTemplateTests
88
{
99
[Theory]
10-
[InlineData("Templates/IfElseTemplate.txt")]
11-
[InlineData("Templates/IfValueIsNullTemplate.txt")]
12-
[InlineData("Templates/NestedParenthesisedTemplate.txt")]
10+
[InlineData("FindTemplate/IfElseTemplate.txt")]
11+
[InlineData("FindTemplate/IfValueIsNullTemplate.txt")]
12+
[InlineData("FindTemplate/NestedParenthesisedTemplate.txt")]
1313
public void TemplateParsingShouldBeSuccess(string templatePath)
1414
{
15-
var templateStr = File.ReadAllText(templatePath);
16-
var template = StructuralSearch.ParseTemplate(templateStr);
15+
var findTemplate = File.ReadAllText(templatePath);
16+
var template = StructuralSearch.ParseFindTemplate(findTemplate);
1717

1818
Assert.NotNull(template);
1919
}
2020

2121
[Theory]
22-
[InlineData("Templates/IfElseTemplate.txt", "Sources/IfElseSource.txt")]
23-
[InlineData("Templates/IfValueIsNullTemplate.txt", "Templates/IfValueIsNullSource.txt")]
24-
[InlineData("Templates/NestedParenthesisedTemplate.txt", "Templates/NestedParenthesisedSource.txt")]
25-
public void SourceParsingBeTemplateShouldBeSuccess(string templatePath, string sourcePath)
22+
[InlineData("FindTemplate/IfElseTemplate.txt", "Source/IfElseSource.txt")]
23+
[InlineData("FindTemplate/IfValueIsNullTemplate.txt", "Source/IfValueIsNullSource.txt")]
24+
[InlineData("FindTemplate/NestedParenthesisedTemplate.txt", "Source/NestedParenthesisedSource.txt")]
25+
public void SourceParsingBeFindTemplateShouldBeSuccess(string templatePath, string sourcePath)
2626
{
27-
var templateStr = File.ReadAllText(templatePath);
28-
var sourceStr = File.ReadAllText(templatePath);
29-
30-
var template = StructuralSearch.ParseTemplate(templateStr);
31-
var result = template.ParseOrThrow(sourceStr);
27+
var findTemplate = File.ReadAllText(templatePath);
28+
var source = File.ReadAllText(sourcePath);
29+
30+
var template = StructuralSearch.ParseFindTemplate(findTemplate);
31+
var result = template.ParseOrThrow(source);
3232

3333
Assert.NotNull(template);
3434
Assert.NotNull(result);
3535
Assert.NotNull(result.Value);
36-
Assert.Equal(result.Lenght, sourceStr.Length);
36+
Assert.Equal(result.Lenght, source.Length);
3737
}
3838
}
3939
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System;
2+
using Pidgin;
3+
using Xunit;
4+
5+
namespace SimpleStateMachine.StructuralSearch.Tests
6+
{
7+
public class PlaceholderParserTests
8+
{
9+
[Fact]
10+
public void FindTemplateShouldBeNotEmpty()
11+
{
12+
Assert.Throws<ParseException>(() => StructuralSearch.ParseFindTemplate(string.Empty));
13+
}
14+
15+
[Theory]
16+
[InlineData("($test$)", "(value )", "value ")]
17+
[InlineData("($test$ )", "(value )", "value")]
18+
[InlineData("($test$)", "(value (test))", "value (test)")]
19+
public void TemplateParsingShouldBeSuccess(string template, string source, string result)
20+
{
21+
var templateParser = StructuralSearch.ParseFindTemplate(template);
22+
var res = templateParser.ParseOrThrow(source);
23+
24+
// var templateStr = File.ReadAllText(templatePath);
25+
// var template = StructuralSearch.ParseTemplate(templateStr);
26+
//
27+
// Assert.NotNull(template);
28+
}
29+
30+
[Theory]
31+
[InlineData("$var$;$var2$;", "test;;;test;;;", "value ")]
32+
public void TemplateParsingShouldBeSuccess2(string template, string source, string result)
33+
{
34+
var templateParser = StructuralSearch.ParseFindTemplate(template);
35+
var res = templateParser.ParseOrThrow(source);
36+
37+
// var templateStr = File.ReadAllText(templatePath);
38+
// var template = StructuralSearch.ParseTemplate(templateStr);
39+
//
40+
// Assert.NotNull(template);
41+
}
42+
}
43+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
$var1$ $sign$ $value1$ ? $value1$ : $value2$;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
$var$ ??= $value$;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using System.IO;
2+
using System.Linq;
3+
using Xunit;
4+
5+
namespace SimpleStateMachine.StructuralSearch.Tests
6+
{
7+
public class ReplaceTemplateTests
8+
{
9+
[Theory]
10+
[InlineData("ReplaceTemplate/IfElseReplaceTemplate.txt", 14)]
11+
[InlineData("ReplaceTemplate/IfValueIsNullReplaceTemplate.txt", 6)]
12+
public void TemplateParsingShouldBeSuccess(string templatePath, int stepsCount)
13+
{
14+
var replaceTemplate = File.ReadAllText(templatePath);
15+
var replaceBuilder = StructuralSearch.ParseReplaceTemplate(replaceTemplate);
16+
var result = replaceBuilder.Build();
17+
18+
Assert.NotNull(replaceTemplate);
19+
Assert.Equal(replaceBuilder.Steps.Count(), stepsCount);
20+
}
21+
}
22+
}

src/SimpleStateMachine.StructuralSearch.Tests/SimpleStateMachine.StructuralSearch.Tests.csproj

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,13 @@
2525
</ItemGroup>
2626

2727
<ItemGroup Condition="'$(Configuration)' == 'Debug'">
28-
<Content Include="Sources\*.txt">
28+
<Content Include="Source\*.txt">
2929
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
3030
</Content>
31-
<Content Include="Templates\*.txt">
31+
<Content Include="FindTemplate\*.txt">
32+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
33+
</Content>
34+
<Content Include="ReplaceTemplate\*.txt">
3235
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
3336
</Content>
3437
</ItemGroup>

0 commit comments

Comments
 (0)