class Byebug::EvalCommand

def description

def description
  %{(p|e[val]) expression
    Evaluate expression and print its value
    * NOTE - unknown input is automatically evaluated, to turn this off
    use 'set noautoeval'}
end

def execute

def execute
  expr = @match ? @match.post_match : @input
  run_with_binding do |b|
    if Setting[:stack_on_error]
      print "#{bb_eval(expr, b).inspect}\n"
    else
      print "#{bb_warning_eval(expr, b).inspect}\n"
    end
  end
rescue
  print "#{$!.class} Exception: #{$!.message}\n"
end

def match(input)

def match(input)
  @input = input
  super
end

def names

def names
  %w(p eval)
end

def regexp

def regexp
  /^\s* (p|e(?:val)?)\s+/x
end