module Gobstones::Lang::DefinitionCall

Attributes

arguments[R]
name[R]

Public Class Methods

new(name, arguments = []) click to toggle source
# File lib/gobstones/lang/definitions/definition_call.rb, line 11
def initialize(name, arguments = [])
  @name = name
  @arguments = arguments
end

Public Instance Methods

equality_attributes() click to toggle source
# File lib/gobstones/lang/definitions/definition_call.rb, line 16
def equality_attributes
  %i[name arguments]
end
evaluate(context) click to toggle source
# File lib/gobstones/lang/definitions/definition_call.rb, line 20
def evaluate(context)
  evaluated_arguments = arguments.map { |argument| argument.evaluate(context) }
  context.program_context.definition_named(name, ->(definition) {
    definition.evaluate context, evaluated_arguments
  }, -> { raise Runner::DefinitionNotFound, name })
end