-
Notifications
You must be signed in to change notification settings - Fork 237
Expand file tree
/
Copy pathHandlebarsExpression.cs
More file actions
131 lines (110 loc) · 4.32 KB
/
HandlebarsExpression.cs
File metadata and controls
131 lines (110 loc) · 4.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
using System;
using System.Linq.Expressions;
using System.Collections.Generic;
namespace HandlebarsDotNet.Compiler
{
internal enum HandlebarsExpressionType
{
StaticExpression = 6000,
StatementExpression = 6001,
BlockExpression = 6002,
HelperExpression = 6003,
PathExpression = 6004,
IteratorExpression = 6005,
PartialExpression = 6007,
BoolishExpression = 6008,
SubExpression = 6009,
HashParameterAssignmentExpression = 6010,
HashParametersExpression = 6011,
CommentExpression = 6012,
BlockParamsExpression = 6013
}
internal abstract class HandlebarsExpression : Expression
{
public override Type Type => GetType();
public override bool CanReduce { get; } = false;
public static HelperExpression Helper(string helperName, bool isBlock, IEnumerable<Expression> arguments, bool isRaw = false)
{
return new HelperExpression(helperName, isBlock, arguments, isRaw);
}
public static HelperExpression Helper(string helperName, bool isBlock, bool isRaw = false, IReaderContext context = null)
{
return new HelperExpression(helperName, isBlock, isRaw, context);
}
public static BlockHelperExpression BlockHelper(
string helperName,
IEnumerable<Expression> arguments,
BlockParamsExpression blockParams,
Expression body,
Expression inversion,
bool isRaw = false)
{
return new BlockHelperExpression(helperName, arguments, blockParams, body, inversion, isRaw);
}
public static PathExpression Path(string path)
{
return new PathExpression(path);
}
public static BlockParamsExpression BlockParams(string action, string blockParams)
{
return new BlockParamsExpression(action, blockParams);
}
public static StaticExpression Static(string value)
{
return new StaticExpression(value);
}
public static StatementExpression Statement(Expression body, bool isEscaped, bool trimBefore, bool trimAfter)
{
return new StatementExpression(body, isEscaped, trimBefore, trimAfter);
}
public static IteratorExpression Iterator(
string helperName,
Expression sequence,
BlockParamsExpression blockParams,
Expression template)
{
return new IteratorExpression(helperName, sequence, blockParams, template, Empty());
}
public static IteratorExpression Iterator(
string helperName,
Expression sequence,
BlockParamsExpression blockParams,
Expression template,
Expression ifEmpty)
{
return new IteratorExpression(helperName, sequence, blockParams, template, ifEmpty);
}
public static PartialExpression Partial(Expression partialName)
{
return Partial(partialName, null);
}
public static PartialExpression Partial(Expression partialName, Expression argument)
{
return new PartialExpression(partialName, argument, null);
}
public static PartialExpression Partial(Expression partialName, Expression argument, Expression fallback)
{
return new PartialExpression(partialName, argument, fallback);
}
public static BoolishExpression Boolish(Expression condition, HashParametersExpression hashParameters)
{
return new BoolishExpression(condition, hashParameters);
}
public static SubExpressionExpression SubExpression(Expression expression)
{
return new SubExpressionExpression(expression);
}
public static HashParameterAssignmentExpression HashParameterAssignmentExpression(string name)
{
return new HashParameterAssignmentExpression(name);
}
public static HashParametersExpression HashParametersExpression(Dictionary<string, Expression> parameters)
{
return new HashParametersExpression(parameters);
}
public static CommentExpression Comment(string value)
{
return new CommentExpression(value);
}
}
}