Module: Foxtail::Syntax::Visitor
- Defined in:
- lib/foxtail/syntax/visitor.rb
Overview
Visitor module for traversing AST nodes
Include this module and override the visit_* methods you need. By default, all visit_* methods traverse children automatically. Override a method and omit ‘super` to stop traversal at that node.
Instance Method Summary collapse
- #visit_annotation(node) ⇒ Object
- #visit_attribute(node) ⇒ Object
- #visit_call_arguments(node) ⇒ Object
- #visit_children(node) ⇒ Object
- #visit_comment(node) ⇒ Object
- #visit_function_reference(node) ⇒ Object
- #visit_group_comment(node) ⇒ Object
- #visit_identifier(node) ⇒ Object
- #visit_junk(node) ⇒ Object
- #visit_message(node) ⇒ Object
- #visit_message_reference(node) ⇒ Object
- #visit_named_argument(node) ⇒ Object
- #visit_number_literal(node) ⇒ Object
- #visit_pattern(node) ⇒ Object
- #visit_placeable(node) ⇒ Object
- #visit_resource(node) ⇒ Object
- #visit_resource_comment(node) ⇒ Object
- #visit_select_expression(node) ⇒ Object
- #visit_span(node) ⇒ Object
- #visit_string_literal(node) ⇒ Object
- #visit_term(node) ⇒ Object
- #visit_term_reference(node) ⇒ Object
- #visit_text_element(node) ⇒ Object
- #visit_variable_reference(node) ⇒ Object
- #visit_variant(node) ⇒ Object
Instance Method Details
#visit_annotation(node) ⇒ Object
53 |
# File 'lib/foxtail/syntax/visitor.rb', line 53 def visit_annotation(node) = visit_children(node) |
#visit_attribute(node) ⇒ Object
34 |
# File 'lib/foxtail/syntax/visitor.rb', line 34 def visit_attribute(node) = visit_children(node) |
#visit_call_arguments(node) ⇒ Object
39 |
# File 'lib/foxtail/syntax/visitor.rb', line 39 def visit_call_arguments(node) = visit_children(node) |
#visit_children(node) ⇒ Object
56 57 58 |
# File 'lib/foxtail/syntax/visitor.rb', line 56 def visit_children(node) node.children.each {|child| child&.accept(self) } end |
#visit_comment(node) ⇒ Object
49 |
# File 'lib/foxtail/syntax/visitor.rb', line 49 def visit_comment(node) = visit_children(node) |
#visit_function_reference(node) ⇒ Object
43 |
# File 'lib/foxtail/syntax/visitor.rb', line 43 def visit_function_reference(node) = visit_children(node) |
#visit_group_comment(node) ⇒ Object
50 |
# File 'lib/foxtail/syntax/visitor.rb', line 50 def visit_group_comment(node) = visit_children(node) |
#visit_identifier(node) ⇒ Object
48 |
# File 'lib/foxtail/syntax/visitor.rb', line 48 def visit_identifier(node) = visit_children(node) |
#visit_junk(node) ⇒ Object
52 |
# File 'lib/foxtail/syntax/visitor.rb', line 52 def visit_junk(node) = visit_children(node) |
#visit_message(node) ⇒ Object
32 |
# File 'lib/foxtail/syntax/visitor.rb', line 32 def (node) = visit_children(node) |
#visit_message_reference(node) ⇒ Object
41 |
# File 'lib/foxtail/syntax/visitor.rb', line 41 def (node) = visit_children(node) |
#visit_named_argument(node) ⇒ Object
40 |
# File 'lib/foxtail/syntax/visitor.rb', line 40 def visit_named_argument(node) = visit_children(node) |
#visit_number_literal(node) ⇒ Object
46 |
# File 'lib/foxtail/syntax/visitor.rb', line 46 def visit_number_literal(node) = visit_children(node) |
#visit_pattern(node) ⇒ Object
35 |
# File 'lib/foxtail/syntax/visitor.rb', line 35 def visit_pattern(node) = visit_children(node) |
#visit_placeable(node) ⇒ Object
36 |
# File 'lib/foxtail/syntax/visitor.rb', line 36 def visit_placeable(node) = visit_children(node) |
#visit_resource(node) ⇒ Object
31 |
# File 'lib/foxtail/syntax/visitor.rb', line 31 def visit_resource(node) = visit_children(node) |
#visit_resource_comment(node) ⇒ Object
51 |
# File 'lib/foxtail/syntax/visitor.rb', line 51 def visit_resource_comment(node) = visit_children(node) |
#visit_select_expression(node) ⇒ Object
37 |
# File 'lib/foxtail/syntax/visitor.rb', line 37 def visit_select_expression(node) = visit_children(node) |
#visit_span(node) ⇒ Object
54 |
# File 'lib/foxtail/syntax/visitor.rb', line 54 def visit_span(node) = visit_children(node) |
#visit_string_literal(node) ⇒ Object
45 |
# File 'lib/foxtail/syntax/visitor.rb', line 45 def visit_string_literal(node) = visit_children(node) |
#visit_term(node) ⇒ Object
33 |
# File 'lib/foxtail/syntax/visitor.rb', line 33 def visit_term(node) = visit_children(node) |
#visit_term_reference(node) ⇒ Object
42 |
# File 'lib/foxtail/syntax/visitor.rb', line 42 def visit_term_reference(node) = visit_children(node) |
#visit_text_element(node) ⇒ Object
47 |
# File 'lib/foxtail/syntax/visitor.rb', line 47 def visit_text_element(node) = visit_children(node) |
#visit_variable_reference(node) ⇒ Object
44 |
# File 'lib/foxtail/syntax/visitor.rb', line 44 def visit_variable_reference(node) = visit_children(node) |
#visit_variant(node) ⇒ Object
38 |
# File 'lib/foxtail/syntax/visitor.rb', line 38 def visit_variant(node) = visit_children(node) |