Module: StlLoader

Includes:
SchemeStl
Included in:
Tokenizer
Defined in:
lib/lisp/interpreter/core/loader.rb

Overview

Module for loading stl functions and keywords

Constant Summary

Constants included from SchemeStl

SchemeStl::DO_NOT_CALCULATE_FUNCTIONS, SchemeStl::PREDEFINED_FUNCTIONS, SchemeStl::RESERVED_KEYWORDS, SchemeStl::SPECIAL_CHARACTER_FUNCTIONS

Instance Method Summary collapse

Instance Method Details

#init_do_not_calculate_fnObject



23
24
25
# File 'lib/lisp/interpreter/core/loader.rb', line 23

def init_do_not_calculate_fn
  DO_NOT_CALCULATE_FUNCTIONS
end

#init_functionsObject



27
28
29
# File 'lib/lisp/interpreter/core/loader.rb', line 27

def init_functions
  SPECIAL_CHARACTER_FUNCTIONS
end

#init_predefinedObject



31
32
33
# File 'lib/lisp/interpreter/core/loader.rb', line 31

def init_predefined
  PREDEFINED_FUNCTIONS
end

#init_reserved_fnObject



35
36
37
# File 'lib/lisp/interpreter/core/loader.rb', line 35

def init_reserved_fn
  RESERVED_KEYWORDS
end

#initializeObject



13
14
15
16
17
18
19
20
21
# File 'lib/lisp/interpreter/core/loader.rb', line 13

def initialize
  @other = []
  @procs = {}
  @do_not_calculate = init_do_not_calculate_fn
  @reserved = init_reserved_fn
  set_reserved_keywords
  @functions = init_functions.dup
  init_predefined.each { |f| @functions[f] = f }
end

#set_reserved_keywordsObject



39
40
41
42
43
# File 'lib/lisp/interpreter/core/loader.rb', line 39

def set_reserved_keywords
  @reserved.each do |key, value|
    @procs[key.to_s] = value
  end
end