Class: RKelly::Visitors::SexpVisitor

Inherits:
Visitor
  • Object
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