nydp 0.0.2 → 0.0.3
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/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
|