class SyntaxTree::Parser

def on_defined(value)

on_defined: (untyped value) -> Defined
:call-seq:
def on_defined(value)
  beginning = consume_keyword(:defined?)
  ending = value
  range = beginning.location.end_char...value.location.start_char
  if source[range].include?("(")
    consume_token(LParen)
    ending = consume_token(RParen)
  end
  Defined.new(
    value: value,
    location: beginning.location.to(ending.location)
  )
end