nydp 0.1.15 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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