unless defined?(SCRIPT_LINES__) SCRIPT_LINES__ = {} end ast_happier = TracePoint.new(:call) do |tp| SCRIPT_LINES__['(irb)'] = tp.binding.local_variable_get(:statements).lines end ast_happier.enable(target: IRB::WorkSpace.instance_method(:evaluate)) % irb irb(main):001:0> pp RubyVM::AbstractSyntaxTree.of(-> { puts :hi }) (SCOPE@1:35-1:48 tbl: [] args: (ARGS@1:35-1:35 pre_num: 0 pre_init: nil opt: n