71 references to Operators
Microsoft.TemplateEngine.Core (71)
Expressions\Cpp2\Cpp2StyleEvaluatorDefinition.cs (1)
52
protected override IOperatorMap<
Operators
, Tokens> GenerateMap() => new OperatorSetBuilder<Tokens>(CppStyleConverters.Encode, CppStyleConverters.Decode)
Expressions\MSBuild\MSBuildStyleEvaluatorDefinition.cs (1)
42
protected override IOperatorMap<
Operators
, Tokens> GenerateMap() => new OperatorSetBuilder<Tokens>(XmlStyleConverters.XmlEncode, XmlStyleConverters.XmlDecode)
Expressions\OperatorSetBuilder.cs (65)
6
public class OperatorSetBuilder<TToken> : IOperatorMap<
Operators
, TToken>
11
private readonly Dictionary<
Operators
, Func<IEvaluable, IEvaluable>> _operatorScopeLookupFactory = new Dictionary<
Operators
, Func<IEvaluable, IEvaluable>>();
12
private readonly Dictionary<TToken,
Operators
> _tokensToOperatorsMap = new Dictionary<TToken,
Operators
>();
33
public
Operators
Identity =>
Operators
.Identity;
43
public IReadOnlyDictionary<
Operators
, Func<IEvaluable, IEvaluable>> OperatorScopeLookupFactory => _operatorScopeLookupFactory;
47
public IReadOnlyDictionary<TToken,
Operators
> TokensToOperatorsMap => _tokensToOperatorsMap;
49
public OperatorSetBuilder<TToken> Add(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
51
return SetupBinary(
Operators
.Add, token, evaluate ?? Add, precedesOperator);
54
public OperatorSetBuilder<TToken> And(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
56
return SetupBinary(
Operators
.And, token, evaluate ?? And, precedesOperator);
65
public OperatorSetBuilder<TToken> BitwiseAnd(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
67
return SetupBinary(
Operators
.BitwiseAnd, token, evaluate ?? BitwiseAnd, precedesOperator);
70
public OperatorSetBuilder<TToken> BitwiseOr(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
72
return SetupBinary(
Operators
.BitwiseOr, token, evaluate ?? BitwiseOr, precedesOperator);
86
public OperatorSetBuilder<TToken> Divide(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
88
return SetupBinary(
Operators
.Divide, token, evaluate ?? Divide, precedesOperator);
96
public OperatorSetBuilder<TToken> EqualTo(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
98
return SetupBinary(
Operators
.EqualTo, token, evaluate ?? EqualTo, precedesOperator);
101
public OperatorSetBuilder<TToken> Exponentiate(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
103
return SetupBinary(
Operators
.Exponentiate, token, evaluate ?? Exponentiate, precedesOperator);
106
public OperatorSetBuilder<TToken> GreaterThan(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
108
return SetupBinary(
Operators
.GreaterThan, token, evaluate ?? GreaterThan, precedesOperator);
111
public OperatorSetBuilder<TToken> GreaterThanOrEqualTo(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
113
return SetupBinary(
Operators
.GreaterThanOrEqualTo, token, evaluate ?? GreaterThanOrEqualTo, precedesOperator);
122
public OperatorSetBuilder<TToken> LeftShift(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
124
return SetupBinary(
Operators
.LeftShift, token, evaluate ?? LeftShift, precedesOperator);
127
public OperatorSetBuilder<TToken> LessThan(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
129
return SetupBinary(
Operators
.LessThan, token, evaluate ?? LessThan, precedesOperator);
132
public OperatorSetBuilder<TToken> LessThanOrEqualTo(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
134
return SetupBinary(
Operators
.LessThanOrEqualTo, token, evaluate ?? LessThanOrEqualTo, precedesOperator);
149
public OperatorSetBuilder<TToken> Multiply(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
151
return SetupBinary(
Operators
.Multiply, token, evaluate ?? Multiply, precedesOperator);
154
public OperatorSetBuilder<TToken> Not(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object>? evaluate = null)
156
_operatorScopeLookupFactory[
Operators
.Not] =
157
x => CreateUnaryChild(x,
Operators
.Not, evaluate ?? Not);
158
_tokensToOperatorsMap[token] =
Operators
.Not;
162
public OperatorSetBuilder<TToken> NotEqualTo(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
164
return SetupBinary(
Operators
.NotEqualTo, token, evaluate ?? NotEqualTo, precedesOperator);
173
public OperatorSetBuilder<TToken> Or(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
175
return SetupBinary(
Operators
.Or, token, evaluate ?? Or, precedesOperator);
178
public OperatorSetBuilder<TToken> Other(
Operators
@operator, TToken token, Func<IEvaluable, IEvaluable> nodeFactory)
185
public OperatorSetBuilder<TToken> RightShift(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
187
return SetupBinary(
Operators
.RightShift, token, evaluate ?? RightShift, precedesOperator);
190
public OperatorSetBuilder<TToken> Subtract(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
192
return SetupBinary(
Operators
.Subtract, token, evaluate ?? Subtract, precedesOperator);
213
public OperatorSetBuilder<TToken> Xor(TToken token, Func<
Operators
, bool>? precedesOperator = null, Func<object?, object?, object>? evaluate = null)
215
return SetupBinary(
Operators
.Xor, token, evaluate ?? Xor, precedesOperator);
218
private static IEvaluable CreateBinaryChild(IEvaluable active,
Operators
op, Func<
Operators
, bool> precedesOperator, Func<object?, object?, object> evaluate)
220
BinaryScope<
Operators
> self;
225
if (active is BinaryScope<
Operators
> left && precedesOperator(left.Operator))
227
self = new BinaryScope<
Operators
>(active, op, evaluate)
239
self = new BinaryScope<
Operators
>(active.Parent, op, evaluate);
245
case UnaryScope<
Operators
> unary:
248
case BinaryScope<
Operators
> binary:
266
private static IEvaluable CreateUnaryChild(IEvaluable active,
Operators
op, Func<object?, object> evaluate)
268
UnaryScope<
Operators
> self = new UnaryScope<
Operators
>(active, op, evaluate);
311
private static bool Precedes(
Operators
check,
Operators
arg)
528
private OperatorSetBuilder<TToken> SetupBinary(
Operators
op, TToken token, Func<object?, object?, object> evaluate, Func<
Operators
, bool>? precedesOperator = null)
Expressions\Shared\SharedEvaluatorDefinition.cs (3)
18
private static readonly IOperatorMap<
Operators
, TTokens> Map = Instance.GenerateMap();
116
protected abstract IOperatorMap<
Operators
, TTokens> GenerateMap();
129
ScopeBuilder<
Operators
, TTokens> builder = processor.ScopeBuilder(tokens, Map, DereferenceInLiteralsSetting);
Expressions\VisualBasic\VisualBasicStyleEvaluatorDefintion.cs (1)
52
protected override IOperatorMap<
Operators
, Tokens> GenerateMap() => new OperatorSetBuilder<Tokens>(CppStyleConverters.Encode, CppStyleConverters.Decode)