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.
- checksums.yaml +4 -4
- data/lib/lisp/core-015-documentation.nydp +11 -4
- data/lib/lisp/core-040-utils.nydp +3 -0
- data/lib/lisp/tests/builtin-tests.nydp +1 -1
- data/lib/lisp/tests/foundation-test.nydp +40 -0
- data/lib/lisp/tests/time-examples.nydp +21 -0
- data/lib/nydp.rb +10 -8
- data/lib/nydp/builtin.rb +3 -2
- data/lib/nydp/builtin/apply.rb +2 -2
- data/lib/nydp/builtin/car.rb +1 -1
- data/lib/nydp/builtin/cdr.rb +1 -1
- data/lib/nydp/builtin/cdr_set.rb +1 -1
- data/lib/nydp/builtin/comment.rb +2 -2
- data/lib/nydp/builtin/cons.rb +1 -1
- data/lib/nydp/builtin/date.rb +20 -0
- data/lib/nydp/builtin/divide.rb +2 -2
- data/lib/nydp/builtin/ensuring.rb +3 -3
- data/lib/nydp/builtin/error.rb +1 -1
- data/lib/nydp/builtin/eval.rb +2 -6
- data/lib/nydp/builtin/greater_than.rb +3 -3
- data/lib/nydp/builtin/handle_error.rb +2 -2
- data/lib/nydp/builtin/hash.rb +14 -20
- data/lib/nydp/builtin/inspect.rb +1 -1
- data/lib/nydp/builtin/is_equal.rb +10 -5
- data/lib/nydp/builtin/less_than.rb +3 -3
- data/lib/nydp/builtin/load_tests.rb +3 -7
- data/lib/nydp/builtin/millisecs.rb +1 -1
- data/lib/nydp/builtin/minus.rb +2 -2
- data/lib/nydp/builtin/modulo.rb +1 -1
- data/lib/nydp/builtin/parse.rb +3 -6
- data/lib/nydp/builtin/parse_in_string.rb +3 -6
- data/lib/nydp/builtin/plus.rb +3 -3
- data/lib/nydp/builtin/pre_compile.rb +2 -2
- data/lib/nydp/builtin/puts.rb +2 -2
- data/lib/nydp/builtin/random_string.rb +4 -4
- data/lib/nydp/builtin/sort.rb +1 -1
- data/lib/nydp/builtin/sqrt.rb +1 -1
- data/lib/nydp/builtin/string_match.rb +7 -10
- data/lib/nydp/builtin/string_replace.rb +1 -1
- data/lib/nydp/builtin/string_split.rb +1 -1
- data/lib/nydp/builtin/sym.rb +2 -6
- data/lib/nydp/builtin/thread_locals.rb +1 -1
- data/lib/nydp/builtin/time.rb +52 -0
- data/lib/nydp/builtin/times.rb +2 -2
- data/lib/nydp/builtin/to_string.rb +2 -2
- data/lib/nydp/builtin/type_of.rb +3 -7
- data/lib/nydp/builtin/vm_info.rb +1 -1
- data/lib/nydp/compiler.rb +2 -2
- data/lib/nydp/cond.rb +1 -1
- data/lib/nydp/core.rb +48 -48
- data/lib/nydp/function_invocation.rb +1 -1
- data/lib/nydp/helper.rb +5 -5
- data/lib/nydp/interpreted_function.rb +3 -3
- data/lib/nydp/lexical_context.rb +4 -4
- data/lib/nydp/lexical_context_builder.rb +2 -2
- data/lib/nydp/pair.rb +11 -11
- data/lib/nydp/runner.rb +2 -2
- data/lib/nydp/symbol.rb +2 -2
- data/lib/nydp/symbol_lookup.rb +1 -1
- data/lib/nydp/truth.rb +8 -11
- data/lib/nydp/version.rb +1 -1
- data/lib/nydp/vm.rb +4 -3
- data/spec/date_spec.rb +28 -20
- data/spec/error_spec.rb +1 -1
- data/spec/foreign_hash_spec.rb +12 -12
- data/spec/hash_non_hash_behaviour_spec.rb +8 -8
- data/spec/hash_spec.rb +14 -14
- data/spec/literal_spec.rb +2 -2
- data/spec/nydp_spec.rb +6 -6
- data/spec/pair_spec.rb +8 -8
- data/spec/parser_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- data/spec/string_atom_spec.rb +9 -9
- data/spec/string_token_spec.rb +1 -1
- data/spec/symbol_spec.rb +9 -9
- data/spec/thread_local_spec.rb +2 -6
- data/spec/time_spec.rb +48 -0
- metadata +7 -3
- data/lib/nydp/builtin/today.rb +0 -18
data/spec/foreign_hash_spec.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe Nydp::Hash do
|
4
|
-
let(:vm) { Nydp::VM.new }
|
4
|
+
let(:vm) { Nydp::VM.new(ns) }
|
5
5
|
|
6
6
|
describe "foreign hashes" do
|
7
7
|
let(:ahash) { Hash.new }
|
@@ -11,7 +11,7 @@ describe Nydp::Hash do
|
|
11
11
|
k = Nydp::Symbol.mk "keysym", ns
|
12
12
|
v = Nydp::StringAtom.new "foobar"
|
13
13
|
args = pair_list [ahash, k, v]
|
14
|
-
Nydp::Builtin::HashSet.
|
14
|
+
Nydp::Builtin::HashSet.instance.invoke vm, args
|
15
15
|
|
16
16
|
expect(ahash[:keysym]). to eq "foobar"
|
17
17
|
expect(ahash[:keysym].class).to eq String
|
@@ -27,7 +27,7 @@ describe Nydp::Hash do
|
|
27
27
|
k = sym("keysym")
|
28
28
|
args = [ ahash, k ]
|
29
29
|
|
30
|
-
Nydp::Builtin::HashGet.
|
30
|
+
Nydp::Builtin::HashGet.instance.invoke vm, pair_list(args)
|
31
31
|
|
32
32
|
expect(vm.args.pop).to eq Nydp::StringAtom.new("avalue")
|
33
33
|
end
|
@@ -36,9 +36,9 @@ describe Nydp::Hash do
|
|
36
36
|
k = sym("keysym")
|
37
37
|
args = [ ahash, k ]
|
38
38
|
|
39
|
-
Nydp::Builtin::HashGet.
|
39
|
+
Nydp::Builtin::HashGet.instance.invoke vm, pair_list(args)
|
40
40
|
|
41
|
-
expect(vm.args.pop).to eq Nydp
|
41
|
+
expect(vm.args.pop).to eq Nydp::NIL
|
42
42
|
end
|
43
43
|
|
44
44
|
it "converts ruby true to nydp value" do
|
@@ -46,9 +46,9 @@ describe Nydp::Hash do
|
|
46
46
|
k = sym("keysym")
|
47
47
|
args = [ ahash, k ]
|
48
48
|
|
49
|
-
Nydp::Builtin::HashGet.
|
49
|
+
Nydp::Builtin::HashGet.instance.invoke vm, pair_list(args)
|
50
50
|
|
51
|
-
expect(vm.args.pop).to eq Nydp
|
51
|
+
expect(vm.args.pop).to eq Nydp::T
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -58,18 +58,18 @@ describe Nydp::Hash do
|
|
58
58
|
k = sym("simon")
|
59
59
|
args = [ ahash, k ]
|
60
60
|
|
61
|
-
Nydp::Builtin::HashKeyPresent.
|
61
|
+
Nydp::Builtin::HashKeyPresent.instance.invoke vm, pair_list(args)
|
62
62
|
|
63
|
-
expect(vm.args.pop).to eq Nydp
|
63
|
+
expect(vm.args.pop).to eq Nydp::T
|
64
64
|
end
|
65
65
|
|
66
66
|
it "returns nil when key is absent" do
|
67
67
|
k = sym("simon")
|
68
68
|
args = [ ahash, k ]
|
69
69
|
|
70
|
-
Nydp::Builtin::HashKeyPresent.
|
70
|
+
Nydp::Builtin::HashKeyPresent.instance.invoke vm, pair_list(args)
|
71
71
|
|
72
|
-
expect(vm.args.pop).to eq Nydp
|
72
|
+
expect(vm.args.pop).to eq Nydp::NIL
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
@@ -79,7 +79,7 @@ describe Nydp::Hash do
|
|
79
79
|
ahash[:k1] = 84
|
80
80
|
args = [ahash]
|
81
81
|
|
82
|
-
Nydp::Builtin::HashKeys.
|
82
|
+
Nydp::Builtin::HashKeys.instance.invoke vm, pair_list(args)
|
83
83
|
|
84
84
|
expect(vm.args.pop).to eq pair_list [sym("k0"), sym("k1")]
|
85
85
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe Nydp::Hash do
|
4
|
-
let(:vm) { Nydp::VM.new }
|
4
|
+
let(:vm) { Nydp::VM.new(ns) }
|
5
5
|
|
6
6
|
describe "friendly non-hashes" do
|
7
7
|
let(:ahash) { TestThing.new 123, "hello there", "private" }
|
@@ -11,7 +11,7 @@ describe Nydp::Hash do
|
|
11
11
|
k = Nydp::Symbol.mk "a", ns
|
12
12
|
args = [ ahash, k ]
|
13
13
|
|
14
|
-
Nydp::Builtin::HashGet.
|
14
|
+
Nydp::Builtin::HashGet.instance.invoke vm, pair_list(args)
|
15
15
|
expect(vm.args.pop).to eq 123
|
16
16
|
end
|
17
17
|
|
@@ -19,7 +19,7 @@ describe Nydp::Hash do
|
|
19
19
|
k = Nydp::Symbol.mk "b", ns
|
20
20
|
args = [ ahash, k ]
|
21
21
|
|
22
|
-
Nydp::Builtin::HashGet.
|
22
|
+
Nydp::Builtin::HashGet.instance.invoke vm, pair_list(args)
|
23
23
|
expect(vm.args.pop).to eq Nydp::StringAtom.new("hello there")
|
24
24
|
end
|
25
25
|
|
@@ -27,7 +27,7 @@ describe Nydp::Hash do
|
|
27
27
|
k = Nydp::StringAtom.new "b"
|
28
28
|
args = [ ahash, k ]
|
29
29
|
|
30
|
-
Nydp::Builtin::HashGet.
|
30
|
+
Nydp::Builtin::HashGet.instance.invoke vm, pair_list(args)
|
31
31
|
expect(vm.args.pop).to eq Nydp::StringAtom.new("hello there")
|
32
32
|
end
|
33
33
|
|
@@ -35,8 +35,8 @@ describe Nydp::Hash do
|
|
35
35
|
k = Nydp::Symbol.mk "c", ns
|
36
36
|
args = [ ahash, k ]
|
37
37
|
|
38
|
-
Nydp::Builtin::HashGet.
|
39
|
-
expect(vm.args.pop).to eq Nydp
|
38
|
+
Nydp::Builtin::HashGet.instance.invoke vm, pair_list(args)
|
39
|
+
expect(vm.args.pop).to eq Nydp::NIL
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -51,7 +51,7 @@ describe Nydp::Hash do
|
|
51
51
|
args = pair_list [ahash, k, v]
|
52
52
|
|
53
53
|
begin
|
54
|
-
Nydp::Builtin::HashSet.
|
54
|
+
Nydp::Builtin::HashSet.instance.invoke vm, args
|
55
55
|
rescue Exception => e
|
56
56
|
error = e
|
57
57
|
end
|
@@ -70,7 +70,7 @@ raised
|
|
70
70
|
args = [ ahash, k ]
|
71
71
|
|
72
72
|
begin
|
73
|
-
Nydp::Builtin::HashGet.
|
73
|
+
Nydp::Builtin::HashGet.instance.invoke vm, pair_list(args)
|
74
74
|
rescue Exception => e
|
75
75
|
error = e
|
76
76
|
end
|
data/spec/hash_spec.rb
CHANGED
@@ -15,7 +15,7 @@ describe Nydp::Hash do
|
|
15
15
|
def _nydp_safe_methods ; %i{ a b } ; end
|
16
16
|
end
|
17
17
|
|
18
|
-
let(:vm) { Nydp::VM.new }
|
18
|
+
let(:vm) { Nydp::VM.new(ns) }
|
19
19
|
|
20
20
|
describe "#to_ruby" do
|
21
21
|
it "converts ruby symbol key to nydp symbol key" do
|
@@ -62,7 +62,7 @@ describe Nydp::Hash do
|
|
62
62
|
describe "nydp hashes" do
|
63
63
|
describe "new hash" do
|
64
64
|
it "returns a new Nydp hash" do
|
65
|
-
Nydp::Builtin::Hash.
|
65
|
+
Nydp::Builtin::Hash.instance.invoke vm, Nydp::NIL
|
66
66
|
h = vm.args.pop
|
67
67
|
expect(h).to be_a Nydp::Hash
|
68
68
|
end
|
@@ -74,7 +74,7 @@ describe Nydp::Hash do
|
|
74
74
|
k = sym "keysym"
|
75
75
|
v = 42
|
76
76
|
args = Nydp::Pair.from_list([h, k, v])
|
77
|
-
Nydp::Builtin::HashSet.
|
77
|
+
Nydp::Builtin::HashSet.instance.invoke vm, args
|
78
78
|
|
79
79
|
expect(h.keys). to eq [k]
|
80
80
|
expect(h[k]). to eq v
|
@@ -90,7 +90,7 @@ describe Nydp::Hash do
|
|
90
90
|
h[k] = v
|
91
91
|
|
92
92
|
args = Nydp::Pair.from_list([h, k])
|
93
|
-
Nydp::Builtin::HashGet.
|
93
|
+
Nydp::Builtin::HashGet.instance.invoke vm, args
|
94
94
|
expect(vm.args.pop).to eq v
|
95
95
|
end
|
96
96
|
end
|
@@ -102,18 +102,18 @@ describe Nydp::Hash do
|
|
102
102
|
v = 42
|
103
103
|
h[k] = v
|
104
104
|
|
105
|
-
Nydp::Builtin::HashKeyPresent.
|
105
|
+
Nydp::Builtin::HashKeyPresent.instance.invoke vm, pair_list([h, k])
|
106
106
|
|
107
|
-
expect(vm.args.pop).to eq Nydp
|
107
|
+
expect(vm.args.pop).to eq Nydp::T
|
108
108
|
end
|
109
109
|
|
110
110
|
it "returns nil when key is absent" do
|
111
111
|
h = Nydp::Hash.new
|
112
112
|
k = sym "benjamin"
|
113
113
|
|
114
|
-
Nydp::Builtin::HashKeyPresent.
|
114
|
+
Nydp::Builtin::HashKeyPresent.instance.invoke vm, pair_list([h, k])
|
115
115
|
|
116
|
-
expect(vm.args.pop).to eq Nydp
|
116
|
+
expect(vm.args.pop).to eq Nydp::NIL
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
@@ -124,23 +124,23 @@ describe Nydp::Hash do
|
|
124
124
|
h[sym "k1"] = 84
|
125
125
|
|
126
126
|
args = Nydp::Pair.from_list([h])
|
127
|
-
Nydp::Builtin::HashKeys.
|
127
|
+
Nydp::Builtin::HashKeys.instance.invoke vm, args
|
128
128
|
expect(vm.args.pop).to eq pair_list [sym("k0"), sym("k1")]
|
129
129
|
end
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
133
133
|
describe "get/set nil" do
|
134
|
-
let(:ahash) { Nydp
|
134
|
+
let(:ahash) { Nydp::NIL }
|
135
135
|
|
136
136
|
describe "hash set" do
|
137
137
|
it "does nothing, returns its value" do
|
138
138
|
k = Nydp::Symbol.mk "keysym", ns
|
139
139
|
v = Nydp::StringAtom.new "foobar"
|
140
140
|
args = pair_list [ahash, k, v]
|
141
|
-
Nydp::Builtin::HashSet.
|
141
|
+
Nydp::Builtin::HashSet.instance.invoke vm, args
|
142
142
|
|
143
|
-
expect(ahash). to eq Nydp
|
143
|
+
expect(ahash). to eq Nydp::NIL
|
144
144
|
expect(vm.args.pop).to eq v
|
145
145
|
end
|
146
146
|
end
|
@@ -150,9 +150,9 @@ describe Nydp::Hash do
|
|
150
150
|
k = Nydp::Symbol.mk "keysym", ns
|
151
151
|
args = [ ahash, k ]
|
152
152
|
|
153
|
-
Nydp::Builtin::HashGet.
|
153
|
+
Nydp::Builtin::HashGet.instance.invoke vm, pair_list(args)
|
154
154
|
|
155
|
-
expect(vm.args.pop).to eq Nydp
|
155
|
+
expect(vm.args.pop).to eq Nydp::NIL
|
156
156
|
end
|
157
157
|
end
|
158
158
|
end
|
data/spec/literal_spec.rb
CHANGED
@@ -9,13 +9,13 @@ describe Nydp::Literal do
|
|
9
9
|
|
10
10
|
describe "t" do
|
11
11
|
it "is #true in ruby" do
|
12
|
-
expect(Nydp
|
12
|
+
expect(Nydp::T.to_ruby).to eq true
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
16
|
describe "nil" do
|
17
17
|
it "is #nil in ruby" do
|
18
|
-
expect(Nydp
|
18
|
+
expect(Nydp::NIL.to_ruby).to eq nil
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
data/spec/nydp_spec.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Nydp do
|
4
|
-
let(:parser)
|
5
|
-
let(:vm)
|
4
|
+
let(:parser) { Nydp::Parser.new(ns) }
|
5
|
+
let(:vm) { Nydp::VM.new(ns) }
|
6
6
|
|
7
7
|
def run txt
|
8
8
|
Nydp.setup ns
|
@@ -46,10 +46,10 @@ describe Nydp do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it "should compare integers" do
|
49
|
-
expect(run "(> 13 17)").to eq Nydp
|
50
|
-
expect(run "(> 29 23)").to eq Nydp
|
51
|
-
expect(run "(< 13 17)").to eq Nydp
|
52
|
-
expect(run "(< 29 23)").to eq Nydp
|
49
|
+
expect(run "(> 13 17)").to eq Nydp::NIL
|
50
|
+
expect(run "(> 29 23)").to eq Nydp::T
|
51
|
+
expect(run "(< 13 17)").to eq Nydp::T
|
52
|
+
expect(run "(< 29 23)").to eq Nydp::NIL
|
53
53
|
end
|
54
54
|
|
55
55
|
it "should execute an inline list function" do
|
data/spec/pair_spec.rb
CHANGED
@@ -22,10 +22,10 @@ describe Nydp::Pair do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should be true for nested empty lists" do
|
25
|
-
e1 = Nydp::Pair.new(Nydp
|
26
|
-
e2 = Nydp::Pair.new(Nydp
|
27
|
-
e3 = Nydp::Pair.new(Nydp
|
28
|
-
e4 = Nydp::Pair.new(Nydp
|
25
|
+
e1 = Nydp::Pair.new(Nydp::NIL, Nydp::NIL)
|
26
|
+
e2 = Nydp::Pair.new(Nydp::NIL, Nydp::NIL)
|
27
|
+
e3 = Nydp::Pair.new(Nydp::NIL, Nydp::NIL)
|
28
|
+
e4 = Nydp::Pair.new(Nydp::NIL, Nydp::NIL)
|
29
29
|
expect(Nydp::Pair.new(e1, e2)).to eq Nydp::Pair.new(e3, e4)
|
30
30
|
end
|
31
31
|
|
@@ -70,11 +70,11 @@ describe Nydp::Pair do
|
|
70
70
|
p = p.cdr
|
71
71
|
expect(p.car).to eq :d
|
72
72
|
p = p.cdr
|
73
|
-
expect(p.car).to eq Nydp
|
74
|
-
expect(p.cdr).to eq Nydp
|
73
|
+
expect(p.car).to eq Nydp::NIL
|
74
|
+
expect(p.cdr).to eq Nydp::NIL
|
75
75
|
p = p.cdr
|
76
|
-
expect(p.car).to eq Nydp
|
77
|
-
expect(p.cdr).to eq Nydp
|
76
|
+
expect(p.car).to eq Nydp::NIL
|
77
|
+
expect(p.cdr).to eq Nydp::NIL
|
78
78
|
end
|
79
79
|
|
80
80
|
it "should convert to a ruby list" do
|
data/spec/parser_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/string_atom_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require "spec_helper"
|
|
3
3
|
describe Nydp::StringAtom do
|
4
4
|
let(:bar) { Nydp::StringAtom.new "BAR" }
|
5
5
|
let(:foo) { Nydp::StringAtom.new "FOO" }
|
6
|
-
let(:vm) { Nydp::VM.new
|
6
|
+
let(:vm) { Nydp::VM.new(ns) }
|
7
7
|
|
8
8
|
it "is not equal to a symbol with the same represenation" do
|
9
9
|
string = Nydp::StringAtom.new "harrypotter"
|
@@ -28,34 +28,34 @@ describe Nydp::StringAtom do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it "works with builtin greater-than when true" do
|
31
|
-
f = Nydp::Builtin::GreaterThan.
|
31
|
+
f = Nydp::Builtin::GreaterThan.instance
|
32
32
|
|
33
33
|
f.invoke vm, pair_list([foo, bar])
|
34
34
|
|
35
|
-
expect(vm.args.pop).to eq Nydp
|
35
|
+
expect(vm.args.pop).to eq Nydp::T
|
36
36
|
end
|
37
37
|
|
38
38
|
it "works with builtin greater-than when false" do
|
39
|
-
f = Nydp::Builtin::GreaterThan.
|
39
|
+
f = Nydp::Builtin::GreaterThan.instance
|
40
40
|
|
41
41
|
f.invoke vm, pair_list([bar, foo])
|
42
42
|
|
43
|
-
expect(vm.args.pop).to eq Nydp
|
43
|
+
expect(vm.args.pop).to eq Nydp::NIL
|
44
44
|
end
|
45
45
|
|
46
46
|
it "works with builtin less-than when true" do
|
47
|
-
f = Nydp::Builtin::LessThan.
|
47
|
+
f = Nydp::Builtin::LessThan.instance
|
48
48
|
|
49
49
|
f.invoke vm, pair_list([bar, foo])
|
50
50
|
|
51
|
-
expect(vm.args.pop).to eq Nydp
|
51
|
+
expect(vm.args.pop).to eq Nydp::T
|
52
52
|
end
|
53
53
|
|
54
54
|
it "works with builtin less-than when false" do
|
55
|
-
f = Nydp::Builtin::LessThan.
|
55
|
+
f = Nydp::Builtin::LessThan.instance
|
56
56
|
|
57
57
|
f.invoke vm, pair_list([foo, bar])
|
58
58
|
|
59
|
-
expect(vm.args.pop).to eq Nydp
|
59
|
+
expect(vm.args.pop).to eq Nydp::NIL
|
60
60
|
end
|
61
61
|
end
|
data/spec/string_token_spec.rb
CHANGED
data/spec/symbol_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Nydp::Symbol do
|
4
4
|
let(:bar) { Nydp::Symbol.mk :BAR, ns }
|
5
5
|
let(:foo) { Nydp::Symbol.mk :FOO, ns }
|
6
|
-
let(:vm) { Nydp::VM.new
|
6
|
+
let(:vm) { Nydp::VM.new(ns) }
|
7
7
|
|
8
8
|
it "returns a ruby symbol in #to_ruby" do
|
9
9
|
sym = Nydp::Symbol.mk :foo, ns
|
@@ -43,35 +43,35 @@ describe Nydp::Symbol do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
it "works with builtin greater-than when true" do
|
46
|
-
f = Nydp::Builtin::GreaterThan.
|
46
|
+
f = Nydp::Builtin::GreaterThan.instance
|
47
47
|
|
48
48
|
f.invoke vm, pair_list([foo, bar])
|
49
49
|
|
50
|
-
expect(vm.args.pop).to eq Nydp
|
50
|
+
expect(vm.args.pop).to eq Nydp::T
|
51
51
|
end
|
52
52
|
|
53
53
|
it "works with builtin greater-than when false" do
|
54
|
-
f = Nydp::Builtin::GreaterThan.
|
54
|
+
f = Nydp::Builtin::GreaterThan.instance
|
55
55
|
|
56
56
|
f.invoke vm, pair_list([bar, foo])
|
57
57
|
|
58
|
-
expect(vm.args.pop).to eq Nydp
|
58
|
+
expect(vm.args.pop).to eq Nydp::NIL
|
59
59
|
end
|
60
60
|
|
61
61
|
it "works with builtin less-than when true" do
|
62
|
-
f = Nydp::Builtin::LessThan.
|
62
|
+
f = Nydp::Builtin::LessThan.instance
|
63
63
|
|
64
64
|
f.invoke vm, pair_list([bar, foo])
|
65
65
|
|
66
|
-
expect(vm.args.pop).to eq Nydp
|
66
|
+
expect(vm.args.pop).to eq Nydp::T
|
67
67
|
end
|
68
68
|
|
69
69
|
it "works with builtin less-than when false" do
|
70
|
-
f = Nydp::Builtin::LessThan.
|
70
|
+
f = Nydp::Builtin::LessThan.instance
|
71
71
|
|
72
72
|
f.invoke vm, pair_list([foo, bar])
|
73
73
|
|
74
|
-
expect(vm.args.pop).to eq Nydp
|
74
|
+
expect(vm.args.pop).to eq Nydp::NIL
|
75
75
|
end
|
76
76
|
|
77
77
|
end
|