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



76
77
78
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 76

def visit_AddNode(o)
  [:add, *super]
end

#visit_ArgumentsNode(o) ⇒ Object



344
345
346
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 344

def visit_ArgumentsNode(o)
  [:args, super]
end

#visit_ArrayNode(o) ⇒ Object



324
325
326
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 324

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



132
133
134
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 132

def visit_BitAndNode(o)
  [:bit_and, *super]
end

#visit_BitOrNode(o) ⇒ Object



136
137
138
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 136

def visit_BitOrNode(o)
  [:bit_or, *super]
end

#visit_BitwiseNotNode(o) ⇒ Object



52
53
54
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 52

def visit_BitwiseNotNode(o)
  [:bitwise_not, super]
end

#visit_BitXOrNode(o) ⇒ Object



140
141
142
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 140

def visit_BitXOrNode(o)
  [:bit_xor, *super]
end

#visit_BlockNode(o) ⇒ Object



184
185
186
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 184

def visit_BlockNode(o)
  [:block, super]
end

#visit_BracketAccessorNode(o) ⇒ Object



216
217
218
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 216

def visit_BracketAccessorNode(o)
  [:bracket_access, *super]
end

#visit_BreakNode(o) ⇒ Object



228
229
230
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 228

def visit_BreakNode(o)
  [:break, o.value].compact
end

#visit_CaseBlockNode(o) ⇒ Object



172
173
174
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 172

def visit_CaseBlockNode(o)
  [:case_block, super]
end

#visit_CaseClauseNode(o) ⇒ Object



168
169
170
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 168

def visit_CaseClauseNode(o)
  [:case, *super]
end

#visit_CommaNode(o) ⇒ Object



316
317
318
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 316

def visit_CommaNode(o)
  [:comma, *super]
end

#visit_ConditionalNode(o) ⇒ Object



192
193
194
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 192

def visit_ConditionalNode(o)
  [:conditional, *super]
end

#visit_ConstStatementNode(o) ⇒ Object



60
61
62
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 60

def visit_ConstStatementNode(o)
  [:const, super]
end

#visit_ContinueNode(o) ⇒ Object



232
233
234
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 232

def visit_ContinueNode(o)
  [:continue, o.value].compact
end

#visit_DeleteNode(o) ⇒ Object



32
33
34
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 32

def visit_DeleteNode(o)
  [:delete, super]
end

#visit_DivideNode(o) ⇒ Object



68
69
70
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 68

def visit_DivideNode(o)
  [:divide, *super]
end

#visit_DotAccessorNode(o) ⇒ Object



348
349
350
351
352
353
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 348

def visit_DotAccessorNode(o)
  [:dot_access,
    super,
    o.accessor
  ]
end

#visit_DoWhileNode(o) ⇒ Object



156
157
158
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 156

def visit_DoWhileNode(o)
  [:do_while, *super]
end

#visit_ElementNode(o) ⇒ Object



260
261
262
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 260

def visit_ElementNode(o)
  [:element, super ]
end

#visit_EmptyStatementNode(o) ⇒ Object



204
205
206
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 204

def visit_EmptyStatementNode(o)
  [:empty]
end

#visit_EqualNode(o) ⇒ Object



116
117
118
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 116

def visit_EqualNode(o)
  [:equal, *super]
end

#visit_ExpressionStatementNode(o) ⇒ Object



264
265
266
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 264

def visit_ExpressionStatementNode(o)
  [:expression, super ]
end

#visit_FalseNode(o) ⇒ Object



363
364
365
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 363

def visit_FalseNode(o)
  [:false]
end

#visit_ForInNode(o) ⇒ Object



196
197
198
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 196

def visit_ForInNode(o)
  [ :for_in, *super]
end

#visit_ForNode(o) ⇒ Object



180
181
182
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 180

def visit_ForNode(o)
  [ :for, *super]
end

#visit_FunctionBodyNode(o) ⇒ Object



208
209
210
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 208

def visit_FunctionBodyNode(o)
  [:func_body, super]
end

#visit_FunctionCallNode(o) ⇒ Object



320
321
322
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 320

def visit_FunctionCallNode(o)
  [:function_call, *super]
end

#visit_FunctionDeclNode(o) ⇒ Object



340
341
342
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 340

def visit_FunctionDeclNode(o)
  [ :func_decl, *super]
end

#visit_FunctionExprNode(o) ⇒ Object



336
337
338
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 336

def visit_FunctionExprNode(o)
  [ :func_expr, *super]
end

#visit_GetterPropertyNode(o) ⇒ Object



252
253
254
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 252

def visit_GetterPropertyNode(o)
  [ :getter ] + super
end

#visit_GreaterNode(o) ⇒ Object



100
101
102
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 100

def visit_GreaterNode(o)
  [:greater, *super]
end

#visit_GreaterOrEqualNode(o) ⇒ Object



108
109
110
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 108

def visit_GreaterOrEqualNode(o)
  [:greater_or_equal, *super]
end

#visit_IfNode(o) ⇒ Object



188
189
190
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 188

def visit_IfNode(o)
  [:if, *super].compact
end

#visit_InNode(o) ⇒ Object



152
153
154
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 152

def visit_InNode(o)
  [:in, *super]
end

#visit_InstanceOfNode(o) ⇒ Object



112
113
114
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 112

def visit_InstanceOfNode(o)
  [:instance_of, *super]
end

#visit_LabelNode(o) ⇒ Object



236
237
238
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 236

def visit_LabelNode(o)
  [:label ] + super
end

#visit_LeftShiftNode(o) ⇒ Object



80
81
82
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 80

def visit_LeftShiftNode(o)
  [:lshift, *super]
end

#visit_LessNode(o) ⇒ Object



96
97
98
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 96

def visit_LessNode(o)
  [:less, *super]
end

#visit_LessOrEqualNode(o) ⇒ Object



104
105
106
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 104

def visit_LessOrEqualNode(o)
  [:less_or_equal, *super]
end

#visit_LogicalAndNode(o) ⇒ Object



144
145
146
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 144

def visit_LogicalAndNode(o)
  [:and, *super]
end

#visit_LogicalNotNode(o) ⇒ Object



56
57
58
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 56

def visit_LogicalNotNode(o)
  [:not, super]
end

#visit_LogicalOrNode(o) ⇒ Object



148
149
150
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 148

def visit_LogicalOrNode(o)
  [:or, *super]
end

#visit_ModulusNode(o) ⇒ Object



72
73
74
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 72

def visit_ModulusNode(o)
  [:modulus, *super]
end

#visit_MultiplyNode(o) ⇒ Object



64
65
66
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 64

def visit_MultiplyNode(o)
  [:multiply, *super]
end

#visit_NewExprNode(o) ⇒ Object



220
221
222
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 220

def visit_NewExprNode(o)
  [:new_expr, *super]
end

#visit_NotEqualNode(o) ⇒ Object



120
121
122
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 120

def visit_NotEqualNode(o)
  [:not_equal, *super]
end

#visit_NotStrictEqualNode(o) ⇒ Object



128
129
130
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 128

def visit_NotStrictEqualNode(o)
  [:not_strict_equal, *super]
end

#visit_NullNode(o) ⇒ Object



355
356
357
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 355

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



244
245
246
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 244

def visit_ObjectLiteralNode(o)
  [:object, super]
end

#visit_OpAndEqualNode(o) ⇒ Object



300
301
302
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 300

def visit_OpAndEqualNode(o)
  [:op_and_equal, *super ]
end

#visit_OpDivideEqualNode(o) ⇒ Object



284
285
286
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 284

def visit_OpDivideEqualNode(o)
  [:op_divide_equal, *super]
end

#visit_OpEqualNode(o) ⇒ Object



268
269
270
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 268

def visit_OpEqualNode(o)
  [:op_equal, *super ]
end

#visit_OpLShiftEqualNode(o) ⇒ Object



288
289
290
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 288

def visit_OpLShiftEqualNode(o)
  [:op_lshift_equal, *super ]
end

#visit_OpMinusEqualNode(o) ⇒ Object



276
277
278
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 276

def visit_OpMinusEqualNode(o)
  [:op_minus_equal, *super ]
end

#visit_OpModEqualNode(o) ⇒ Object



312
313
314
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 312

def visit_OpModEqualNode(o)
  [:op_mod_equal, *super]
end

#visit_OpMultiplyEqualNode(o) ⇒ Object



280
281
282
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 280

def visit_OpMultiplyEqualNode(o)
  [:op_multiply_equal, *super ]
end

#visit_OpOrEqualNode(o) ⇒ Object



308
309
310
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 308

def visit_OpOrEqualNode(o)
  [:op_or_equal, *super ]
end

#visit_OpPlusEqualNode(o) ⇒ Object



272
273
274
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 272

def visit_OpPlusEqualNode(o)
  [:op_plus_equal, *super ]
end

#visit_OpRShiftEqualNode(o) ⇒ Object



292
293
294
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 292

def visit_OpRShiftEqualNode(o)
  [:op_rshift_equal, *super ]
end

#visit_OpURShiftEqualNode(o) ⇒ Object



296
297
298
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 296

def visit_OpURShiftEqualNode(o)
  [:op_urshift_equal, *super ]
end

#visit_OpXOrEqualNode(o) ⇒ Object



304
305
306
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 304

def visit_OpXOrEqualNode(o)
  [:op_xor_equal, *super ]
end

#visit_ParameterNode(o) ⇒ Object



224
225
226
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 224

def visit_ParameterNode(o)
  [:param, o.value]
end

#visit_PostfixNode(o) ⇒ Object



24
25
26
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 24

def visit_PostfixNode(o)
  [:postfix, super, o.value]
end

#visit_PrefixNode(o) ⇒ Object



28
29
30
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 28

def visit_PrefixNode(o)
  [:prefix, super, o.value]
end

#visit_PropertyNode(o) ⇒ Object



248
249
250
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 248

def visit_PropertyNode(o)
  [ :property ] + 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



212
213
214
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 212

def visit_ResolveNode(o)
  [:resolve, o.value]
end

#visit_ReturnNode(o) ⇒ Object



332
333
334
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 332

def visit_ReturnNode(o)
  o.value ? [:return, super] : [:return]
end

#visit_RightShiftNode(o) ⇒ Object



84
85
86
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 84

def visit_RightShiftNode(o)
  [:rshift, *super]
end

#visit_SetterPropertyNode(o) ⇒ Object



256
257
258
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 256

def visit_SetterPropertyNode(o)
  [ :setter ] + super
end

#visit_StrictEqualNode(o) ⇒ Object



124
125
126
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 124

def visit_StrictEqualNode(o)
  [:strict_equal, *super]
end

#visit_StringNode(o) ⇒ Object



359
360
361
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 359

def visit_StringNode(o)
  [:str, o.value]
end

#visit_SubtractNode(o) ⇒ Object



92
93
94
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 92

def visit_SubtractNode(o)
  [:subtract, *super]
end

#visit_SwitchNode(o) ⇒ Object



176
177
178
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 176

def visit_SwitchNode(o)
  [:switch, *super]
end

#visit_ThisNode(o) ⇒ Object



328
329
330
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 328

def visit_ThisNode(o)
  [:this]
end

#visit_ThrowNode(o) ⇒ Object



240
241
242
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 240

def visit_ThrowNode(o)
  [:throw, super]
end

#visit_TrueNode(o) ⇒ Object



367
368
369
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 367

def visit_TrueNode(o)
  [:true]
end

#visit_TryNode(o) ⇒ Object



200
201
202
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 200

def visit_TryNode(o)
  [ :try, *super]
end

#visit_TypeOfNode(o) ⇒ Object



40
41
42
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 40

def visit_TypeOfNode(o)
  [:typeof, super]
end

#visit_UnaryMinusNode(o) ⇒ Object



48
49
50
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 48

def visit_UnaryMinusNode(o)
  [:u_minus, super]
end

#visit_UnaryPlusNode(o) ⇒ Object



44
45
46
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 44

def visit_UnaryPlusNode(o)
  [:u_plus, super]
end

#visit_UnsignedRightShiftNode(o) ⇒ Object



88
89
90
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 88

def visit_UnsignedRightShiftNode(o)
  [:urshift, *super]
end

#visit_VarDeclNode(o) ⇒ Object



16
17
18
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 16

def visit_VarDeclNode(o)
  [ o.constant? ? :const_decl : :var_decl ] + super(o)
end

#visit_VarStatementNode(o) ⇒ Object



20
21
22
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 20

def visit_VarStatementNode(o)
  [:var, super]
end

#visit_VoidNode(o) ⇒ Object



36
37
38
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 36

def visit_VoidNode(o)
  [:void, super]
end

#visit_WhileNode(o) ⇒ Object



160
161
162
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 160

def visit_WhileNode(o)
  [:while, *super]
end

#visit_WithNode(o) ⇒ Object



164
165
166
# File 'lib/rkelly/visitors/sexp_visitor.rb', line 164

def visit_WithNode(o)
  [:with, *super]
end