Module: Lispcalc

Defined in:
lib/lispcalc.rb,
lib/lispcalc/lexer.rb,
lib/lispcalc/errors.rb,
lib/lispcalc/parser.rb,
lib/lispcalc/context.rb,
lib/lispcalc/version.rb,
lib/lispcalc/functions.rb,
lib/lispcalc/interpreter.rb

Defined Under Namespace

Classes: Context, ContextError, Functions, Interpreter, Lexer, Parser, SyntaxError, UnknownFormError, UnknownFunctionError, UnknownTokenError

Constant Summary collapse

VERSION =
'0.1.0'.freeze

Class Method Summary collapse

Class Method Details

.eval(input, ctx = Context.new) ⇒ Object



12
13
14
15
16
# File 'lib/lispcalc.rb', line 12

def eval(input, ctx = Context.new)
  tokens = Lexer.tokenize(input)
  forms = Parser.new(tokens).parse
  Interpreter.new(ctx).eval(forms)
end