Class: RKelly::Visitors::SexpVisitor
- Inherits:
-
Visitor
- Object
- Visitor
- RKelly::Visitors::SexpVisitor
show all
- Defined in:
- lib/rkelly/visitors/sexp_visitor.rb
Constant Summary
Constants inherited
from Visitor
Visitor::ALL_NODES, Visitor::ARRAY_VALUE_NODES, Visitor::BINARY_NODES, Visitor::CONDITIONAL_NODES, Visitor::FUNC_CALL_NODES, Visitor::FUNC_DECL_NODES, Visitor::NAME_VALUE_NODES, Visitor::PREFIX_POSTFIX_NODES, Visitor::SINGLE_VALUE_NODES, Visitor::TERMINAL_NODES
Instance Method Summary
collapse
Methods inherited from Visitor
#accept
Instance Method Details
#visit_AddNode(o) ⇒ Object
77
78
79
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 77
def visit_AddNode(o)
[:add, *super]
end
|
#visit_ArgumentsNode(o) ⇒ Object
345
346
347
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 345
def visit_ArgumentsNode(o)
[:args, super]
end
|
#visit_ArrayNode(o) ⇒ Object
325
326
327
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 325
def visit_ArrayNode(o)
[:array, super]
end
|
#visit_AssignExprNode(o) ⇒ Object
12
13
14
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 12
def visit_AssignExprNode(o)
[:assign, super]
end
|
#visit_BitAndNode(o) ⇒ Object
133
134
135
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 133
def visit_BitAndNode(o)
[:bit_and, *super]
end
|
#visit_BitOrNode(o) ⇒ Object
137
138
139
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 137
def visit_BitOrNode(o)
[:bit_or, *super]
end
|
#visit_BitwiseNotNode(o) ⇒ Object
53
54
55
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 53
def visit_BitwiseNotNode(o)
[:bitwise_not, super]
end
|
#visit_BitXOrNode(o) ⇒ Object
141
142
143
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 141
def visit_BitXOrNode(o)
[:bit_xor, *super]
end
|
#visit_BlockNode(o) ⇒ Object
185
186
187
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 185
def visit_BlockNode(o)
[:block, super]
end
|
#visit_BracketAccessorNode(o) ⇒ Object
217
218
219
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 217
def visit_BracketAccessorNode(o)
[:bracket_access, *super]
end
|
#visit_BreakNode(o) ⇒ Object
229
230
231
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 229
def visit_BreakNode(o)
[:break, o.value].compact
end
|
#visit_CaseBlockNode(o) ⇒ Object
173
174
175
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 173
def visit_CaseBlockNode(o)
[:case_block, super]
end
|
#visit_CaseClauseNode(o) ⇒ Object
169
170
171
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 169
def visit_CaseClauseNode(o)
[:case, *super]
end
|
#visit_CommaNode(o) ⇒ Object
317
318
319
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 317
def visit_CommaNode(o)
[:comma, *super]
end
|
#visit_ConditionalNode(o) ⇒ Object
193
194
195
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 193
def visit_ConditionalNode(o)
[:conditional, *super]
end
|
#visit_ConstStatementNode(o) ⇒ Object
61
62
63
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 61
def visit_ConstStatementNode(o)
[:const, super]
end
|
#visit_ContinueNode(o) ⇒ Object
233
234
235
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 233
def visit_ContinueNode(o)
[:continue, o.value].compact
end
|
#visit_DeleteNode(o) ⇒ Object
33
34
35
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 33
def visit_DeleteNode(o)
[:delete, super]
end
|
#visit_DivideNode(o) ⇒ Object
69
70
71
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 69
def visit_DivideNode(o)
[:divide, *super]
end
|
#visit_DotAccessorNode(o) ⇒ Object
349
350
351
352
353
354
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 349
def visit_DotAccessorNode(o)
[:dot_access,
super,
o.accessor
]
end
|
#visit_DoWhileNode(o) ⇒ Object
157
158
159
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 157
def visit_DoWhileNode(o)
[:do_while, *super]
end
|
#visit_ElementNode(o) ⇒ Object
261
262
263
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 261
def visit_ElementNode(o)
[:element, super ]
end
|
#visit_EmptyStatementNode(o) ⇒ Object
205
206
207
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 205
def visit_EmptyStatementNode(o)
[:empty]
end
|
#visit_EqualNode(o) ⇒ Object
117
118
119
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 117
def visit_EqualNode(o)
[:equal, *super]
end
|
#visit_ExpressionStatementNode(o) ⇒ Object
265
266
267
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 265
def visit_ExpressionStatementNode(o)
[:expression, super ]
end
|
#visit_FalseNode(o) ⇒ Object
364
365
366
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 364
def visit_FalseNode(o)
[:false]
end
|
#visit_ForInNode(o) ⇒ Object
197
198
199
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 197
def visit_ForInNode(o)
[ :for_in, *super]
end
|
#visit_ForNode(o) ⇒ Object
181
182
183
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 181
def visit_ForNode(o)
[ :for, *super]
end
|
#visit_FunctionBodyNode(o) ⇒ Object
209
210
211
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 209
def visit_FunctionBodyNode(o)
[:func_body, super]
end
|
#visit_FunctionCallNode(o) ⇒ Object
321
322
323
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 321
def visit_FunctionCallNode(o)
[:function_call, *super]
end
|
#visit_FunctionDeclNode(o) ⇒ Object
341
342
343
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 341
def visit_FunctionDeclNode(o)
[ :func_decl, *super]
end
|
#visit_FunctionExprNode(o) ⇒ Object
337
338
339
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 337
def visit_FunctionExprNode(o)
[ :func_expr, *super]
end
|
#visit_GetterPropertyNode(o) ⇒ Object
253
254
255
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 253
def visit_GetterPropertyNode(o)
[ :getter, o.name, super ]
end
|
#visit_GreaterNode(o) ⇒ Object
101
102
103
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 101
def visit_GreaterNode(o)
[:greater, *super]
end
|
#visit_GreaterOrEqualNode(o) ⇒ Object
109
110
111
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 109
def visit_GreaterOrEqualNode(o)
[:greater_or_equal, *super]
end
|
#visit_IfNode(o) ⇒ Object
189
190
191
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 189
def visit_IfNode(o)
[:if, *super].compact
end
|
#visit_InNode(o) ⇒ Object
153
154
155
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 153
def visit_InNode(o)
[:in, *super]
end
|
#visit_InstanceOfNode(o) ⇒ Object
113
114
115
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 113
def visit_InstanceOfNode(o)
[:instance_of, *super]
end
|
#visit_LabelNode(o) ⇒ Object
237
238
239
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 237
def visit_LabelNode(o)
[:label, o.name, super]
end
|
#visit_LeftShiftNode(o) ⇒ Object
81
82
83
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 81
def visit_LeftShiftNode(o)
[:lshift, *super]
end
|
#visit_LessNode(o) ⇒ Object
97
98
99
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 97
def visit_LessNode(o)
[:less, *super]
end
|
#visit_LessOrEqualNode(o) ⇒ Object
105
106
107
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 105
def visit_LessOrEqualNode(o)
[:less_or_equal, *super]
end
|
#visit_LogicalAndNode(o) ⇒ Object
145
146
147
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 145
def visit_LogicalAndNode(o)
[:and, *super]
end
|
#visit_LogicalNotNode(o) ⇒ Object
57
58
59
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 57
def visit_LogicalNotNode(o)
[:not, super]
end
|
#visit_LogicalOrNode(o) ⇒ Object
149
150
151
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 149
def visit_LogicalOrNode(o)
[:or, *super]
end
|
#visit_ModulusNode(o) ⇒ Object
73
74
75
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 73
def visit_ModulusNode(o)
[:modulus, *super]
end
|
#visit_MultiplyNode(o) ⇒ Object
65
66
67
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 65
def visit_MultiplyNode(o)
[:multiply, *super]
end
|
#visit_NewExprNode(o) ⇒ Object
221
222
223
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 221
def visit_NewExprNode(o)
[:new_expr, *super]
end
|
#visit_NotEqualNode(o) ⇒ Object
121
122
123
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 121
def visit_NotEqualNode(o)
[:not_equal, *super]
end
|
#visit_NotStrictEqualNode(o) ⇒ Object
129
130
131
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 129
def visit_NotStrictEqualNode(o)
[:not_strict_equal, *super]
end
|
#visit_NullNode(o) ⇒ Object
356
357
358
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 356
def visit_NullNode(o)
[:nil]
end
|
#visit_NumberNode(o) ⇒ Object
4
5
6
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 4
def visit_NumberNode(o)
[:lit, o.value]
end
|
#visit_ObjectLiteralNode(o) ⇒ Object
245
246
247
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 245
def visit_ObjectLiteralNode(o)
[:object, super]
end
|
#visit_OpAndEqualNode(o) ⇒ Object
301
302
303
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 301
def visit_OpAndEqualNode(o)
[:op_and_equal, *super ]
end
|
#visit_OpDivideEqualNode(o) ⇒ Object
285
286
287
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 285
def visit_OpDivideEqualNode(o)
[:op_divide_equal, *super]
end
|
#visit_OpEqualNode(o) ⇒ Object
269
270
271
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 269
def visit_OpEqualNode(o)
[:op_equal, *super ]
end
|
#visit_OpLShiftEqualNode(o) ⇒ Object
289
290
291
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 289
def visit_OpLShiftEqualNode(o)
[:op_lshift_equal, *super ]
end
|
#visit_OpMinusEqualNode(o) ⇒ Object
277
278
279
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 277
def visit_OpMinusEqualNode(o)
[:op_minus_equal, *super ]
end
|
#visit_OpModEqualNode(o) ⇒ Object
313
314
315
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 313
def visit_OpModEqualNode(o)
[:op_mod_equal, *super]
end
|
#visit_OpMultiplyEqualNode(o) ⇒ Object
281
282
283
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 281
def visit_OpMultiplyEqualNode(o)
[:op_multiply_equal, *super ]
end
|
#visit_OpOrEqualNode(o) ⇒ Object
309
310
311
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 309
def visit_OpOrEqualNode(o)
[:op_or_equal, *super ]
end
|
#visit_OpPlusEqualNode(o) ⇒ Object
273
274
275
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 273
def visit_OpPlusEqualNode(o)
[:op_plus_equal, *super ]
end
|
#visit_OpRShiftEqualNode(o) ⇒ Object
293
294
295
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 293
def visit_OpRShiftEqualNode(o)
[:op_rshift_equal, *super ]
end
|
#visit_OpURShiftEqualNode(o) ⇒ Object
297
298
299
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 297
def visit_OpURShiftEqualNode(o)
[:op_urshift_equal, *super ]
end
|
#visit_OpXOrEqualNode(o) ⇒ Object
305
306
307
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 305
def visit_OpXOrEqualNode(o)
[:op_xor_equal, *super ]
end
|
#visit_ParameterNode(o) ⇒ Object
225
226
227
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 225
def visit_ParameterNode(o)
[:param, o.value]
end
|
#visit_PostfixNode(o) ⇒ Object
25
26
27
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 25
def visit_PostfixNode(o)
[:postfix, super, o.value]
end
|
#visit_PrefixNode(o) ⇒ Object
29
30
31
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 29
def visit_PrefixNode(o)
[:prefix, super, o.value]
end
|
#visit_PropertyNode(o) ⇒ Object
249
250
251
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 249
def visit_PropertyNode(o)
[ :property, o.name, super ]
end
|
#visit_RegexpNode(o) ⇒ Object
8
9
10
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 8
def visit_RegexpNode(o)
[:lit, o.value]
end
|
#visit_ResolveNode(o) ⇒ Object
213
214
215
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 213
def visit_ResolveNode(o)
[:resolve, o.value]
end
|
#visit_ReturnNode(o) ⇒ Object
333
334
335
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 333
def visit_ReturnNode(o)
o.value ? [:return, super] : [:return]
end
|
#visit_RightShiftNode(o) ⇒ Object
85
86
87
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 85
def visit_RightShiftNode(o)
[:rshift, *super]
end
|
#visit_SetterPropertyNode(o) ⇒ Object
257
258
259
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 257
def visit_SetterPropertyNode(o)
[ :setter, o.name, super ]
end
|
#visit_StrictEqualNode(o) ⇒ Object
125
126
127
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 125
def visit_StrictEqualNode(o)
[:strict_equal, *super]
end
|
#visit_StringNode(o) ⇒ Object
360
361
362
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 360
def visit_StringNode(o)
[:str, o.value]
end
|
#visit_SubtractNode(o) ⇒ Object
93
94
95
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 93
def visit_SubtractNode(o)
[:subtract, *super]
end
|
#visit_SwitchNode(o) ⇒ Object
177
178
179
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 177
def visit_SwitchNode(o)
[:switch, *super]
end
|
#visit_ThisNode(o) ⇒ Object
329
330
331
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 329
def visit_ThisNode(o)
[:this]
end
|
#visit_ThrowNode(o) ⇒ Object
241
242
243
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 241
def visit_ThrowNode(o)
[:throw, super]
end
|
#visit_TrueNode(o) ⇒ Object
368
369
370
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 368
def visit_TrueNode(o)
[:true]
end
|
#visit_TryNode(o) ⇒ Object
201
202
203
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 201
def visit_TryNode(o)
[ :try, *super]
end
|
#visit_TypeOfNode(o) ⇒ Object
41
42
43
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 41
def visit_TypeOfNode(o)
[:typeof, super]
end
|
#visit_UnaryMinusNode(o) ⇒ Object
49
50
51
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 49
def visit_UnaryMinusNode(o)
[:u_minus, super]
end
|
#visit_UnaryPlusNode(o) ⇒ Object
45
46
47
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 45
def visit_UnaryPlusNode(o)
[:u_plus, super]
end
|
#visit_UnsignedRightShiftNode(o) ⇒ Object
89
90
91
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 89
def visit_UnsignedRightShiftNode(o)
[:urshift, *super]
end
|
#visit_VarDeclNode(o) ⇒ Object
16
17
18
19
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 16
def visit_VarDeclNode(o)
[ o.constant? ? :const_decl : :var_decl,
o.name.to_sym, o.value ? super(o) : nil]
end
|
#visit_VarStatementNode(o) ⇒ Object
21
22
23
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 21
def visit_VarStatementNode(o)
[:var, super]
end
|
#visit_VoidNode(o) ⇒ Object
37
38
39
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 37
def visit_VoidNode(o)
[:void, super]
end
|
#visit_WhileNode(o) ⇒ Object
161
162
163
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 161
def visit_WhileNode(o)
[:while, *super]
end
|
#visit_WithNode(o) ⇒ Object
165
166
167
|
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 165
def visit_WithNode(o)
[:with, *super]
end
|