class Conflisp::Language

A collection of functions that can evaluate JSON encoded s-expressions

Attributes

registry[R]

Public Class Methods

define(&block) click to toggle source
# File lib/conflisp/language.rb, line 11
def self.define(&block)
  method_registry = DSL.define(&block)
  new(registry: method_registry)
end
new(registry:) click to toggle source
# File lib/conflisp/language.rb, line 16
def initialize(registry:)
  @registry = registry
end

Public Instance Methods

evaluate(expression, globals: {}) click to toggle source
# File lib/conflisp/language.rb, line 20
def evaluate(expression, globals: {})
  evaluator = Evaluator.new(registry: registry, globals: globals)
  evaluator.resolve(expression)
end
extend(&block) click to toggle source
# File lib/conflisp/language.rb, line 25
def extend(&block)
  new_registry = DSL.define(&block)
  self.class.new(registry: registry.merge(new_registry))
end