Skip to content

Commit 7e11741

Browse files
committed
Closer, some failing tests
1 parent 94baa8b commit 7e11741

File tree

14 files changed

+41
-34
lines changed

14 files changed

+41
-34
lines changed

src/Serilog.Expressions/Expressions/Ast/AmbientPropertyExpression.cs renamed to src/Serilog.Expressions/Expressions/Ast/AmbientNameExpression.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
namespace Serilog.Expressions.Ast
44
{
5-
class AmbientPropertyExpression : Expression
5+
class AmbientNameExpression : Expression
66
{
77
readonly bool _requiresEscape;
88

9-
public AmbientPropertyExpression(string propertyName, bool isBuiltIn)
9+
public AmbientNameExpression(string Name, bool isBuiltIn)
1010
{
11-
PropertyName = propertyName ?? throw new ArgumentNullException(nameof(propertyName));
11+
PropertyName = Name ?? throw new ArgumentNullException(nameof(Name));
1212
IsBuiltIn = isBuiltIn;
13-
_requiresEscape = !SerilogExpression.IsValidIdentifier(propertyName);
13+
_requiresEscape = !SerilogExpression.IsValidIdentifier(Name);
1414
}
1515

1616
public string PropertyName { get; }
@@ -25,4 +25,4 @@ public override string ToString()
2525
return (IsBuiltIn ? "@" : "") + PropertyName;
2626
}
2727
}
28-
}
28+
}

src/Serilog.Expressions/Expressions/Ast/NamedLocalExpression.cs renamed to src/Serilog.Expressions/Expressions/Ast/LocalNameExpression.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
namespace Serilog.Expressions.Ast
44
{
5-
class NamedLocalExpression : Expression
5+
class LocalNameExpression : Expression
66
{
7-
public NamedLocalExpression(string name)
7+
public LocalNameExpression(string name)
88
{
99
Name = name ?? throw new ArgumentNullException(nameof(name));
1010
}

src/Serilog.Expressions/Expressions/Compilation/Linq/LinqExpressionCompiler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ protected override ExpressionBody Transform(ConstantExpression cx)
134134
return LX.Constant(cx.Constant);
135135
}
136136

137-
protected override ExpressionBody Transform(AmbientPropertyExpression px)
137+
protected override ExpressionBody Transform(AmbientNameExpression px)
138138
{
139139
if (px.IsBuiltIn)
140140
{
@@ -161,7 +161,7 @@ protected override ExpressionBody Transform(AmbientPropertyExpression px)
161161
return Splice(context => Intrinsics.GetPropertyValue(context, propertyName));
162162
}
163163

164-
protected override ExpressionBody Transform(NamedLocalExpression nlx)
164+
protected override ExpressionBody Transform(LocalNameExpression nlx)
165165
{
166166
// Don't close over the AST node.
167167
var name = nlx.Name;

src/Serilog.Expressions/Expressions/Compilation/Pattern.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ static class Pattern
88
{
99
public static bool IsAmbientProperty(Expression expression, string name, bool isBuiltIn)
1010
{
11-
return expression is AmbientPropertyExpression px &&
11+
return expression is AmbientNameExpression px &&
1212
px.PropertyName == name &&
1313
px.IsBuiltIn == isBuiltIn;
1414
}

src/Serilog.Expressions/Expressions/Compilation/Properties/PropertiesObjectAccessorTransformer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ protected override Expression Transform(AccessorExpression ax)
1515
if (!Pattern.IsAmbientProperty(ax.Receiver, BuiltInProperty.Properties, true))
1616
return base.Transform(ax);
1717

18-
return new AmbientPropertyExpression(ax.MemberName, false);
18+
return new AmbientNameExpression(ax.MemberName, false);
1919
}
2020

2121
protected override Expression Transform(IndexerExpression ix)
@@ -24,7 +24,7 @@ protected override Expression Transform(IndexerExpression ix)
2424
!Pattern.IsStringConstant(ix.Index, out var name))
2525
return base.Transform(ix);
2626

27-
return new AmbientPropertyExpression(name, false);
27+
return new AmbientNameExpression(name, false);
2828
}
2929
}
3030
}

src/Serilog.Expressions/Expressions/Compilation/Transformations/FilterExpressionTransformer`1.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ protected virtual TResult Transform(Expression expression)
1212
CallExpression call => Transform(call),
1313
ConstantExpression constant => Transform(constant),
1414
AccessorExpression accessor => Transform(accessor),
15-
AmbientPropertyExpression property => Transform(property),
15+
AmbientNameExpression property => Transform(property),
16+
LocalNameExpression local => Transform(local),
1617
LambdaExpression lambda => Transform(lambda),
1718
ParameterExpression parameter => Transform(parameter),
1819
IndexerWildcardExpression wildcard => Transform(wildcard),
@@ -28,8 +29,8 @@ protected virtual TResult Transform(Expression expression)
2829

2930
protected abstract TResult Transform(CallExpression lx);
3031
protected abstract TResult Transform(ConstantExpression cx);
31-
protected abstract TResult Transform(AmbientPropertyExpression px);
32-
protected abstract TResult Transform(NamedLocalExpression nlx);
32+
protected abstract TResult Transform(AmbientNameExpression px);
33+
protected abstract TResult Transform(LocalNameExpression nlx);
3334
protected abstract TResult Transform(AccessorExpression spx);
3435
protected abstract TResult Transform(LambdaExpression lmx);
3536
protected abstract TResult Transform(ParameterExpression prx);

src/Serilog.Expressions/Expressions/Compilation/Transformations/IdentityTransformer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ protected override Expression Transform(ConstantExpression cx)
3333
return cx;
3434
}
3535

36-
protected override Expression Transform(AmbientPropertyExpression px)
36+
protected override Expression Transform(AmbientNameExpression px)
3737
{
3838
return px;
3939
}
4040

41-
protected override Expression Transform(NamedLocalExpression nlx)
41+
protected override Expression Transform(LocalNameExpression nlx)
4242
{
4343
return nlx;
4444
}

src/Serilog.Expressions/Expressions/Compilation/Wildcards/WildcardSearch.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ class WildcardSearch : SerilogExpressionTransformer<IndexerExpression?>
2626
return null;
2727
}
2828

29-
protected override IndexerExpression? Transform(AmbientPropertyExpression px)
29+
protected override IndexerExpression? Transform(AmbientNameExpression px)
3030
{
3131
return null;
3232
}
3333

34-
protected override IndexerExpression? Transform(NamedLocalExpression nlx)
34+
protected override IndexerExpression? Transform(LocalNameExpression nlx)
3535
{
3636
return null;
3737
}

src/Serilog.Expressions/Expressions/Parsing/ExpressionTokenParsers.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ from value in Token.EqualTo(ExpressionToken.Colon)
9898
select (Member) new PropertyMember(
9999
key.ToStringValue(),
100100
value ?? (key.Kind == ExpressionToken.BuiltInIdentifier ?
101-
new AmbientPropertyExpression(key.ToStringValue().Substring(1), true) :
102-
new AmbientPropertyExpression(key.ToStringValue(), false)));
101+
new AmbientNameExpression(key.ToStringValue().Substring(1), true) :
102+
new AmbientNameExpression(key.ToStringValue(), false)));
103103

104104
static readonly TokenListParser<ExpressionToken, Member> StringMember =
105105
from key in Token.EqualTo(ExpressionToken.String).Apply(ExpressionTextParsers.String)
@@ -123,8 +123,8 @@ from rbrace in Token.EqualTo(ExpressionToken.RBrace)
123123

124124
static readonly TokenListParser<ExpressionToken, Expression> RootProperty =
125125
(from notFunction in Parse.Not(Token.EqualTo(ExpressionToken.Identifier).IgnoreThen(Token.EqualTo(ExpressionToken.LParen)))
126-
from p in Token.EqualTo(ExpressionToken.BuiltInIdentifier).Select(b => (Expression) new AmbientPropertyExpression(b.ToStringValue().Substring(1), true))
127-
.Or(Token.EqualTo(ExpressionToken.Identifier).Select(t => (Expression) new AmbientPropertyExpression(t.ToStringValue(), false)))
126+
from p in Token.EqualTo(ExpressionToken.BuiltInIdentifier).Select(b => (Expression) new AmbientNameExpression(b.ToStringValue().Substring(1), true))
127+
.Or(Token.EqualTo(ExpressionToken.Identifier).Select(t => (Expression) new AmbientNameExpression(t.ToStringValue(), false)))
128128
select p).Named("property");
129129

130130
static readonly TokenListParser<ExpressionToken, Expression> String =

src/Serilog.Expressions/Expressions/Parsing/ExpressionTokenizer.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ class ExpressionTokenizer : Tokenizer<ExpressionToken>
2424
new ExpressionKeyword("then", ExpressionToken.Then),
2525
new ExpressionKeyword("else", ExpressionToken.Else),
2626
new ExpressionKeyword("end", ExpressionToken.End),
27-
new ExpressionKeyword("ci", ExpressionToken.CI)
27+
new ExpressionKeyword("ci", ExpressionToken.CI),
28+
new ExpressionKeyword("each", ExpressionToken.Each),
29+
new ExpressionKeyword("delimit", ExpressionToken.Delimit),
2830
};
2931

3032
public ExpressionTokenizer()

0 commit comments

Comments
 (0)