-
Notifications
You must be signed in to change notification settings - Fork 176
/
Copy pathexpressions_test_helpers.go
207 lines (170 loc) · 6.83 KB
/
expressions_test_helpers.go
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
//+build !release
package ast
import (
"testing"
)
const nodeFailureMsgFormat = "Node is not %s, is %T"
// TestableIdentifierValue for marking a string as an identifier's value for test
type TestableIdentifierValue string
/*
BaseNode
*/
// IsArrayExpression fails the test and returns nil by default
func (b *BaseNode) IsArrayExpression(t *testing.T) *testableArrayExpression {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "array expression", b)
return nil
}
// IsAssignExpression fails the test and returns nil by default
func (b *BaseNode) IsAssignExpression(t *testing.T) (ae *testableAssignExpression) {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "assign expression", b)
return
}
// IsBooleanExpression fails the test and returns nil by default
func (b *BaseNode) IsBooleanExpression(t *testing.T) (ae *testableBooleanExpression) {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "boolean expression", b)
return
}
// IsCallExpression fails the test and returns nil by default
func (b *BaseNode) IsCallExpression(t *testing.T) (ce *testableCallExpression) {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "call expression", b)
return
}
// IsConditionalExpression fails the test and returns nil by default
func (b *BaseNode) IsConditionalExpression(t *testing.T) *testableConditionalExpression {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "conditional expression", b)
return nil
}
// IsConstant fails the test and returns nil by default
func (b *BaseNode) IsConstant(t *testing.T) (c *testableConstant) {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "constant", b)
return
}
// IsExpression fails the test and returns nil by default
func (b *BaseNode) IsExpression(t *testing.T) (te testableExpression) {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "expression", b)
return
}
// IsHashExpression fails the test and returns nil by default
func (b *BaseNode) IsHashExpression(t *testing.T) *testableHashExpression {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "hash expression", b)
return nil
}
// IsIdentifier fails the test and returns nil by default
func (b *BaseNode) IsIdentifier(t *testing.T) *testableIdentifier {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "identifier", b)
return nil
}
// IsIfExpression fails the test and returns nil by default
func (b *BaseNode) IsIfExpression(t *testing.T) *testableIfExpression {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "if expression", b)
return nil
}
// IsInfixExpression fails the test and returns nil by default
func (b *BaseNode) IsInfixExpression(t *testing.T) (ie *testableInfixExpression) {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "infix expression", b)
return
}
// IsInstanceVariable fails the test and returns nil by default
func (b *BaseNode) IsInstanceVariable(t *testing.T) (ie *testableInstanceVariable) {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "instance variable", b)
return
}
// IsIntegerLiteral fails the test and returns nil by default
func (b *BaseNode) IsIntegerLiteral(t *testing.T) (il *testableIntegerLiteral) {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "integer literal", b)
return
}
// IsSelfExpression fails the test and returns nil by default
func (b *BaseNode) IsSelfExpression(t *testing.T) (sl *testableSelfExpression) {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "self expression", b)
return
}
// IsStringLiteral fails the test and returns nil by default
func (b *BaseNode) IsStringLiteral(t *testing.T) *testableStringLiteral {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "string literal", b)
return nil
}
// IsYieldExpression returns pointer of the receiver yield expression
func (b *BaseNode) IsYieldExpression(t *testing.T) *testableYieldExpression {
t.Helper()
t.Fatalf(nodeFailureMsgFormat, "yield expression", b)
return nil
}
/*
AST node's helpers
*/
// IsArrayExpression returns pointer of the receiver array expression
func (ae *ArrayExpression) IsArrayExpression(t *testing.T) *testableArrayExpression {
return &testableArrayExpression{ArrayExpression: ae, t: t}
}
// IsAssignExpression returns pointer of the receiver assign expression
func (ae *AssignExpression) IsAssignExpression(t *testing.T) *testableAssignExpression {
return &testableAssignExpression{AssignExpression: ae, t: t}
}
// IsBooleanExpression returns pointer of the receiver boolean expression
func (be *BooleanExpression) IsBooleanExpression(t *testing.T) *testableBooleanExpression {
return &testableBooleanExpression{BooleanExpression: be, t: t}
}
// IsCallExpression returns pointer of the receiver call expression
func (ce *CallExpression) IsCallExpression(t *testing.T) *testableCallExpression {
return &testableCallExpression{CallExpression: ce, t: t}
}
// IsConditionalExpression returns pointer of the receiver conditional expression
func (ce *ConditionalExpression) IsConditionalExpression(t *testing.T) *testableConditionalExpression {
return &testableConditionalExpression{ConditionalExpression: ce, t: t}
}
// IsConstant returns pointer of the current receiver constant
func (c *Constant) IsConstant(t *testing.T) *testableConstant {
return &testableConstant{Constant: c, t: t}
}
// IsHashExpression returns pointer of the receiver hash expression
func (he *HashExpression) IsHashExpression(t *testing.T) *testableHashExpression {
return &testableHashExpression{HashExpression: he, t: t}
}
// IsIdentifier returns pointer of the receiver identifier
func (i *Identifier) IsIdentifier(t *testing.T) *testableIdentifier {
return &testableIdentifier{Identifier: i, t: t}
}
// IsIfExpression returns pointer of the receiver if expression
func (ie *IfExpression) IsIfExpression(t *testing.T) *testableIfExpression {
return &testableIfExpression{IfExpression: ie, t: t}
}
// IsInfixExpression returns pointer of the receiver infix expression
func (ie *InfixExpression) IsInfixExpression(t *testing.T) *testableInfixExpression {
return &testableInfixExpression{InfixExpression: ie, t: t}
}
// IsInstanceVariable returns pointer of the receiver instance variable
func (iv *InstanceVariable) IsInstanceVariable(t *testing.T) *testableInstanceVariable {
return &testableInstanceVariable{InstanceVariable: iv, t: t}
}
// IsIntegerLiteral returns pointer of the receiver integer literal
func (il *IntegerLiteral) IsIntegerLiteral(t *testing.T) *testableIntegerLiteral {
return &testableIntegerLiteral{IntegerLiteral: il, t: t}
}
// IsSelfExpression returns pointer of the receiver self expression
func (se *SelfExpression) IsSelfExpression(t *testing.T) *testableSelfExpression {
return &testableSelfExpression{SelfExpression: se, t: t}
}
// IsStringLiteral returns pointer of the receiver string literal
func (sl *StringLiteral) IsStringLiteral(t *testing.T) *testableStringLiteral {
return &testableStringLiteral{StringLiteral: sl, t: t}
}
// IsYieldExpression returns pointer of the receiver yield expression
func (ye *YieldExpression) IsYieldExpression(t *testing.T) *testableYieldExpression {
return &testableYieldExpression{YieldExpression: ye, t: t}
}