class AdLint::Cpp::SyntaxTreeMulticastVisitor
Private Class Methods
def_visitor_method(node_name)
click to toggle source
# File lib/adlint/cpp/syntax.rb, line 1202 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/cpp/syntax.rb, line 1256 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