class AdLint::Cc1::SyntaxTreeMulticastVisitor

Private Class Methods

def_visitor_method(node_name) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 5141
    def self.def_visitor_method(node_name)
      class_eval <<-EOS
        define_method("visit_#{node_name}") do |*args|
          visit_with_notifying(__method__, args.first) { super(args.first) }
        end
      EOS
    end

Private Instance Methods

visit_with_notifying(caller_method, node) { || ... } click to toggle source
# File lib/adlint/cc1/syntax.rb, line 5247
def visit_with_notifying(caller_method, node, &block)
  suffix = caller_method.to_s.sub(/\Avisit_/, "")
  __send__("enter_#{suffix}").invoke(node)
  yield
  __send__("leave_#{suffix}").invoke(node)
end