nydp 0.4.0 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +44 -0
- data/lib/lisp/core-010-precompile.nydp +13 -16
- data/lib/lisp/core-012-utils.nydp +21 -6
- data/lib/lisp/core-015-documentation.nydp +60 -19
- data/lib/lisp/core-017-builtin-dox.nydp +50 -39
- data/lib/lisp/core-020-utils.nydp +5 -5
- data/lib/lisp/core-030-syntax.nydp +103 -61
- data/lib/lisp/core-035-flow-control.nydp +18 -9
- data/lib/lisp/core-037-list-utils.nydp +36 -14
- data/lib/lisp/core-039-module.nydp +24 -0
- data/lib/lisp/core-040-utils.nydp +41 -23
- data/lib/lisp/core-041-string-utils.nydp +37 -9
- data/lib/lisp/core-042-date-utils.nydp +21 -1
- data/lib/lisp/core-043-list-utils.nydp +93 -67
- data/lib/lisp/core-045-dox-utils.nydp +5 -0
- data/lib/lisp/core-080-pretty-print.nydp +55 -17
- data/lib/lisp/core-090-hook.nydp +35 -1
- data/lib/lisp/core-100-utils.nydp +130 -28
- data/lib/lisp/core-110-hash-utils.nydp +61 -0
- data/lib/lisp/core-120-settings.nydp +46 -0
- data/lib/lisp/core-130-validations.nydp +51 -0
- data/lib/lisp/{core-060-benchmarking.nydp → core-900-benchmarking.nydp} +108 -5
- data/lib/lisp/tests/accum-examples.nydp +28 -1
- data/lib/lisp/tests/aif-examples.nydp +8 -3
- data/lib/lisp/tests/andify-examples.nydp +7 -0
- data/lib/lisp/tests/at-syntax-examples.nydp +17 -0
- data/lib/lisp/tests/best-examples.nydp +9 -0
- data/lib/lisp/tests/builtin-tests.nydp +19 -0
- data/lib/lisp/tests/case-examples.nydp +14 -0
- data/lib/lisp/tests/cdr-set-examples.nydp +6 -0
- data/lib/lisp/tests/date-examples.nydp +56 -1
- data/lib/lisp/tests/destructuring-examples.nydp +5 -5
- data/lib/lisp/tests/detect-examples.nydp +12 -0
- data/lib/lisp/tests/dp-examples.nydp +24 -0
- data/lib/lisp/tests/empty-examples.nydp +1 -1
- data/lib/lisp/tests/error-tests.nydp +4 -4
- data/lib/lisp/tests/filter-forms-examples.nydp +30 -0
- data/lib/lisp/tests/foundation-test.nydp +12 -0
- data/lib/lisp/tests/hash-examples.nydp +26 -2
- data/lib/lisp/tests/list-grep-examples.nydp +40 -0
- data/lib/lisp/tests/list-tests.nydp +58 -1
- data/lib/lisp/tests/map-hash-examples.nydp +11 -0
- data/lib/lisp/tests/mapreduce-examples.nydp +10 -0
- data/lib/lisp/tests/module-examples.nydp +10 -0
- data/lib/lisp/tests/multi-assign-examples.nydp +6 -0
- data/lib/lisp/tests/parser-tests.nydp +21 -0
- data/lib/lisp/tests/pretty-print-tests.nydp +16 -13
- data/lib/lisp/tests/set-difference-examples.nydp +8 -0
- data/lib/lisp/tests/set-intersection-examples.nydp +32 -0
- data/lib/lisp/tests/set-union-examples.nydp +24 -0
- data/lib/lisp/tests/settings-examples.nydp +40 -0
- data/lib/lisp/tests/sort-examples.nydp +8 -0
- data/lib/lisp/tests/string-tests.nydp +61 -1
- data/lib/lisp/tests/syntax-tests.nydp +5 -1
- data/lib/lisp/tests/to-integer-examples.nydp +16 -0
- data/lib/lisp/tests/validation-examples.nydp +15 -0
- data/lib/lisp/tests/zap-examples.nydp +12 -0
- data/lib/nydp.rb +13 -7
- data/lib/nydp/assignment.rb +10 -3
- data/lib/nydp/builtin.rb +1 -1
- data/lib/nydp/builtin/abs.rb +8 -0
- data/lib/nydp/builtin/cdr_set.rb +1 -6
- data/lib/nydp/builtin/date.rb +15 -1
- data/lib/nydp/builtin/error.rb +1 -1
- data/lib/nydp/builtin/handle_error.rb +1 -1
- data/lib/nydp/builtin/hash.rb +27 -45
- data/lib/nydp/builtin/inspect.rb +1 -1
- data/lib/nydp/builtin/plus.rb +10 -2
- data/lib/nydp/builtin/rand.rb +18 -0
- data/lib/nydp/builtin/random_string.rb +2 -2
- data/lib/nydp/builtin/ruby_wrap.rb +72 -0
- data/lib/nydp/builtin/set_intersection.rb +8 -0
- data/lib/nydp/builtin/set_union.rb +8 -0
- data/lib/nydp/builtin/string_match.rb +2 -2
- data/lib/nydp/builtin/string_pad_left.rb +7 -0
- data/lib/nydp/builtin/string_pad_right.rb +7 -0
- data/lib/nydp/builtin/string_replace.rb +1 -1
- data/lib/nydp/builtin/string_split.rb +1 -2
- data/lib/nydp/builtin/to_integer.rb +23 -0
- data/lib/nydp/builtin/to_string.rb +2 -9
- data/lib/nydp/builtin/type_of.rb +9 -6
- data/lib/nydp/closure.rb +0 -3
- data/lib/nydp/cond.rb +23 -1
- data/lib/nydp/context_symbol.rb +14 -6
- data/lib/nydp/core.rb +45 -33
- data/lib/nydp/core_ext.rb +54 -0
- data/lib/nydp/date.rb +37 -31
- data/lib/nydp/function_invocation.rb +34 -26
- data/lib/nydp/hash.rb +5 -6
- data/lib/nydp/helper.rb +41 -25
- data/lib/nydp/interpreted_function.rb +68 -40
- data/lib/nydp/literal.rb +1 -1
- data/lib/nydp/pair.rb +25 -9
- data/lib/nydp/parser.rb +8 -6
- data/lib/nydp/string_atom.rb +16 -22
- data/lib/nydp/symbol.rb +40 -27
- data/lib/nydp/symbol_lookup.rb +7 -7
- data/lib/nydp/tokeniser.rb +2 -2
- data/lib/nydp/truth.rb +17 -10
- data/lib/nydp/version.rb +1 -1
- data/lib/nydp/vm.rb +7 -2
- data/nydp.gemspec +2 -4
- data/spec/date_spec.rb +115 -22
- data/spec/embedded_spec.rb +12 -12
- data/spec/foreign_hash_spec.rb +14 -2
- data/spec/hash_non_hash_behaviour_spec.rb +7 -7
- data/spec/hash_spec.rb +24 -2
- data/spec/nydp_spec.rb +14 -2
- data/spec/parser_spec.rb +27 -16
- data/spec/rand_spec.rb +45 -0
- data/spec/spec_helper.rb +13 -1
- data/spec/symbol_spec.rb +31 -0
- data/spec/time_spec.rb +1 -1
- metadata +38 -37
- data/lib/nydp/builtin/car.rb +0 -7
- data/lib/nydp/builtin/cdr.rb +0 -7
- data/lib/nydp/builtin/cons.rb +0 -9
@@ -0,0 +1,18 @@
|
|
1
|
+
class Nydp::Builtin::Rand
|
2
|
+
include Nydp::Builtin::Base, Singleton
|
3
|
+
|
4
|
+
def builtin_invoke_1 vm ; vm.push_arg rand ; end
|
5
|
+
def builtin_invoke_2 vm, a ; vm.push_arg rand(a) ; end
|
6
|
+
def builtin_invoke_3 vm, a0, a1 ; vm.push_arg(a0 + rand(a1 - a0)) ; end
|
7
|
+
def builtin_invoke vm, args ;
|
8
|
+
if Nydp::NIL.is? args
|
9
|
+
builtin_invoke_1 vm
|
10
|
+
else
|
11
|
+
case args.size
|
12
|
+
when 1 ; builtin_invoke_2 vm, args.car
|
13
|
+
when 2 ; builtin_invoke_3 vm, args.car, args.cadr
|
14
|
+
else ; raise "rand: 0, 1 or 2 args expected, got #{args.length}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -5,7 +5,7 @@ class Nydp::Builtin::RandomString
|
|
5
5
|
|
6
6
|
def builtin_invoke vm, args
|
7
7
|
length = args.car unless Nydp::NIL.is?(args)
|
8
|
-
s = (0...(length || 10)).
|
9
|
-
vm.push_arg
|
8
|
+
s = (0...(length || 10)).inject("") {|a,i| a << RANDOM_CHARS[rand(RANDOM_CHARS.size)] }
|
9
|
+
vm.push_arg s
|
10
10
|
end
|
11
11
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
class Nydp::Builtin::RubyWrap
|
2
|
+
@@builtins = { }
|
3
|
+
|
4
|
+
def self.builtins
|
5
|
+
@@builtins
|
6
|
+
end
|
7
|
+
|
8
|
+
class Coder < Struct.new(:name, :size, :code, :helpers)
|
9
|
+
def msize ; size + 1 ; end
|
10
|
+
|
11
|
+
def arg_mapper
|
12
|
+
case size
|
13
|
+
when 0 ; ""
|
14
|
+
when 1 ; ", a0"
|
15
|
+
when 2 ; ", a0, a1"
|
16
|
+
when 3 ; ", a0, a1, a2"
|
17
|
+
when 4 ; ", a0, a1, a2, a3"
|
18
|
+
when 5 ; ", a0, a1, a2, a3, a4"
|
19
|
+
else ; raise "maximum 5 arguments!"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_ruby
|
24
|
+
generic_code = code.
|
25
|
+
gsub(/a0/, "args.car").
|
26
|
+
gsub(/a1/, "args.cdr.car").
|
27
|
+
gsub(/a2/, "args.cdr.cdr.car").
|
28
|
+
gsub(/a3/, "args.cdr.cdr.cdr.car").
|
29
|
+
gsub(/a4/, "args.cdr.cdr.cdr.cdr.car")
|
30
|
+
<<CODE
|
31
|
+
class #{name}
|
32
|
+
include Nydp::Builtin::Base, Singleton#{helpers}
|
33
|
+
|
34
|
+
def builtin_invoke_#{msize} vm#{ arg_mapper }
|
35
|
+
vm.push_arg(#{code})
|
36
|
+
end
|
37
|
+
|
38
|
+
def builtin_invoke vm, args
|
39
|
+
vm.push_arg(#{generic_code})
|
40
|
+
end
|
41
|
+
end
|
42
|
+
CODE
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.const_missing const
|
47
|
+
coder = @@builtins[const]
|
48
|
+
coder ? class_eval(coder.to_ruby) : super
|
49
|
+
const_get const
|
50
|
+
end
|
51
|
+
|
52
|
+
class WrapperBuilder
|
53
|
+
def initialize default_helpers
|
54
|
+
@default_helpers = default_helpers.to_s.strip != "" ? ", #{default_helpers}" : ""
|
55
|
+
end
|
56
|
+
|
57
|
+
def build name, args, code, helpers=""
|
58
|
+
extra_helpers = helpers.to_s.strip != "" ? ", #{helpers}" : ""
|
59
|
+
Nydp::Builtin::RubyWrap.builtins[name.to_sym] = Coder.new(name.to_sym, args, code, "#{@default_helpers}#{extra_helpers}")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.builder includes
|
64
|
+
WrapperBuilder.new(includes)
|
65
|
+
end
|
66
|
+
|
67
|
+
core_builder = builder ""
|
68
|
+
core_builder.build(:Cons, 2, %{ Nydp::Pair.new(a0, a1) } )
|
69
|
+
core_builder.build(:Car , 1, %{ a0.car } )
|
70
|
+
core_builder.build(:Cdr , 1, %{ a0.cdr } )
|
71
|
+
core_builder.build(:Log , 1, %{ r2n Nydp.logger.info(a0.to_s) } )
|
72
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class Nydp::Builtin::SetIntersection
|
2
|
+
include Nydp::Builtin::Base, Singleton
|
3
|
+
|
4
|
+
def builtin_invoke_2 vm, a ; vm.push_arg a ; end
|
5
|
+
def builtin_invoke_3 vm, a, b ; vm.push_arg(a & b) ; end
|
6
|
+
def builtin_invoke_4 vm, a, b, c ; vm.push_arg(a & b & c) ; end
|
7
|
+
def builtin_invoke vm, args ; vm.push_arg args.reduce &:& ; end
|
8
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class Nydp::Builtin::SetUnion
|
2
|
+
include Nydp::Builtin::Base, Singleton
|
3
|
+
|
4
|
+
def builtin_invoke_2 vm, a ; vm.push_arg a ; end
|
5
|
+
def builtin_invoke_3 vm, a, b ; vm.push_arg(a | b) ; end
|
6
|
+
def builtin_invoke_4 vm, a, b, c ; vm.push_arg(a | b | c) ; end
|
7
|
+
def builtin_invoke vm, args ; vm.push_arg args.reduce &:| ; end
|
8
|
+
end
|
@@ -10,8 +10,8 @@ class Nydp::Builtin::StringMatch
|
|
10
10
|
|
11
11
|
if match
|
12
12
|
result = Nydp::Hash.new
|
13
|
-
result[kmatch] =
|
14
|
-
result[kcaptures] = Nydp::Pair.from_list match.captures.map { |cap|
|
13
|
+
result[kmatch] = match.to_s
|
14
|
+
result[kcaptures] = Nydp::Pair.from_list match.captures.map { |cap| cap.to_s }
|
15
15
|
else
|
16
16
|
result = Nydp::NIL
|
17
17
|
end
|
@@ -5,8 +5,7 @@ class Nydp::Builtin::StringSplit
|
|
5
5
|
target = args.car.to_s
|
6
6
|
separator = args.cdr.car.to_s
|
7
7
|
result = target.split separator, -1
|
8
|
-
list = result.map { |s| Nydp::StringAtom.new s }
|
9
8
|
|
10
|
-
vm.push_arg Nydp::Pair.from_list
|
9
|
+
vm.push_arg Nydp::Pair.from_list result
|
11
10
|
end
|
12
11
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Nydp::Builtin
|
2
|
+
class ToInteger
|
3
|
+
include Nydp::Builtin::Base, Singleton
|
4
|
+
|
5
|
+
def builtin_invoke_2 vm, arg
|
6
|
+
arg = n2r arg
|
7
|
+
|
8
|
+
i = if arg.respond_to? :to_i
|
9
|
+
arg.to_i
|
10
|
+
elsif arg.respond_to? :to_time
|
11
|
+
arg.to_time.to_i
|
12
|
+
else
|
13
|
+
arg.to_s.to_i
|
14
|
+
end
|
15
|
+
|
16
|
+
vm.push_arg r2n i
|
17
|
+
end
|
18
|
+
|
19
|
+
def builtin_invoke vm, args
|
20
|
+
builtin_invoke_2 vm, args.car
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -3,14 +3,7 @@ module Nydp::Builtin
|
|
3
3
|
include Nydp::Builtin::Base, Singleton
|
4
4
|
|
5
5
|
def builtin_invoke vm, args
|
6
|
-
|
7
|
-
val = case arg.class
|
8
|
-
when Nydp::StringAtom
|
9
|
-
arg
|
10
|
-
else
|
11
|
-
Nydp::StringAtom.new arg.to_s
|
12
|
-
end
|
13
|
-
vm.push_arg val
|
6
|
+
vm.push_arg args.car.to_s
|
14
7
|
end
|
15
8
|
end
|
16
9
|
|
@@ -20,7 +13,7 @@ module Nydp::Builtin
|
|
20
13
|
def builtin_invoke vm, args
|
21
14
|
arg = args.car
|
22
15
|
val = case arg
|
23
|
-
when
|
16
|
+
when String
|
24
17
|
arg.length
|
25
18
|
else
|
26
19
|
0
|
data/lib/nydp/builtin/type_of.rb
CHANGED
@@ -1,18 +1,21 @@
|
|
1
1
|
class Nydp::Builtin::TypeOf
|
2
2
|
include Nydp::Builtin::Base, Singleton
|
3
3
|
|
4
|
-
def
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
elsif arg.is_a? Numeric
|
4
|
+
def builtin_invoke_1 vm, a0
|
5
|
+
typename = if a0.respond_to?(:nydp_type)
|
6
|
+
a0.nydp_type.to_sym
|
7
|
+
elsif a0.is_a? Numeric
|
9
8
|
:number
|
10
9
|
else
|
11
|
-
"ruby/#{
|
10
|
+
"ruby/#{a0.class.name}".to_sym
|
12
11
|
end
|
13
12
|
|
14
13
|
type = Nydp::Symbol.mk(typename, vm.ns)
|
15
14
|
|
16
15
|
vm.push_arg(type || Nydp::NIL)
|
17
16
|
end
|
17
|
+
|
18
|
+
def builtin_invoke vm, args
|
19
|
+
builtin_invoke_1 vm, args.car
|
20
|
+
end
|
18
21
|
end
|
data/lib/nydp/closure.rb
CHANGED
@@ -4,9 +4,6 @@ module Nydp
|
|
4
4
|
|
5
5
|
def initialize ifn, context
|
6
6
|
@ifn, @context = ifn, context
|
7
|
-
# TODO don't create a closure where it's not needed (zero_arg functions), use parent context instead
|
8
|
-
# TODO see SymbolLookup for how to ensure variable references stay on track
|
9
|
-
# TODO see InterpretedFunction for where to not instantiate new LexicalContext
|
10
7
|
end
|
11
8
|
|
12
9
|
def invoke_1 vm
|
data/lib/nydp/cond.rb
CHANGED
@@ -6,6 +6,10 @@ module Nydp
|
|
6
6
|
@when_true, @when_false = when_true, when_false
|
7
7
|
end
|
8
8
|
|
9
|
+
def lexical_reach n
|
10
|
+
[@when_true.lexical_reach(n), @when_false.lexical_reach(n)].max
|
11
|
+
end
|
12
|
+
|
9
13
|
def execute vm
|
10
14
|
(Nydp::NIL.is?(vm.args.pop) ? @when_false : @when_true).execute vm
|
11
15
|
end
|
@@ -13,6 +17,7 @@ module Nydp
|
|
13
17
|
def inspect
|
14
18
|
"when_true:#{@when_true.inspect}:when_false:#{@when_false.inspect}"
|
15
19
|
end
|
20
|
+
|
16
21
|
def to_s
|
17
22
|
"#{@when_true.to_s} #{@when_false.to_s}"
|
18
23
|
end
|
@@ -27,6 +32,10 @@ module Nydp
|
|
27
32
|
@condition, @conditional = cond, cons(ExecuteConditionalInstruction.new(when_true, when_false))
|
28
33
|
end
|
29
34
|
|
35
|
+
def lexical_reach n
|
36
|
+
[@condition.lexical_reach(n), @conditional.car.lexical_reach(n)].max
|
37
|
+
end
|
38
|
+
|
30
39
|
def execute vm
|
31
40
|
vm.push_ctx_instructions conditional
|
32
41
|
condition.execute vm
|
@@ -35,6 +44,7 @@ module Nydp
|
|
35
44
|
def inspect
|
36
45
|
"cond:#{condition.inspect}:#{conditional.inspect}"
|
37
46
|
end
|
47
|
+
|
38
48
|
def to_s
|
39
49
|
"(cond #{condition.to_s} #{conditional.to_s})"
|
40
50
|
end
|
@@ -57,7 +67,7 @@ module Nydp
|
|
57
67
|
new(cond, when_true, when_false)
|
58
68
|
end
|
59
69
|
else
|
60
|
-
raise "can't compile Cond: #{
|
70
|
+
raise "can't compile Cond: #{expressions.inspect}"
|
61
71
|
end
|
62
72
|
end
|
63
73
|
end
|
@@ -70,6 +80,10 @@ module Nydp
|
|
70
80
|
@condition, @when_true, @when_false = cond, when_true, when_false
|
71
81
|
end
|
72
82
|
|
83
|
+
def lexical_reach n
|
84
|
+
[@condition.lexical_reach(n), @when_true.lexical_reach(n), @when_false.lexical_reach(n)].max
|
85
|
+
end
|
86
|
+
|
73
87
|
def inspect ; "cond:#{@condition.inspect}:#{@when_true.inspect}:#{@when_false.inspect}" ; end
|
74
88
|
def to_s ; "(cond #{@condition.to_s} #{@when_true.to_s} #{@when_false.to_s})" ; end
|
75
89
|
end
|
@@ -80,6 +94,14 @@ module Nydp
|
|
80
94
|
vm.push_ctx_instructions (truth ? @when_true : @when_false)
|
81
95
|
end
|
82
96
|
|
97
|
+
def lexical_reach n
|
98
|
+
cr = @condition.lexical_reach(n)
|
99
|
+
ct = @when_true.car.lexical_reach(n)
|
100
|
+
cf = @when_false.car.lexical_reach(n)
|
101
|
+
|
102
|
+
[cr, ct, cf].max
|
103
|
+
end
|
104
|
+
|
83
105
|
def self.build cond, when_true, when_false
|
84
106
|
tsig = sig(when_true)
|
85
107
|
fsig = sig(when_false)
|
data/lib/nydp/context_symbol.rb
CHANGED
@@ -25,12 +25,18 @@ module Nydp
|
|
25
25
|
end
|
26
26
|
|
27
27
|
code = <<-KLASS
|
28
|
-
def initialize name
|
29
|
-
@name = name
|
28
|
+
def initialize name, lexical_depth
|
29
|
+
@name, @lexical_depth = name, lexical_depth
|
30
|
+
end
|
31
|
+
|
32
|
+
def lexical_reach n
|
33
|
+
@lexical_depth + n
|
30
34
|
end
|
31
35
|
|
32
36
|
def value ctx
|
33
37
|
ctx#{getctx}.#{at_index} || Nydp::NIL
|
38
|
+
rescue
|
39
|
+
raise "failed looking up \#{@name.inspect} (\#{@name.class.name})"
|
34
40
|
end
|
35
41
|
|
36
42
|
def assign value, ctx
|
@@ -45,16 +51,18 @@ module Nydp
|
|
45
51
|
|
46
52
|
def depth ; #{depth} ; end
|
47
53
|
def inspect ; to_s ; end
|
48
|
-
def to_s ; "[#{depth}##{binding_index}]\#{@name}" ; end
|
54
|
+
def to_s ; "[#{depth}##{binding_index}#\#{@lexical_depth}]\#{@name}" ; end
|
49
55
|
KLASS
|
50
56
|
|
51
57
|
const_set name, Class.new(Nydp::ContextSymbol) {
|
52
|
-
eval code
|
58
|
+
eval code, binding, name.to_s, 0
|
53
59
|
}
|
54
60
|
end
|
55
61
|
|
56
|
-
def self.build
|
57
|
-
const_get(:"ContextSymbol_#{
|
62
|
+
def self.build effective_depth, name, binding_index, lexical_depth
|
63
|
+
const_get(:"ContextSymbol_#{effective_depth}_#{binding_index}").new(name, lexical_depth)
|
64
|
+
rescue
|
65
|
+
raise "building ContextSymbol #{[effective_depth, name, binding_index, lexical_depth].inspect}"
|
58
66
|
end
|
59
67
|
end
|
60
68
|
end
|
data/lib/nydp/core.rb
CHANGED
@@ -25,9 +25,11 @@ module Nydp
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def setup ns
|
28
|
-
Symbol.mk(:cons,
|
29
|
-
Symbol.mk(:car,
|
30
|
-
Symbol.mk(:cdr,
|
28
|
+
Symbol.mk(:cons , ns).assign(Nydp::Builtin::RubyWrap::Cons.instance)
|
29
|
+
Symbol.mk(:car , ns).assign(Nydp::Builtin::RubyWrap::Car.instance )
|
30
|
+
Symbol.mk(:cdr , ns).assign(Nydp::Builtin::RubyWrap::Cdr.instance )
|
31
|
+
Symbol.mk(:log , ns).assign(Nydp::Builtin::RubyWrap::Log.instance )
|
32
|
+
|
31
33
|
Symbol.mk(:+, ns).assign(Nydp::Builtin::Plus.instance)
|
32
34
|
Symbol.mk(:-, ns).assign(Nydp::Builtin::Minus.instance)
|
33
35
|
Symbol.mk(:*, ns).assign(Nydp::Builtin::Times.instance)
|
@@ -45,40 +47,50 @@ module Nydp
|
|
45
47
|
Symbol.mk(:p, ns).assign(Nydp::Builtin::Puts.instance)
|
46
48
|
Symbol.mk(:PI, ns).assign 3.1415
|
47
49
|
Symbol.mk(:nil, ns).assign Nydp::NIL
|
50
|
+
Symbol.mk(:rand, ns).assign Nydp::Builtin::Rand.instance
|
48
51
|
Symbol.mk(:sort, ns).assign Nydp::Builtin::Sort.instance
|
52
|
+
Symbol.mk(:abs, ns).assign Nydp::Builtin::Abs.instance
|
49
53
|
Symbol.mk(:sqrt, ns).assign Nydp::Builtin::Sqrt.instance
|
50
54
|
Symbol.mk(:t, ns).assign Nydp::T
|
51
55
|
Symbol.mk(:sym, ns).assign Nydp::Builtin::Sym.instance
|
52
|
-
Symbol.mk(:ensuring,
|
53
|
-
Symbol.mk(:inspect,
|
54
|
-
Symbol.mk(:comment,
|
55
|
-
Symbol.mk("handle-error"
|
56
|
-
Symbol.mk("parse-in-string", ns).assign(Nydp::Builtin::ParseInString.instance)
|
57
|
-
Symbol.mk("random-string"
|
58
|
-
Symbol.mk("to-string"
|
59
|
-
Symbol.mk("
|
60
|
-
Symbol.mk("string-
|
61
|
-
Symbol.mk("string-
|
62
|
-
Symbol.mk("string-
|
63
|
-
Symbol.mk("
|
64
|
-
Symbol.mk("
|
65
|
-
Symbol.mk("
|
66
|
-
Symbol.mk(
|
67
|
-
Symbol.mk(
|
68
|
-
Symbol.mk(
|
69
|
-
Symbol.mk(:"
|
70
|
-
Symbol.mk(:"
|
71
|
-
Symbol.mk(:"hash-
|
72
|
-
Symbol.mk(:"hash-
|
73
|
-
Symbol.mk(:"
|
74
|
-
Symbol.mk(:"
|
75
|
-
Symbol.mk(:"
|
76
|
-
Symbol.mk(:"
|
77
|
-
Symbol.mk(:"
|
78
|
-
Symbol.mk(:"
|
79
|
-
Symbol.mk(:"
|
80
|
-
Symbol.mk(:"
|
81
|
-
Symbol.mk(:"
|
56
|
+
Symbol.mk(:ensuring , ns).assign(Nydp::Builtin::Ensuring.instance)
|
57
|
+
Symbol.mk(:inspect , ns).assign(Nydp::Builtin::Inspect.instance)
|
58
|
+
Symbol.mk(:comment , ns).assign(Nydp::Builtin::Comment.instance)
|
59
|
+
Symbol.mk("handle-error" , ns).assign(Nydp::Builtin::HandleError.instance)
|
60
|
+
Symbol.mk("parse-in-string" , ns).assign(Nydp::Builtin::ParseInString.instance)
|
61
|
+
Symbol.mk("random-string" , ns).assign(Nydp::Builtin::RandomString.instance)
|
62
|
+
Symbol.mk("to-string" , ns).assign(Nydp::Builtin::ToString.instance)
|
63
|
+
Symbol.mk("to-integer" , ns).assign(Nydp::Builtin::ToInteger.instance)
|
64
|
+
Symbol.mk("string-length" , ns).assign(Nydp::Builtin::StringLength.instance)
|
65
|
+
Symbol.mk("string-replace" , ns).assign(Nydp::Builtin::StringReplace.instance)
|
66
|
+
Symbol.mk("string-match" , ns).assign(Nydp::Builtin::StringMatch.instance)
|
67
|
+
Symbol.mk("string-split" , ns).assign(Nydp::Builtin::StringSplit.instance)
|
68
|
+
Symbol.mk("string/pad-left" , ns).assign(Nydp::Builtin::StringPadLeft.instance)
|
69
|
+
Symbol.mk("string/pad-right" , ns).assign(Nydp::Builtin::StringPadRight.instance)
|
70
|
+
Symbol.mk("time" , ns).assign(Nydp::Builtin::Time.instance)
|
71
|
+
Symbol.mk("thread-locals" , ns).assign(Nydp::Builtin::ThreadLocals.instance)
|
72
|
+
Symbol.mk("type-of" , ns).assign(Nydp::Builtin::TypeOf.instance)
|
73
|
+
Symbol.mk(:"eq?" , ns).assign(Nydp::Builtin::IsEqual.instance)
|
74
|
+
Symbol.mk(:"cdr-set" , ns).assign(Nydp::Builtin::CdrSet.instance)
|
75
|
+
Symbol.mk(:"hash-get" , ns).assign(Nydp::Builtin::HashGet.instance)
|
76
|
+
Symbol.mk(:"hash-set" , ns).assign(Nydp::Builtin::HashSet.instance)
|
77
|
+
Symbol.mk(:"hash-keys" , ns).assign(Nydp::Builtin::HashKeys.instance)
|
78
|
+
Symbol.mk(:"hash-key?" , ns).assign(Nydp::Builtin::HashKeyPresent.instance)
|
79
|
+
Symbol.mk(:"hash-merge" , ns).assign(Nydp::Builtin::HashMerge.instance)
|
80
|
+
Symbol.mk(:"hash-slice" , ns).assign(Nydp::Builtin::HashSlice.instance)
|
81
|
+
Symbol.mk(:"vm-info" , ns).assign Nydp::Builtin::VmInfo.instance
|
82
|
+
Symbol.mk(:"pre-compile" , ns).assign Nydp::Builtin::PreCompile.instance
|
83
|
+
Symbol.mk(:"script-run" , ns).assign Nydp::Builtin::ScriptRun.instance
|
84
|
+
Symbol.mk(:"**" , ns).assign Nydp::Builtin::MathPower.instance
|
85
|
+
Symbol.mk(:"⌊" , ns).assign Nydp::Builtin::MathFloor.instance
|
86
|
+
Symbol.mk(:"math-floor" , ns).assign Nydp::Builtin::MathFloor.instance
|
87
|
+
Symbol.mk(:"⌈" , ns).assign Nydp::Builtin::MathCeiling.instance
|
88
|
+
Symbol.mk(:"math-ceiling" , ns).assign Nydp::Builtin::MathCeiling.instance
|
89
|
+
Symbol.mk(:"math-round" , ns).assign Nydp::Builtin::MathRound.instance
|
90
|
+
Symbol.mk(:"⋂" , ns).assign Nydp::Builtin::SetIntersection.instance
|
91
|
+
Symbol.mk(:"set-intersection", ns).assign Nydp::Builtin::SetIntersection.instance
|
92
|
+
Symbol.mk(:"⋃" , ns).assign Nydp::Builtin::SetUnion.instance
|
93
|
+
Symbol.mk(:"set-union" , ns).assign Nydp::Builtin::SetUnion.instance
|
82
94
|
end
|
83
95
|
end
|
84
96
|
end
|