class RD::Visitor

Constants

SYSTEM_NAME
SYSTEM_VERSION
VERSION

Public Class Methods

define_visit_Nonterminal(element_type) click to toggle source
# File lib/rd/visitor.rb, line 25
    def Visitor.define_visit_Nonterminal(element_type)
      eval <<-END_OF_EVAL
      def visit_#{element_type.id2name}(element)
        apply_to_#{element_type.id2name}(element, visit_children(element))
      end
      END_OF_EVAL
    end
define_visit_Terminal(element_type) click to toggle source
# File lib/rd/visitor.rb, line 33
    def Visitor.define_visit_Terminal(element_type)
      eval <<-END_OF_EVAL
      def visit_#{element_type.id2name}(element)
        apply_to_#{element_type.id2name}(element)
      end
      END_OF_EVAL
    end
version() click to toggle source
# File lib/rd/visitor.rb, line 9
def Visitor.version
  VERSION
end

Public Instance Methods

visit(tree) click to toggle source
# File lib/rd/visitor.rb, line 13
def visit(tree)
  tree.accept(self)
end
visit_DescListItem(element) click to toggle source
# File lib/rd/visitor.rb, line 55
def visit_DescListItem(element)
  term = element.term.accept(self)
  apply_to_DescListItem(element, term, visit_children(element))
end
visit_MethodListItem(element) click to toggle source
# File lib/rd/visitor.rb, line 62
def visit_MethodListItem(element)
  term = element.term.accept(self)
  apply_to_MethodListItem(element, term, visit_children(element))
end
visit_Reference(element) click to toggle source
# File lib/rd/visitor.rb, line 77
def visit_Reference(element)
  children = visit_children(element)
  begin
    element.result_of_apply_method_of(self, children)
  rescue NameError
    apply_to_Reference(element, children)
  end
end
visit_children(element) click to toggle source
# File lib/rd/visitor.rb, line 17
def visit_children(element)
  ret = []
  element.each_child do |i|
    ret.push(i.accept(self))
  end
  ret
end