Skip to content

Commit ab1a46e

Browse files
committed
parser clean up
1 parent 68f79ce commit ab1a46e

File tree

6 files changed

+18
-13
lines changed

6 files changed

+18
-13
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using Parlot.Fluent;
2+
using static Parlot.Fluent.Parsers;
3+
4+
namespace Hyperbee.XS.System.Parsers;
5+
6+
internal static partial class XsParsers
7+
{
8+
public static Parser<IReadOnlyList<T>> ListOfOne<T>( Parser<T> parser )
9+
{
10+
return OneOf( parser ).Then<IReadOnlyList<T>>( x => new List<T> { x } );
11+
}
12+
}

src/Hyperbee.ExpressionScript/Parsers/TypeIdentifierParser.cs renamed to src/Hyperbee.ExpressionScript/System/Parsers/TypeIdentifierParser.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
using System.Linq.Expressions;
2-
using Hyperbee.XS.System;
32
using Parlot;
43
using Parlot.Fluent;
54

6-
namespace Hyperbee.XS.Parsers;
5+
namespace Hyperbee.XS.System.Parsers;
76

87
internal class TypeIdentifierParser : Parser<Expression>
98
{
@@ -68,4 +67,3 @@ public static Parser<Expression> TypeIdentifier( TypeResolver resolver )
6867
return new TypeIdentifierParser( resolver );
6968
}
7069
}
71-

src/Hyperbee.ExpressionScript/Parsers/ValueIdentifierParser.cs renamed to src/Hyperbee.ExpressionScript/System/Parsers/ValueIdentifierParser.cs

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

6-
namespace Hyperbee.XS.Parsers;
6+
namespace Hyperbee.XS.System.Parsers;
77

88
internal class ValueIdentifierParser : Parser<Expression>
99
{

src/Hyperbee.ExpressionScript/Parsers/WhitespaceOrNewLineOrCommentParser.cs renamed to src/Hyperbee.ExpressionScript/System/Parsers/WhitespaceOrNewLineOrCommentParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using Parlot;
22
using Parlot.Fluent;
33

4-
namespace Hyperbee.XS.Parsers;
4+
namespace Hyperbee.XS.System.Parsers;
55

66
internal class WhitespaceOrNewLineOrCommentParser : Parser<TextSpan>
77
{

src/Hyperbee.ExpressionScript/Parsers/ZeroOrManyUntilParser.cs renamed to src/Hyperbee.ExpressionScript/System/Parsers/ZeroOrManyUntilParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using Parlot;
22
using Parlot.Fluent;
33

4-
namespace Hyperbee.XS.Parsers;
4+
namespace Hyperbee.XS.System.Parsers;
55

66
internal class ZeroOrManyUntilParser<T, U> : Parser<IReadOnlyList<T>>
77
{

src/Hyperbee.ExpressionScript/XsParser.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using System.Linq.Expressions;
22
using System.Reflection;
33
using System.Runtime.CompilerServices;
4-
using Hyperbee.XS.Parsers;
54
using Hyperbee.XS.System;
5+
using Hyperbee.XS.System.Parsers;
66
using Parlot;
77
using Parlot.Fluent;
88
using static System.Linq.Expressions.Expression;
@@ -352,11 +352,6 @@ private static Parser<IReadOnlyList<Expression>> Arguments( Parser<Expression> e
352352
.Then( arguments => arguments ?? Array.Empty<Expression>() );
353353
}
354354

355-
static Parser<IReadOnlyList<Expression>> ListOfOne( Parser<Expression> expression )
356-
{
357-
return OneOf( expression ).Then<IReadOnlyList<Expression>>( x => new List<Expression> { x } );
358-
}
359-
360355
// Variable Parsers
361356

362357
private Parser<Expression> AssignmentParser( Parser<Expression> expression )
@@ -663,7 +658,7 @@ private Parser<Expression> LambdaParser( Parser<Expression> expression, Deferred
663658
.AndSkip( Terms.Text( "=>" ) )
664659
.And(
665660
OneOf(
666-
ListOfOne( expression ),
661+
XsParsers.ListOfOne( expression ),
667662
Between(
668663
Terms.Char( '{' ),
669664
ZeroOrMany( statement ),

0 commit comments

Comments
 (0)