Class: SyntaxTree::Index::ParserBackend::IndexVisitor
Instance Attribute Summary collapse
Instance Method Summary
collapse
#visit, #visit_all, #visit_child_nodes, visit_method, visit_methods
Constructor Details
Returns a new instance of IndexVisitor.
254
255
256
257
258
|
# File 'lib/syntax_tree/index.rb', line 254
def initialize
@results = []
@nesting = []
@statements = nil
end
|
Instance Attribute Details
#nesting ⇒ Object
Returns the value of attribute nesting.
252
253
254
|
# File 'lib/syntax_tree/index.rb', line 252
def nesting
@nesting
end
|
#results ⇒ Object
Returns the value of attribute results.
252
253
254
|
# File 'lib/syntax_tree/index.rb', line 252
def results
@results
end
|
#statements ⇒ Object
Returns the value of attribute statements.
252
253
254
|
# File 'lib/syntax_tree/index.rb', line 252
def statements
@statements
end
|
Instance Method Details
#visit_class(node) ⇒ Object
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
|
# File 'lib/syntax_tree/index.rb', line 260
def visit_class(node)
name = visit(node.constant).to_sym
location =
Location.new(node.location.start_line, node.location.start_column)
results << ClassDefinition.new(
nesting.dup,
name,
location,
(node)
)
nesting << name
super
nesting.pop
end
|
#visit_const_ref(node) ⇒ Object
277
278
279
|
# File 'lib/syntax_tree/index.rb', line 277
def visit_const_ref(node)
node.constant.value
end
|
#visit_def(node) ⇒ Object
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
|
# File 'lib/syntax_tree/index.rb', line 281
def visit_def(node)
name = node.name.value.to_sym
location =
Location.new(node.location.start_line, node.location.start_column)
results << if node.target.nil?
MethodDefinition.new(
nesting.dup,
name,
location,
(node)
)
else
SingletonMethodDefinition.new(
nesting.dup,
name,
location,
(node)
)
end
end
|
#visit_module(node) ⇒ Object
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
|
# File 'lib/syntax_tree/index.rb', line 303
def visit_module(node)
name = visit(node.constant).to_sym
location =
Location.new(node.location.start_line, node.location.start_column)
results << ModuleDefinition.new(
nesting.dup,
name,
location,
(node)
)
nesting << name
super
nesting.pop
end
|
#visit_program(node) ⇒ Object
320
321
322
323
|
# File 'lib/syntax_tree/index.rb', line 320
def visit_program(node)
super
results
end
|
#visit_statements(node) ⇒ Object
325
326
327
328
|
# File 'lib/syntax_tree/index.rb', line 325
def visit_statements(node)
@statements = node
super
end
|