17 lines
384 B
Ruby
17 lines
384 B
Ruby
|
module RKelly
|
||
|
module Visitors
|
||
|
class RealSexpVisitor < Visitor
|
||
|
ALL_NODES.each do |type|
|
||
|
eval <<-RUBY
|
||
|
def visit_#{type}Node(o)
|
||
|
sexp = s(:#{type.scan(/[A-Z][a-z]+/).join('_').downcase}, *super(o))
|
||
|
sexp.line = o.line if o.line
|
||
|
sexp.file = o.filename
|
||
|
sexp
|
||
|
end
|
||
|
RUBY
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|