nydp 0.1.15 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/lib/lisp/core-015-documentation.nydp +11 -4
  3. data/lib/lisp/core-040-utils.nydp +3 -0
  4. data/lib/lisp/tests/builtin-tests.nydp +1 -1
  5. data/lib/lisp/tests/foundation-test.nydp +40 -0
  6. data/lib/lisp/tests/time-examples.nydp +21 -0
  7. data/lib/nydp.rb +10 -8
  8. data/lib/nydp/builtin.rb +3 -2
  9. data/lib/nydp/builtin/apply.rb +2 -2
  10. data/lib/nydp/builtin/car.rb +1 -1
  11. data/lib/nydp/builtin/cdr.rb +1 -1
  12. data/lib/nydp/builtin/cdr_set.rb +1 -1
  13. data/lib/nydp/builtin/comment.rb +2 -2
  14. data/lib/nydp/builtin/cons.rb +1 -1
  15. data/lib/nydp/builtin/date.rb +20 -0
  16. data/lib/nydp/builtin/divide.rb +2 -2
  17. data/lib/nydp/builtin/ensuring.rb +3 -3
  18. data/lib/nydp/builtin/error.rb +1 -1
  19. data/lib/nydp/builtin/eval.rb +2 -6
  20. data/lib/nydp/builtin/greater_than.rb +3 -3
  21. data/lib/nydp/builtin/handle_error.rb +2 -2
  22. data/lib/nydp/builtin/hash.rb +14 -20
  23. data/lib/nydp/builtin/inspect.rb +1 -1
  24. data/lib/nydp/builtin/is_equal.rb +10 -5
  25. data/lib/nydp/builtin/less_than.rb +3 -3
  26. data/lib/nydp/builtin/load_tests.rb +3 -7
  27. data/lib/nydp/builtin/millisecs.rb +1 -1
  28. data/lib/nydp/builtin/minus.rb +2 -2
  29. data/lib/nydp/builtin/modulo.rb +1 -1
  30. data/lib/nydp/builtin/parse.rb +3 -6
  31. data/lib/nydp/builtin/parse_in_string.rb +3 -6
  32. data/lib/nydp/builtin/plus.rb +3 -3
  33. data/lib/nydp/builtin/pre_compile.rb +2 -2
  34. data/lib/nydp/builtin/puts.rb +2 -2
  35. data/lib/nydp/builtin/random_string.rb +4 -4
  36. data/lib/nydp/builtin/sort.rb +1 -1
  37. data/lib/nydp/builtin/sqrt.rb +1 -1
  38. data/lib/nydp/builtin/string_match.rb +7 -10
  39. data/lib/nydp/builtin/string_replace.rb +1 -1
  40. data/lib/nydp/builtin/string_split.rb +1 -1
  41. data/lib/nydp/builtin/sym.rb +2 -6
  42. data/lib/nydp/builtin/thread_locals.rb +1 -1
  43. data/lib/nydp/builtin/time.rb +52 -0
  44. data/lib/nydp/builtin/times.rb +2 -2
  45. data/lib/nydp/builtin/to_string.rb +2 -2
  46. data/lib/nydp/builtin/type_of.rb +3 -7
  47. data/lib/nydp/builtin/vm_info.rb +1 -1
  48. data/lib/nydp/compiler.rb +2 -2
  49. data/lib/nydp/cond.rb +1 -1
  50. data/lib/nydp/core.rb +48 -48
  51. data/lib/nydp/function_invocation.rb +1 -1
  52. data/lib/nydp/helper.rb +5 -5
  53. data/lib/nydp/interpreted_function.rb +3 -3
  54. data/lib/nydp/lexical_context.rb +4 -4
  55. data/lib/nydp/lexical_context_builder.rb +2 -2
  56. data/lib/nydp/pair.rb +11 -11
  57. data/lib/nydp/runner.rb +2 -2
  58. data/lib/nydp/symbol.rb +2 -2
  59. data/lib/nydp/symbol_lookup.rb +1 -1
  60. data/lib/nydp/truth.rb +8 -11
  61. data/lib/nydp/version.rb +1 -1
  62. data/lib/nydp/vm.rb +4 -3
  63. data/spec/date_spec.rb +28 -20
  64. data/spec/error_spec.rb +1 -1
  65. data/spec/foreign_hash_spec.rb +12 -12
  66. data/spec/hash_non_hash_behaviour_spec.rb +8 -8
  67. data/spec/hash_spec.rb +14 -14
  68. data/spec/literal_spec.rb +2 -2
  69. data/spec/nydp_spec.rb +6 -6
  70. data/spec/pair_spec.rb +8 -8
  71. data/spec/parser_spec.rb +1 -1
  72. data/spec/spec_helper.rb +1 -1
  73. data/spec/string_atom_spec.rb +9 -9
  74. data/spec/string_token_spec.rb +1 -1
  75. data/spec/symbol_spec.rb +9 -9
  76. data/spec/thread_local_spec.rb +2 -6
  77. data/spec/time_spec.rb +48 -0
  78. metadata +7 -3
  79. data/lib/nydp/builtin/today.rb +0 -18
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::Inspect
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def builtin_invoke vm, args
5
5
  vm.push_arg Nydp::StringAtom.new(args.car.inspect)
@@ -1,9 +1,14 @@
1
1
  class Nydp::Builtin::IsEqual
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
- def builtin_invoke vm, args
5
- vm.push_arg ((args.car == args.cdr.car) ? Nydp.T : Nydp.NIL)
6
- end
4
+ def builtin_invoke_1 vm ; raise "#{name} : requires at least two args" ; end
5
+ def builtin_invoke_2 vm, arg ; raise "#{name} : requires at least two args, got one: (#{arg})" ; end
7
6
 
8
- def name ; "eq?" ; end
7
+ def builtin_invoke_3 vm, a0, a1 ; vm.push_arg ((a0 == a1) ? Nydp::T : Nydp::NIL) ; end
8
+ def builtin_invoke_4 vm, a0, a1, a2 ; vm.push_arg (eq?([a0, a1, a2]) ? Nydp::T : Nydp::NIL) ; end
9
+ def builtin_invoke vm, args ; vm.push_arg (eq?(args.to_a) ? Nydp::T : Nydp::NIL) ; end
10
+
11
+ def _eq? arg, args ; args.all? { |a| a == arg } ; end
12
+ def eq? args ; _eq? args.first, args[1..-1] ; end
13
+ def name ; "eq?" ; end
9
14
  end
@@ -1,12 +1,12 @@
1
1
  class Nydp::Builtin::LessThan
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def builtin_invoke vm, args
5
- vm.push_arg (less_than(args.car, args.cdr) ? Nydp.T : Nydp.NIL)
5
+ vm.push_arg (less_than(args.car, args.cdr) ? Nydp::T : Nydp::NIL)
6
6
  end
7
7
 
8
8
  def less_than arg, args
9
- return true if Nydp.NIL.is? args
9
+ return true if Nydp::NIL.is? args
10
10
  (arg < args.car) && less_than(args.car, args.cdr)
11
11
  end
12
12
 
@@ -1,12 +1,8 @@
1
1
  class Nydp::Builtin::LoadTests
2
- include Nydp::Builtin::Base
3
-
4
- def initialize ns
5
- @ns = ns
6
- end
2
+ include Nydp::Builtin::Base, Singleton
7
3
 
8
4
  def builtin_invoke vm, args
9
- Nydp.loadall vm, @ns, Nydp.testfiles
10
- vm.push_arg Nydp.NIL
5
+ Nydp.loadall vm, vm.ns, Nydp.testfiles
6
+ vm.push_arg Nydp::NIL
11
7
  end
12
8
  end
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::Millisecs
2
- include Nydp::Helper, Nydp::Builtin::Base
2
+ include Nydp::Helper, Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def builtin_invoke vm, args
5
5
  vm.push_arg (Time.now.to_f * 1000).to_i
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::Minus
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def invoke_1 vm ; vm.push_arg 0 ; end
5
5
  def invoke_2 vm, a ; vm.push_arg -a ; end
@@ -11,7 +11,7 @@ class Nydp::Builtin::Minus
11
11
  end
12
12
 
13
13
  def diff args, accum
14
- if Nydp.NIL.is? args
14
+ if Nydp::NIL.is? args
15
15
  accum
16
16
  else
17
17
  diff(args.cdr, (accum - args.car))
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::Modulo
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def invoke_3 vm, a0, a1 ; vm.push_arg(a0 % a1) ; end
5
5
 
@@ -1,15 +1,12 @@
1
1
  class Nydp::Builtin::Parse
2
- include Nydp::Builtin::Base
3
-
4
- def initialize ns
5
- @parser = Nydp::Parser.new(ns)
6
- end
2
+ include Nydp::Builtin::Base, Singleton
7
3
 
8
4
  def builtin_invoke vm, args
5
+ parser = Nydp::Parser.new(vm.ns)
9
6
  tokens = Nydp::Tokeniser.new Nydp::StringReader.new args.car.to_s
10
7
  exprs = []
11
8
  while !tokens.finished
12
- expr = @parser.expression(tokens)
9
+ expr = parser.expression(tokens)
13
10
  exprs << expr unless expr == nil
14
11
  end
15
12
  vm.push_arg Nydp::Pair.from_list exprs
@@ -1,14 +1,11 @@
1
1
  class Nydp::Builtin::ParseInString
2
- include Nydp::Builtin::Base
3
-
4
- def initialize ns
5
- @parser = Nydp::Parser.new(ns)
6
- end
2
+ include Nydp::Builtin::Base, Singleton
7
3
 
8
4
  def builtin_invoke vm, args
5
+ parser = Nydp::Parser.new(vm.ns)
9
6
  parsable = args.car.to_s
10
7
  tokens = Nydp::Tokeniser.new Nydp::StringReader.new parsable
11
- expr = @parser.string(tokens, "", :eof)
8
+ expr = parser.string(tokens, "", :eof)
12
9
  vm.push_arg expr
13
10
  rescue Exception => e
14
11
  new_msg = "parse error: #{e.message.inspect} in\n#{Nydp.indent_text parsable}"
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::Plus
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def builtin_invoke_1 vm ; vm.push_arg 0 ; end
5
5
  def builtin_invoke_2 vm, a ; vm.push_arg a ; end
@@ -9,7 +9,7 @@ class Nydp::Builtin::Plus
9
9
  def builtin_invoke vm, args
10
10
  vm.push_arg case args.car
11
11
  when Nydp::Pair
12
- sum(args, Nydp.NIL)
12
+ sum(args, Nydp::NIL)
13
13
  when String, Nydp::StringAtom
14
14
  sum(args, Nydp::StringAtom.new(""))
15
15
  else
@@ -18,7 +18,7 @@ class Nydp::Builtin::Plus
18
18
  end
19
19
 
20
20
  def sum args, accum
21
- if Nydp.NIL.is? args
21
+ if Nydp::NIL.is? args
22
22
  accum
23
23
  else
24
24
  sum(args.cdr, (accum + args.car))
@@ -1,8 +1,8 @@
1
1
  class Nydp::Builtin::PreCompile
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def builtin_invoke vm, args
5
- raise Nydp:Error.new("pre-compile: expects one arg, got #{args.inspect}") unless Nydp.NIL == args.cdr
5
+ raise Nydp:Error.new("pre-compile: expects one arg, got #{args.inspect}") unless Nydp::NIL == args.cdr
6
6
  vm.push_arg args.car
7
7
  end
8
8
  end
@@ -1,8 +1,8 @@
1
1
  class Nydp::Builtin::Puts
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def builtin_invoke vm, args
5
- if Nydp.NIL.is? args
5
+ if Nydp::NIL.is? args
6
6
  puts
7
7
  else
8
8
  s = args.map { |a| a.to_s }
@@ -1,11 +1,11 @@
1
1
  class Nydp::Builtin::RandomString
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
- @@random_chars = ["A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z","2","3","4","5","6","7","8","9"]
4
+ RANDOM_CHARS = ["A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z","2","3","4","5","6","7","8","9"]
5
5
 
6
6
  def builtin_invoke vm, args
7
- length = args.car unless Nydp.NIL.is?(args)
8
- s = (0...(length || 10)).map { @@random_chars[rand(@@random_chars.size)] }.join
7
+ length = args.car unless Nydp::NIL.is?(args)
8
+ s = (0...(length || 10)).map { RANDOM_CHARS[rand(RANDOM_CHARS.size)] }.join
9
9
  vm.push_arg Nydp::StringAtom.new s
10
10
  end
11
11
  end
@@ -1,6 +1,6 @@
1
1
  module Nydp
2
2
  class Builtin::Sort
3
- include Builtin::Base
3
+ include Builtin::Base, Singleton
4
4
 
5
5
  def builtin_invoke vm, args
6
6
  vm.push_arg Pair.from_list to_array(args.car, []).sort
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::Sqrt
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def builtin_invoke vm, args
5
5
  vm.push_arg Math.sqrt args.car
@@ -1,22 +1,19 @@
1
1
  class Nydp::Builtin::StringMatch
2
- include Nydp::Builtin::Base
3
-
4
- def initialize ns
5
- @match = Nydp::Symbol.mk :match , ns
6
- @captures = Nydp::Symbol.mk :captures, ns
7
- end
2
+ include Nydp::Builtin::Base, Singleton
8
3
 
9
4
  def builtin_invoke vm, args
5
+ kmatch = Nydp::Symbol.mk :match , vm.ns
6
+ kcaptures = Nydp::Symbol.mk :captures, vm.ns
10
7
  target = args.car.to_s
11
8
  pattern = Regexp.new(args.cdr.car.to_s)
12
9
  match = pattern.match target
13
10
 
14
11
  if match
15
- result = Nydp::Hash.new
16
- result[@match] = Nydp::StringAtom.new match.to_s
17
- result[@captures] = Nydp::Pair.from_list match.captures.map { |cap| Nydp::StringAtom.new cap.to_s }
12
+ result = Nydp::Hash.new
13
+ result[kmatch] = Nydp::StringAtom.new match.to_s
14
+ result[kcaptures] = Nydp::Pair.from_list match.captures.map { |cap| Nydp::StringAtom.new cap.to_s }
18
15
  else
19
- result = Nydp.NIL
16
+ result = Nydp::NIL
20
17
  end
21
18
 
22
19
  vm.push_arg result
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::StringReplace
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def builtin_invoke vm, args
5
5
  to_remove = Regexp.new args.car.to_s
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::StringSplit
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def builtin_invoke vm, args
5
5
  target = args.car.to_s
@@ -1,9 +1,5 @@
1
1
  class Nydp::Builtin::Sym
2
- include Nydp::Builtin::Base
3
-
4
- def initialize ns
5
- @ns = ns
6
- end
2
+ include Nydp::Builtin::Base, Singleton
7
3
 
8
4
  def builtin_invoke vm, args
9
5
  arg = args.car
@@ -11,7 +7,7 @@ class Nydp::Builtin::Sym
11
7
  when Nydp::Symbol
12
8
  arg
13
9
  else
14
- Nydp::Symbol.mk arg.to_s.to_sym, @ns
10
+ Nydp::Symbol.mk arg.to_s.to_sym, vm.ns
15
11
  end
16
12
  vm.push_arg val
17
13
  end
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::ThreadLocals
2
- include Nydp::Helper, Nydp::Builtin::Base
2
+ include Nydp::Helper, Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def builtin_invoke vm, args
5
5
  vm.push_arg vm.locals
@@ -0,0 +1,52 @@
1
+
2
+ class Nydp::Builtin::Time
3
+ include Nydp::Helper, Nydp::Builtin::Base, Singleton
4
+
5
+ def builtin_invoke_1 vm
6
+ vm.push_arg ::Time.now
7
+ end
8
+
9
+ # either an offset in seconds from now, or a Date to convert to a time, or a Time to subtract and return offset in seconds from now
10
+ # when Numeric : return now + offset in seconds from now
11
+ # when Nydp::Date : convert date to time
12
+ # when Time : calculate and return now - Time offset in seconds
13
+ def builtin_invoke_2 vm, arg
14
+ case arg
15
+ when Numeric # relative time in seconds
16
+ vm.push_arg(Time.now + arg)
17
+ when Nydp::Date
18
+ vm.push_arg arg.to_ruby.to_time
19
+ when ::Time
20
+ vm.push_arg ::Time.now - arg
21
+ else
22
+ raise Nydp::Error.new "time : expected a number or a date or a time, got #{arg.inspect}"
23
+ end
24
+ end
25
+
26
+ # first arg is a Time
27
+ # if second arg is numeric, add to first arg
28
+ # if second arg is a Time, subtract from first arg
29
+ def builtin_invoke_3 vm, a0, a1
30
+ case a1
31
+ when Numeric # relative time in seconds
32
+ vm.push_arg(a0 + a1)
33
+ when ::Time
34
+ vm.push_arg a0 - a1
35
+ else
36
+ raise Nydp::Error.new "time : expected a number or a date, got #{a1.inspect}"
37
+ end
38
+ end
39
+
40
+ def builtin_invoke vm, args
41
+ # assume ruby Time constructor args y mo d h mi s ms
42
+ y = args.car
43
+ mo = args.cdr.car
44
+ d = args.cdr.cdr.car
45
+ h = args.cdr.cdr.cdr.car if args.size > 3
46
+ mi = args.cdr.cdr.cdr.cdr.car if args.size > 4
47
+ s = args.cdr.cdr.cdr.cdr.cdr.car if args.size > 5
48
+ ms = args.cdr.cdr.cdr.cdr.cdr.cdr.car if args.size > 6
49
+
50
+ vm.push_arg(Time.new(y,mo,d,h,mi,s,ms))
51
+ end
52
+ end
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::Times
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  def invoke_1 vm ; vm.push_arg 1 ; end
5
5
  def invoke_2 vm, a ; vm.push_arg a ; end
@@ -11,7 +11,7 @@ class Nydp::Builtin::Times
11
11
  end
12
12
 
13
13
  def multiply args, accum
14
- if Nydp.NIL.is? args
14
+ if Nydp::NIL.is? args
15
15
  accum
16
16
  else
17
17
  multiply(args.cdr, (accum * args.car))
@@ -1,6 +1,6 @@
1
1
  module Nydp::Builtin
2
2
  class ToString
3
- include Nydp::Builtin::Base
3
+ include Nydp::Builtin::Base, Singleton
4
4
 
5
5
  def builtin_invoke vm, args
6
6
  arg = args.car
@@ -15,7 +15,7 @@ module Nydp::Builtin
15
15
  end
16
16
 
17
17
  class StringLength
18
- include Nydp::Builtin::Base
18
+ include Nydp::Builtin::Base, Singleton
19
19
 
20
20
  def builtin_invoke vm, args
21
21
  arg = args.car
@@ -1,9 +1,5 @@
1
1
  class Nydp::Builtin::TypeOf
2
- include Nydp::Builtin::Base
3
-
4
- def initialize ns
5
- @ns = ns
6
- end
2
+ include Nydp::Builtin::Base, Singleton
7
3
 
8
4
  def builtin_invoke vm, args
9
5
  arg = args.car
@@ -15,8 +11,8 @@ class Nydp::Builtin::TypeOf
15
11
  "ruby/#{arg.class.name}".to_sym
16
12
  end
17
13
 
18
- type = Nydp::Symbol.mk(typename, @ns)
14
+ type = Nydp::Symbol.mk(typename, vm.ns)
19
15
 
20
- vm.push_arg(type || Nydp.NIL)
16
+ vm.push_arg(type || Nydp::NIL)
21
17
  end
22
18
  end
@@ -1,5 +1,5 @@
1
1
  class Nydp::Builtin::VmInfo
2
- include Nydp::Builtin::Base
2
+ include Nydp::Builtin::Base, Singleton
3
3
 
4
4
  VMINFO_NS = { }
5
5
  CONTEXTS = Nydp::Symbol.mk :contexts, VMINFO_NS
data/lib/nydp/compiler.rb CHANGED
@@ -24,11 +24,11 @@ module Nydp
24
24
  end
25
25
 
26
26
  def self.maybe_cons a, b
27
- Nydp.NIL.is?(a) ? b : cons(a, b)
27
+ Nydp::NIL.is?(a) ? b : cons(a, b)
28
28
  end
29
29
 
30
30
  def self.compile_each expr, bindings
31
- if Nydp.NIL.is?(expr)
31
+ if Nydp::NIL.is?(expr)
32
32
  expr
33
33
  elsif pair?(expr)
34
34
  maybe_cons compile(expr.car, bindings), compile_each(expr.cdr, bindings)
data/lib/nydp/cond.rb CHANGED
@@ -8,7 +8,7 @@ module Nydp
8
8
  end
9
9
 
10
10
  def execute vm
11
- truth = !Nydp.NIL.is?(vm.args.pop)
11
+ truth = !Nydp::NIL.is?(vm.args.pop)
12
12
  vm.instructions.push (truth ? when_true : when_false)
13
13
  vm.contexts.push vm.current_context
14
14
  end
data/lib/nydp/core.rb CHANGED
@@ -21,55 +21,55 @@ module Nydp
21
21
  end
22
22
 
23
23
  def setup ns
24
- Symbol.mk(:cons, ns).assign(Nydp::Builtin::Cons.new)
25
- Symbol.mk(:car, ns).assign(Nydp::Builtin::Car.new)
26
- Symbol.mk(:cdr, ns).assign(Nydp::Builtin::Cdr.new)
27
- Symbol.mk(:+, ns).assign(Nydp::Builtin::Plus.new)
28
- Symbol.mk(:-, ns).assign(Nydp::Builtin::Minus.new)
29
- Symbol.mk(:*, ns).assign(Nydp::Builtin::Times.new)
30
- Symbol.mk(:/, ns).assign(Nydp::Builtin::Divide.new)
31
- Symbol.mk(:>, ns).assign(Nydp::Builtin::GreaterThan.new)
32
- Symbol.mk(:<, ns).assign(Nydp::Builtin::LessThan.new)
33
- Symbol.mk(:mod, ns).assign(Nydp::Builtin::Modulo.new)
34
- Symbol.mk(:eval, ns).assign(Nydp::Builtin::Eval.new(ns))
24
+ Symbol.mk(:cons, ns).assign(Nydp::Builtin::Cons.instance)
25
+ Symbol.mk(:car, ns).assign(Nydp::Builtin::Car.instance)
26
+ Symbol.mk(:cdr, ns).assign(Nydp::Builtin::Cdr.instance)
27
+ Symbol.mk(:+, ns).assign(Nydp::Builtin::Plus.instance)
28
+ Symbol.mk(:-, ns).assign(Nydp::Builtin::Minus.instance)
29
+ Symbol.mk(:*, ns).assign(Nydp::Builtin::Times.instance)
30
+ Symbol.mk(:/, ns).assign(Nydp::Builtin::Divide.instance)
31
+ Symbol.mk(:>, ns).assign(Nydp::Builtin::GreaterThan.instance)
32
+ Symbol.mk(:<, ns).assign(Nydp::Builtin::LessThan.instance)
33
+ Symbol.mk(:mod, ns).assign(Nydp::Builtin::Modulo.instance)
34
+ Symbol.mk(:eval, ns).assign(Nydp::Builtin::Eval.instance)
35
35
  Symbol.mk(:false, ns).assign(false)
36
- Symbol.mk(:hash, ns).assign(Nydp::Builtin::Hash.new)
37
- Symbol.mk(:apply, ns).assign(Nydp::Builtin::Apply.new)
38
- Symbol.mk(:date, ns).assign(Nydp::Builtin::Date.new)
39
- Symbol.mk(:error, ns).assign(Nydp::Builtin::Error.new)
40
- Symbol.mk(:parse, ns).assign(Nydp::Builtin::Parse.new(ns))
41
- Symbol.mk(:p, ns).assign(Nydp::Builtin::Puts.new)
42
- Symbol.mk(:PI, ns).assign Literal.new(3.1415)
43
- Symbol.mk(:nil, ns).assign Nydp.NIL
44
- Symbol.mk(:sort, ns).assign Nydp::Builtin::Sort.new
45
- Symbol.mk(:sqrt, ns).assign Nydp::Builtin::Sqrt.new
46
- Symbol.mk(:t, ns).assign Nydp.T
47
- Symbol.mk(:sym, ns).assign Nydp::Builtin::Sym.new(ns)
48
- Symbol.mk(:ensuring, ns).assign(Nydp::Builtin::Ensuring.new)
49
- Symbol.mk(:inspect, ns).assign(Nydp::Builtin::Inspect.new)
50
- Symbol.mk(:comment, ns).assign(Nydp::Builtin::Comment.new)
51
- Symbol.mk(:millisecs, ns).assign(Nydp::Builtin::Millisecs.new)
52
- Symbol.mk("load-tests", ns).assign(Nydp::Builtin::LoadTests.new(ns))
53
- Symbol.mk("handle-error" , ns).assign(Nydp::Builtin::HandleError.new)
54
- Symbol.mk("parse-in-string", ns).assign(Nydp::Builtin::ParseInString.new(ns))
55
- Symbol.mk("random-string" , ns).assign(Nydp::Builtin::RandomString.new)
56
- Symbol.mk("to-string" , ns).assign(Nydp::Builtin::ToString.new)
57
- Symbol.mk("string-length" , ns).assign(Nydp::Builtin::StringLength.new)
58
- Symbol.mk("string-replace" , ns).assign(Nydp::Builtin::StringReplace.new)
59
- Symbol.mk("string-match" , ns).assign(Nydp::Builtin::StringMatch.new(ns))
60
- Symbol.mk("string-split" , ns).assign(Nydp::Builtin::StringSplit.new )
61
- Symbol.mk("today" , ns).assign(Nydp::Builtin::Today.new)
62
- Symbol.mk("thread-locals" , ns).assign(Nydp::Builtin::ThreadLocals.new)
63
- Symbol.mk("type-of", ns).assign(Nydp::Builtin::TypeOf.new(ns))
64
- Symbol.mk(:"eq?", ns).assign(Nydp::Builtin::IsEqual.new)
65
- Symbol.mk(:"cdr-set", ns).assign(Nydp::Builtin::CdrSet.new)
66
- Symbol.mk(:"hash-get", ns).assign(Nydp::Builtin::HashGet.new ns)
67
- Symbol.mk(:"hash-set", ns).assign(Nydp::Builtin::HashSet.new)
68
- Symbol.mk(:"hash-keys", ns).assign(Nydp::Builtin::HashKeys.new(ns))
69
- Symbol.mk(:"hash-key?", ns).assign(Nydp::Builtin::HashKeyPresent.new(ns))
70
- Symbol.mk(:"hash-merge", ns).assign(Nydp::Builtin::HashMerge.new)
71
- Symbol.mk(:"vm-info", ns).assign Nydp::Builtin::VmInfo.new
72
- Symbol.mk(:"pre-compile", ns).assign Nydp::Builtin::PreCompile.new
36
+ Symbol.mk(:hash, ns).assign(Nydp::Builtin::Hash.instance)
37
+ Symbol.mk(:apply, ns).assign(Nydp::Builtin::Apply.instance)
38
+ Symbol.mk(:date, ns).assign(Nydp::Builtin::Date.instance)
39
+ Symbol.mk(:error, ns).assign(Nydp::Builtin::Error.instance)
40
+ Symbol.mk(:parse, ns).assign(Nydp::Builtin::Parse.instance)
41
+ Symbol.mk(:p, ns).assign(Nydp::Builtin::Puts.instance)
42
+ Symbol.mk(:PI, ns).assign 3.1415
43
+ Symbol.mk(:nil, ns).assign Nydp::NIL
44
+ Symbol.mk(:sort, ns).assign Nydp::Builtin::Sort.instance
45
+ Symbol.mk(:sqrt, ns).assign Nydp::Builtin::Sqrt.instance
46
+ Symbol.mk(:t, ns).assign Nydp::T
47
+ Symbol.mk(:sym, ns).assign Nydp::Builtin::Sym.instance
48
+ Symbol.mk(:ensuring, ns).assign(Nydp::Builtin::Ensuring.instance)
49
+ Symbol.mk(:inspect, ns).assign(Nydp::Builtin::Inspect.instance)
50
+ Symbol.mk(:comment, ns).assign(Nydp::Builtin::Comment.instance)
51
+ Symbol.mk(:millisecs, ns).assign(Nydp::Builtin::Millisecs.instance)
52
+ Symbol.mk("load-tests", ns).assign(Nydp::Builtin::LoadTests.instance)
53
+ Symbol.mk("handle-error" , ns).assign(Nydp::Builtin::HandleError.instance)
54
+ Symbol.mk("parse-in-string", ns).assign(Nydp::Builtin::ParseInString.instance)
55
+ Symbol.mk("random-string" , ns).assign(Nydp::Builtin::RandomString.instance)
56
+ Symbol.mk("to-string" , ns).assign(Nydp::Builtin::ToString.instance)
57
+ Symbol.mk("string-length" , ns).assign(Nydp::Builtin::StringLength.instance)
58
+ Symbol.mk("string-replace" , ns).assign(Nydp::Builtin::StringReplace.instance)
59
+ Symbol.mk("string-match" , ns).assign(Nydp::Builtin::StringMatch.instance)
60
+ Symbol.mk("string-split" , ns).assign(Nydp::Builtin::StringSplit.instance)
61
+ Symbol.mk("time" , ns).assign(Nydp::Builtin::Time.instance)
62
+ Symbol.mk("thread-locals" , ns).assign(Nydp::Builtin::ThreadLocals.instance)
63
+ Symbol.mk("type-of", ns).assign(Nydp::Builtin::TypeOf.instance)
64
+ Symbol.mk(:"eq?", ns).assign(Nydp::Builtin::IsEqual.instance)
65
+ Symbol.mk(:"cdr-set", ns).assign(Nydp::Builtin::CdrSet.instance)
66
+ Symbol.mk(:"hash-get", ns).assign(Nydp::Builtin::HashGet.instance)
67
+ Symbol.mk(:"hash-set", ns).assign(Nydp::Builtin::HashSet.instance)
68
+ Symbol.mk(:"hash-keys", ns).assign(Nydp::Builtin::HashKeys.instance)
69
+ Symbol.mk(:"hash-key?", ns).assign(Nydp::Builtin::HashKeyPresent.instance)
70
+ Symbol.mk(:"hash-merge", ns).assign(Nydp::Builtin::HashMerge.instance)
71
+ Symbol.mk(:"vm-info", ns).assign Nydp::Builtin::VmInfo.instance
72
+ Symbol.mk(:"pre-compile", ns).assign Nydp::Builtin::PreCompile.instance
73
73
  end
74
74
  end
75
75
  end