class JMESPath::Nodes::Function

def self.create(name, children, options = {})

def self.create(name, children, options = {})
  if (type = FUNCTIONS[name])
    type.new(children, options)
  else
    raise Errors::UnknownFunctionError, "unknown function #{name}()"
  end
end

def call(_args)

def call(_args)
  nil
end

def initialize(children, options = {})

def initialize(children, options = {})
  @children = children
  @options = options
  @disable_visit_errors = @options[:disable_visit_errors]
end

def maybe_raise(error_type, message)

def maybe_raise(error_type, message)
  raise error_type, message unless @disable_visit_errors
end

def optimize

def optimize
  self.class.new(@children.map(&:optimize), @options)
end

def visit(value)

def visit(value)
  call(@children.map { |child| child.visit(value) })
end