nydp 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/lib/lisp/boot.nydp +11 -0
- data/lib/lisp/test-runner.nydp +12 -11
- data/lib/lisp/tests/foundation-test.nydp +50 -1
- data/lib/nydp.rb +23 -120
- data/lib/nydp/builtin/error.rb +1 -1
- data/lib/nydp/builtin/inspect.rb +1 -1
- data/lib/nydp/builtin/random_string.rb +3 -5
- data/lib/nydp/builtin/string_replace.rb +14 -0
- data/lib/nydp/builtin/string_split.rb +14 -0
- data/lib/nydp/builtin/to_string.rb +14 -0
- data/lib/nydp/builtin/type_of.rb +11 -0
- data/lib/nydp/core.rb +66 -0
- data/lib/nydp/function_invocation.rb +18 -19
- data/lib/nydp/interpreted_function.rb +1 -1
- data/lib/nydp/pair.rb +5 -4
- data/lib/nydp/parser.rb +11 -11
- data/lib/nydp/runner.rb +66 -0
- data/lib/nydp/string_atom.rb +4 -4
- data/lib/nydp/string_token.rb +1 -3
- data/lib/nydp/symbol.rb +2 -7
- data/lib/nydp/tokeniser.rb +9 -3
- data/lib/nydp/truth.rb +9 -7
- data/lib/nydp/version.rb +1 -1
- data/lib/nydp/vm.rb +15 -22
- data/spec/boot_spec.rb +1 -6
- data/spec/embedded_spec.rb +10 -12
- data/spec/nypd_spec.rb +5 -26
- data/spec/pair_spec.rb +16 -17
- data/spec/parser_spec.rb +14 -14
- data/spec/spec_helper.rb +19 -0
- data/spec/string_token_spec.rb +19 -0
- data/spec/symbol_spec.rb +0 -2
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 373997c8dcd5597d8742b347ef75b0b68ef312e7
|
4
|
+
data.tar.gz: 69ab87494d38291aa35786f835489095ce1ccd71
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 801258418b77c34f8521e8dc5f6e6218156b690fa7d1fa3a584a8b77102df8af4021f56f19c27f33be944d88c8fff33443a888c25ccf6b3f20934b5cae17628e
|
7
|
+
data.tar.gz: 3ddf5f9e89f7159a74ef6a2f163afcbc289ca6b4330b6b1307f3be5043f97e9ec023f2ce2fc2f3aae28fb37c05bc36a6410f6ddf8610673d558034f1c37ea65b
|
data/Rakefile
CHANGED
data/lib/lisp/boot.nydp
CHANGED
@@ -174,6 +174,8 @@
|
|
174
174
|
acc))
|
175
175
|
|
176
176
|
(def joinstr (txt things)
|
177
|
+
(if (no (pair? things))
|
178
|
+
(error "joinstr : 'things is a %%(type-of things) expected a list : %%(inspect things)"))
|
177
179
|
(apply +
|
178
180
|
(to-string (car things))
|
179
181
|
(flatten (zip (map (fn (_) txt) (cdr things))
|
@@ -217,3 +219,12 @@
|
|
217
219
|
(pair? y)
|
218
220
|
(iso (car x) (car y))
|
219
221
|
(iso (cdr x) (cdr y)))))
|
222
|
+
|
223
|
+
(def isa (type obj) (eq? (type-of obj) type))
|
224
|
+
(mac just (arg) arg)
|
225
|
+
(def quotify (arg) `(quote ,arg))
|
226
|
+
|
227
|
+
(def len (xs)
|
228
|
+
(if (pair? xs)
|
229
|
+
(+ 1 (len (cdr xs)))
|
230
|
+
0))
|
data/lib/lisp/test-runner.nydp
CHANGED
@@ -5,26 +5,27 @@
|
|
5
5
|
"register a test to be run later by 'run-all-tests"
|
6
6
|
(push test all-tests))
|
7
7
|
|
8
|
-
(def run-all-tests ()
|
8
|
+
(def run-all-tests (verbose)
|
9
9
|
"runs all tests that have been registered with 'register-test"
|
10
10
|
(with (passed 0 failed 0)
|
11
11
|
(with (f-pass (fn nil (assign passed (+ 1 passed)))
|
12
12
|
f-fail (fn nil (assign failed (+ 1 failed))))
|
13
|
-
(run-tests `(suite "all tests" ,@all-tests) f-pass f-fail)
|
13
|
+
(run-tests `(suite "all tests" ,@all-tests) f-pass f-fail verbose)
|
14
14
|
(p "passed: " passed)
|
15
15
|
(p "failed: " failed)
|
16
16
|
(/ passed (+ passed failed)))))
|
17
17
|
|
18
|
-
(def run-tests (tests passf failf)
|
19
|
-
(execute-test "" tests passf failf)
|
18
|
+
(def run-tests (tests passf failf verbose)
|
19
|
+
(execute-test "" tests passf failf verbose)
|
20
20
|
results)
|
21
21
|
|
22
|
-
(def execute-test (desc test passf failf)
|
22
|
+
(def execute-test (desc test passf failf verbose)
|
23
23
|
(if (eq? 'suite (car test))
|
24
|
-
(execute-tests (+ desc " - " (cadr test)) (cddr test) passf failf)
|
25
|
-
(execute-single-test desc test passf failf)))
|
24
|
+
(execute-tests (+ desc " - " (cadr test)) (cddr test) passf failf verbose)
|
25
|
+
(execute-single-test desc test passf failf verbose)))
|
26
26
|
|
27
|
-
(def execute-single-test (desc test passf failf)
|
27
|
+
(def execute-single-test (desc test passf failf verbose)
|
28
|
+
(if verbose (p desc " - " (car test)))
|
28
29
|
(with (expected (nth 2 test) result (eval (nth 1 test)))
|
29
30
|
(if (iso result expected)
|
30
31
|
(passf)
|
@@ -34,6 +35,6 @@
|
|
34
35
|
")
|
35
36
|
(failf)))))
|
36
37
|
|
37
|
-
(def execute-tests (desc tests passf failf)
|
38
|
-
(execute-test desc (car tests) passf failf)
|
39
|
-
(if (cdr tests) (execute-tests desc (cdr tests) passf failf)))
|
38
|
+
(def execute-tests (desc tests passf failf verbose)
|
39
|
+
(execute-test desc (car tests) passf failf verbose)
|
40
|
+
(if (cdr tests) (execute-tests desc (cdr tests) passf failf verbose)))
|
@@ -1,4 +1,45 @@
|
|
1
1
|
(register-test '(suite "Foundation Tests"
|
2
|
+
(suite "strings"
|
3
|
+
(suite "string-split"
|
4
|
+
("splits a string using given expression"
|
5
|
+
(string-split "a and b and c and d" " and ")
|
6
|
+
("a" "b" "c" "d")))
|
7
|
+
|
8
|
+
(suite "string-replace"
|
9
|
+
("replaces parts of a string with the given replacement"
|
10
|
+
(string-replace "and" "or" "a and b and c and d")
|
11
|
+
"a or b or c or d"))
|
12
|
+
|
13
|
+
(suite "type-of"
|
14
|
+
("returns 'string"
|
15
|
+
(type-of "foobar")
|
16
|
+
string)
|
17
|
+
|
18
|
+
("interpolates a string"
|
19
|
+
"foobar %%(+ 1 2) you know"
|
20
|
+
"foobar 3 you know")
|
21
|
+
|
22
|
+
("returns 'string for an interpolated string"
|
23
|
+
(type-of "foobar %%(+ 1 2)")
|
24
|
+
string)))
|
25
|
+
|
26
|
+
(suite "truth and nil"
|
27
|
+
("t is boolean true"
|
28
|
+
(if t "hello" "goodbye")
|
29
|
+
"hello")
|
30
|
+
|
31
|
+
("nil is boolean fale"
|
32
|
+
(if nil "hello" "goodbye")
|
33
|
+
"goodbye")
|
34
|
+
|
35
|
+
("t is Truth"
|
36
|
+
(type-of t)
|
37
|
+
truth)
|
38
|
+
|
39
|
+
("nil is nil"
|
40
|
+
(type-of nil)
|
41
|
+
nil))
|
42
|
+
|
2
43
|
(suite "Lists"
|
3
44
|
(suite "cons"
|
4
45
|
("cons creates a list"
|
@@ -7,7 +48,15 @@
|
|
7
48
|
|
8
49
|
("cons conses two strings"
|
9
50
|
(cons "a" "b")
|
10
|
-
("a" . "b"))
|
51
|
+
("a" . "b"))
|
52
|
+
|
53
|
+
("len returns length of proper list"
|
54
|
+
(len (cons "a" (cons "b" nil)))
|
55
|
+
2)
|
56
|
+
|
57
|
+
("type-of returns pair"
|
58
|
+
(type-of (cons "a" "b"))
|
59
|
+
pair))
|
11
60
|
|
12
61
|
(suite "car"
|
13
62
|
("car of nil is nil"
|
data/lib/nydp.rb
CHANGED
@@ -1,137 +1,40 @@
|
|
1
1
|
module Nydp
|
2
|
-
|
2
|
+
PLUGINS = []
|
3
3
|
|
4
|
-
def self.
|
5
|
-
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
LOADFILES << relative_path('lisp/boot.nydp')
|
13
|
-
LOADFILES << relative_path('lisp/test-runner.nydp')
|
14
|
-
Dir.glob(relative_path 'lisp/tests/**/*.nydp').each { |f| LOADFILES << f }
|
15
|
-
|
16
|
-
def self.compile_and_eval vm, expr
|
17
|
-
vm.thread Pair.new(Compiler.compile(expr, Nydp.NIL), Nydp.NIL)
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.setup ns
|
21
|
-
Symbol.mk(:cons, ns).assign(Nydp::Builtin::Cons.new)
|
22
|
-
Symbol.mk(:car, ns).assign(Nydp::Builtin::Car.new)
|
23
|
-
Symbol.mk(:cdr, ns).assign(Nydp::Builtin::Cdr.new)
|
24
|
-
Symbol.mk(:+, ns).assign(Nydp::Builtin::Plus.new)
|
25
|
-
Symbol.mk(:-, ns).assign(Nydp::Builtin::Minus.new)
|
26
|
-
Symbol.mk(:*, ns).assign(Nydp::Builtin::Times.new)
|
27
|
-
Symbol.mk(:/, ns).assign(Nydp::Builtin::Divide.new)
|
28
|
-
Symbol.mk(:>, ns).assign(Nydp::Builtin::GreaterThan.new)
|
29
|
-
Symbol.mk(:<, ns).assign(Nydp::Builtin::LessThan.new)
|
30
|
-
Symbol.mk(:eval, ns).assign(Nydp::Builtin::Eval.new(ns))
|
31
|
-
Symbol.mk(:hash, ns).assign(Nydp::Builtin::Hash.new)
|
32
|
-
Symbol.mk(:apply, ns).assign(Nydp::Builtin::Apply.new)
|
33
|
-
Symbol.mk(:error, ns).assign(Nydp::Builtin::Error.new)
|
34
|
-
Symbol.mk(:quit, ns).assign(Nydp::Builtin::Quit.new)
|
35
|
-
Symbol.mk(:p, ns).assign(Nydp::Builtin::Puts.new)
|
36
|
-
Symbol.mk(:PI, ns).assign Literal.new(3.1415)
|
37
|
-
Symbol.mk(:nil, ns).assign Nydp.NIL
|
38
|
-
Symbol.mk(:t, ns).assign Nydp.T
|
39
|
-
Symbol.mk(:sym, ns).assign Nydp::Builtin::ToSym.new(ns)
|
40
|
-
Symbol.mk(:inspect, ns).assign(Nydp::Builtin::Inspect.new)
|
41
|
-
Symbol.mk(:comment, ns).assign(Nydp::Builtin::Comment.new)
|
42
|
-
Symbol.mk(:millisecs, ns).assign(Nydp::Builtin::Millisecs.new)
|
43
|
-
Symbol.mk("random-string",ns).assign(Nydp::Builtin::RandomString.new)
|
44
|
-
Symbol.mk("to-string", ns).assign(Nydp::Builtin::ToString.new)
|
45
|
-
Symbol.mk(:"eq?", ns).assign(Nydp::Builtin::IsEqual.new)
|
46
|
-
Symbol.mk(:"pair?", ns).assign(Nydp::Builtin::IsPair.new)
|
47
|
-
Symbol.mk(:"cdr-set", ns).assign(Nydp::Builtin::CdrSet.new)
|
48
|
-
Symbol.mk(:"hash-get", ns).assign(Nydp::Builtin::HashGet.new)
|
49
|
-
Symbol.mk(:"hash-set", ns).assign(Nydp::Builtin::HashSet.new)
|
50
|
-
Symbol.mk(:"hash-keys", ns).assign(Nydp::Builtin::HashKeys.new)
|
51
|
-
Symbol.mk(:"vm-info", ns).assign Nydp::Builtin::VmInfo.new
|
52
|
-
Symbol.mk(:"pre-compile", ns).assign Nydp::Builtin::PreCompile.new
|
53
|
-
end
|
54
|
-
|
55
|
-
class Runner
|
56
|
-
attr_accessor :vm, :ns
|
57
|
-
|
58
|
-
def initialize vm, ns
|
59
|
-
@vm = vm
|
60
|
-
@ns = ns
|
61
|
-
@precompile = Symbol.mk(:"pre-compile", ns)
|
62
|
-
@quote = Symbol.mk(:quote, ns)
|
63
|
-
end
|
64
|
-
|
65
|
-
def quote expr
|
66
|
-
Pair.from_list [@quote, expr]
|
67
|
-
end
|
68
|
-
|
69
|
-
def precompile expr
|
70
|
-
Pair.from_list [@precompile, quote(expr)]
|
71
|
-
end
|
72
|
-
|
73
|
-
def pre_compile expr
|
74
|
-
Nydp.compile_and_eval(vm, precompile(expr))
|
75
|
-
end
|
76
|
-
|
77
|
-
def evaluate expr
|
78
|
-
Nydp.compile_and_eval(vm, pre_compile(expr))
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
class StreamRunner < Runner
|
83
|
-
attr_accessor :stream, :parser
|
84
|
-
|
85
|
-
def initialize vm, ns, stream
|
86
|
-
super vm, ns
|
87
|
-
@stream = stream
|
88
|
-
@parser = Nydp::Parser.new(ns)
|
89
|
-
@tokens = Nydp::Tokeniser.new stream
|
90
|
-
end
|
91
|
-
|
92
|
-
def prompt *_
|
93
|
-
end
|
94
|
-
|
95
|
-
def run
|
96
|
-
res = Nydp.NIL
|
97
|
-
prompt
|
98
|
-
while !@tokens.finished
|
99
|
-
expr = parser.expression(@tokens)
|
100
|
-
unless expr.nil?
|
101
|
-
res = evaluate expr
|
102
|
-
prompt res
|
103
|
-
end
|
104
|
-
end
|
105
|
-
res
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
class Repl < StreamRunner
|
110
|
-
def prompt val=nil
|
111
|
-
puts val if val
|
112
|
-
print "nydp > "
|
113
|
-
end
|
4
|
+
def self.plug_in plugin ; PLUGINS << plugin ; end
|
5
|
+
def self.load_rake_tasks; PLUGINS.each &:load_rake_tasks ; end
|
6
|
+
def self.setup ns; PLUGINS.each { |plg| plg.setup ns } ; end
|
7
|
+
def self.loadfiles; PLUGINS.map(&:loadfiles).flatten ; end
|
8
|
+
def self.testfiles; PLUGINS.map(&:testfiles).flatten ; end
|
9
|
+
def self.plugin_names ; PLUGINS.map(&:name) ; end
|
10
|
+
def self.loadall vm, ns, files
|
11
|
+
files.each { |f| StreamRunner.new(vm, ns, File.new(f)).run }
|
114
12
|
end
|
115
13
|
|
116
14
|
def self.repl
|
117
15
|
puts "welcome to nydp"
|
118
|
-
|
119
|
-
setup(
|
16
|
+
ns = { }
|
17
|
+
setup(ns)
|
120
18
|
vm = VM.new
|
121
|
-
|
122
|
-
Repl.new(vm,
|
19
|
+
loadall vm, ns, loadfiles
|
20
|
+
Repl.new(vm, ns, $stdin).run
|
123
21
|
end
|
124
22
|
|
125
|
-
def self.tests
|
23
|
+
def self.tests *options
|
24
|
+
verbose = options.include?(:verbose) ? "t" : "nil"
|
126
25
|
puts "welcome to nydp : running tests"
|
127
|
-
|
128
|
-
setup(
|
26
|
+
ns = { }
|
27
|
+
setup(ns)
|
129
28
|
vm = VM.new
|
130
|
-
|
131
|
-
|
29
|
+
loadall vm, ns, loadfiles
|
30
|
+
loadall vm, ns, testfiles
|
31
|
+
StreamRunner.new(vm, ns, "(run-all-tests #{verbose})").run
|
132
32
|
end
|
33
|
+
|
133
34
|
end
|
134
35
|
|
36
|
+
require "nydp/core"
|
37
|
+
require "nydp/runner"
|
135
38
|
require "nydp/error"
|
136
39
|
require "nydp/truth"
|
137
40
|
require "nydp/version"
|
data/lib/nydp/builtin/error.rb
CHANGED
data/lib/nydp/builtin/inspect.rb
CHANGED
@@ -2,10 +2,8 @@ class Nydp::Builtin::RandomString
|
|
2
2
|
@@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"]
|
3
3
|
|
4
4
|
def invoke vm, args
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
}
|
9
|
-
Nydp::StringAtom.new s
|
5
|
+
length = args.car unless Nydp.NIL.is?(args)
|
6
|
+
s = (0...(length || 10)).map { @@random_chars[rand(@@random_chars.size)] }.join
|
7
|
+
vm.push_arg Nydp::StringAtom.new s
|
10
8
|
end
|
11
9
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Nydp::Builtin::StringReplace
|
2
|
+
def invoke vm, args
|
3
|
+
to_remove = args.car.to_s
|
4
|
+
to_insert = args.cdr.car.to_s
|
5
|
+
target = args.cdr.cdr.car.to_s
|
6
|
+
result = target.to_s.gsub to_remove, to_insert
|
7
|
+
|
8
|
+
vm.push_arg Nydp::StringAtom.new result
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
"Builtin:string-replace"
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Nydp::Builtin::StringSplit
|
2
|
+
def invoke vm, args
|
3
|
+
target = args.car.to_s
|
4
|
+
separator = args.cdr.car.to_s
|
5
|
+
result = target.split separator
|
6
|
+
list = result.map { |s| Nydp::StringAtom.new s }
|
7
|
+
|
8
|
+
vm.push_arg Nydp::Pair.from_list list
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
"Builtin:string-split"
|
13
|
+
end
|
14
|
+
end
|
@@ -10,3 +10,17 @@ class Nydp::Builtin::ToString
|
|
10
10
|
vm.push_arg val
|
11
11
|
end
|
12
12
|
end
|
13
|
+
|
14
|
+
class Nydp::Builtin::StringPieces
|
15
|
+
def to_string first, rest
|
16
|
+
if Nydp.NIL.is? rest
|
17
|
+
first.to_s
|
18
|
+
else
|
19
|
+
"#{first.to_s}#{to_string rest.car, rest.cdr}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def invoke vm, args
|
24
|
+
vm.push_arg Nydp::StringAtom.new to_string(args.car, args.cdr)
|
25
|
+
end
|
26
|
+
end
|
data/lib/nydp/core.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'nydp'
|
2
|
+
|
3
|
+
module Nydp
|
4
|
+
class Core
|
5
|
+
def name ; "Nydp Core" ; end
|
6
|
+
|
7
|
+
def relative_path name
|
8
|
+
File.join File.expand_path(File.dirname(__FILE__)), name
|
9
|
+
end
|
10
|
+
|
11
|
+
def load_rake_tasks
|
12
|
+
load relative_path '../tasks/tests.rake'
|
13
|
+
end
|
14
|
+
|
15
|
+
def loadfiles
|
16
|
+
b = relative_path('../lisp/boot.nydp')
|
17
|
+
t = relative_path('../lisp/test-runner.nydp')
|
18
|
+
[b,t]
|
19
|
+
end
|
20
|
+
|
21
|
+
def testfiles
|
22
|
+
Dir.glob(relative_path '../lisp/tests/**/*.nydp')
|
23
|
+
end
|
24
|
+
|
25
|
+
def setup ns
|
26
|
+
Symbol.mk(:cons, ns).assign(Nydp::Builtin::Cons.new)
|
27
|
+
Symbol.mk(:car, ns).assign(Nydp::Builtin::Car.new)
|
28
|
+
Symbol.mk(:cdr, ns).assign(Nydp::Builtin::Cdr.new)
|
29
|
+
Symbol.mk(:+, ns).assign(Nydp::Builtin::Plus.new)
|
30
|
+
Symbol.mk(:-, ns).assign(Nydp::Builtin::Minus.new)
|
31
|
+
Symbol.mk(:*, ns).assign(Nydp::Builtin::Times.new)
|
32
|
+
Symbol.mk(:/, ns).assign(Nydp::Builtin::Divide.new)
|
33
|
+
Symbol.mk(:>, ns).assign(Nydp::Builtin::GreaterThan.new)
|
34
|
+
Symbol.mk(:<, ns).assign(Nydp::Builtin::LessThan.new)
|
35
|
+
Symbol.mk(:eval, ns).assign(Nydp::Builtin::Eval.new(ns))
|
36
|
+
Symbol.mk(:hash, ns).assign(Nydp::Builtin::Hash.new)
|
37
|
+
Symbol.mk(:apply, ns).assign(Nydp::Builtin::Apply.new)
|
38
|
+
Symbol.mk(:error, ns).assign(Nydp::Builtin::Error.new)
|
39
|
+
Symbol.mk(:quit, ns).assign(Nydp::Builtin::Quit.new)
|
40
|
+
Symbol.mk(:p, ns).assign(Nydp::Builtin::Puts.new)
|
41
|
+
Symbol.mk(:PI, ns).assign Literal.new(3.1415)
|
42
|
+
Symbol.mk(:nil, ns).assign Nydp.NIL
|
43
|
+
Symbol.mk(:t, ns).assign Nydp.T
|
44
|
+
Symbol.mk(:sym, ns).assign Nydp::Builtin::ToSym.new(ns)
|
45
|
+
Symbol.mk(:inspect, ns).assign(Nydp::Builtin::Inspect.new)
|
46
|
+
Symbol.mk(:comment, ns).assign(Nydp::Builtin::Comment.new)
|
47
|
+
Symbol.mk(:millisecs, ns).assign(Nydp::Builtin::Millisecs.new)
|
48
|
+
Symbol.mk("random-string",ns).assign(Nydp::Builtin::RandomString.new)
|
49
|
+
Symbol.mk("to-string", ns).assign(Nydp::Builtin::ToString.new)
|
50
|
+
Symbol.mk("string-pieces",ns).assign(Nydp::Builtin::StringPieces.new)
|
51
|
+
Symbol.mk("string-replace", ns).assign(Nydp::Builtin::StringReplace.new)
|
52
|
+
Symbol.mk("string-split" , ns).assign(Nydp::Builtin::StringSplit.new )
|
53
|
+
Symbol.mk("type-of", ns).assign(Nydp::Builtin::TypeOf.new(ns))
|
54
|
+
Symbol.mk(:"eq?", ns).assign(Nydp::Builtin::IsEqual.new)
|
55
|
+
Symbol.mk(:"pair?", ns).assign(Nydp::Builtin::IsPair.new)
|
56
|
+
Symbol.mk(:"cdr-set", ns).assign(Nydp::Builtin::CdrSet.new)
|
57
|
+
Symbol.mk(:"hash-get", ns).assign(Nydp::Builtin::HashGet.new)
|
58
|
+
Symbol.mk(:"hash-set", ns).assign(Nydp::Builtin::HashSet.new)
|
59
|
+
Symbol.mk(:"hash-keys", ns).assign(Nydp::Builtin::HashKeys.new)
|
60
|
+
Symbol.mk(:"vm-info", ns).assign Nydp::Builtin::VmInfo.new
|
61
|
+
Symbol.mk(:"pre-compile", ns).assign Nydp::Builtin::PreCompile.new
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
Nydp.plug_in Nydp::Core.new
|