nendo 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/benchmark/benchmark.nnd +57 -0
- data/{example/tak.nnd → benchmark/nendo_benchmark_code.nnd} +6 -2
- data/benchmark/ruby_benchmark_code.rb +58 -0
- data/example/scratch.nnd +52 -6
- data/lib/debug/syslog.nndc +8 -6
- data/lib/init.nnd +14 -14
- data/lib/init.nndc +4142 -2932
- data/lib/nendo/test.nndc +308 -227
- data/lib/nendo.rb +41 -34
- data/lib/srfi-1.nndc +3572 -2599
- data/lib/text/html-lite.nndc +621 -440
- data/lib/text/tree.nndc +38 -27
- data/test/nendo_spec.rb +179 -149
- data/test/nendo_util.nnd +4 -3
- metadata +20 -7
- data/example/tak_ruby_version.rb +0 -14
data/lib/text/tree.nndc
CHANGED
@@ -4,16 +4,17 @@
|
|
4
4
|
#
|
5
5
|
|
6
6
|
trampCall(
|
7
|
-
delayCall( 'require',
|
7
|
+
delayCall( '_require', 'require',
|
8
8
|
begin
|
9
9
|
if @global_lisp_binding.has_key?('_require') then
|
10
10
|
trampCall(@_require)
|
11
11
|
else raise NameError.new( "Error: undefined variable _require", "_require" ) end
|
12
12
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:10"] + __e.backtrace ) ; raise __e
|
13
13
|
end ,
|
14
|
-
|
14
|
+
[
|
15
15
|
"stringio"
|
16
|
-
|
16
|
+
]
|
17
|
+
)
|
17
18
|
)
|
18
19
|
#--------------------
|
19
20
|
|
@@ -38,12 +39,13 @@ trampCall(
|
|
38
39
|
else raise NameError.new( "Error: undefined variable _null_QUMARK", "_null_QUMARK" ) end
|
39
40
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:17"] + __e.backtrace ) ; raise __e
|
40
41
|
end ,
|
41
|
-
|
42
|
+
[
|
42
43
|
begin
|
43
44
|
trampCall(_tree)
|
44
45
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:20"] + __e.backtrace ) ; raise __e
|
45
46
|
end
|
46
|
-
|
47
|
+
]
|
48
|
+
))
|
47
49
|
) then
|
48
50
|
begin
|
49
51
|
true
|
@@ -57,12 +59,13 @@ trampCall(
|
|
57
59
|
else raise NameError.new( "Error: undefined variable _pair_QUMARK", "_pair_QUMARK" ) end
|
58
60
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:18"] + __e.backtrace ) ; raise __e
|
59
61
|
end ,
|
60
|
-
|
62
|
+
[
|
61
63
|
begin
|
62
64
|
trampCall(_tree)
|
63
65
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:20"] + __e.backtrace ) ; raise __e
|
64
66
|
end
|
65
|
-
|
67
|
+
]
|
68
|
+
))
|
66
69
|
) then
|
67
70
|
begin
|
68
71
|
trampCall( self._write_MIMARKtree_METHOD( 'write-tree',
|
@@ -72,7 +75,7 @@ trampCall(
|
|
72
75
|
else raise NameError.new( "Error: undefined variable _write_MIMARKtree", "_write_MIMARKtree" ) end
|
73
76
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:18"] + __e.backtrace ) ; raise __e
|
74
77
|
end ,
|
75
|
-
|
78
|
+
[
|
76
79
|
trampCall( self._car_METHOD( 'car',
|
77
80
|
begin
|
78
81
|
if @global_lisp_binding.has_key?('_car') then
|
@@ -80,23 +83,25 @@ trampCall(
|
|
80
83
|
else raise NameError.new( "Error: undefined variable _car", "_car" ) end
|
81
84
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:18"] + __e.backtrace ) ; raise __e
|
82
85
|
end ,
|
83
|
-
|
86
|
+
[
|
84
87
|
begin
|
85
88
|
trampCall(_tree)
|
86
89
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:20"] + __e.backtrace ) ; raise __e
|
87
90
|
end
|
88
|
-
|
91
|
+
]
|
92
|
+
)) ,
|
89
93
|
begin
|
90
94
|
trampCall(_out)
|
91
95
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:18"] + __e.backtrace ) ; raise __e
|
92
96
|
end
|
93
|
-
|
94
|
-
|
97
|
+
]
|
98
|
+
))
|
99
|
+
delayCall( '_loop', 'loop',
|
95
100
|
begin
|
96
101
|
trampCall(_loop)
|
97
102
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:18"] + __e.backtrace ) ; raise __e
|
98
103
|
end ,
|
99
|
-
|
104
|
+
[
|
100
105
|
trampCall( self._cdr_METHOD( 'cdr',
|
101
106
|
begin
|
102
107
|
if @global_lisp_binding.has_key?('_cdr') then
|
@@ -104,13 +109,15 @@ trampCall(
|
|
104
109
|
else raise NameError.new( "Error: undefined variable _cdr", "_cdr" ) end
|
105
110
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:18"] + __e.backtrace ) ; raise __e
|
106
111
|
end ,
|
107
|
-
|
112
|
+
[
|
108
113
|
begin
|
109
114
|
trampCall(_tree)
|
110
115
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:20"] + __e.backtrace ) ; raise __e
|
111
116
|
end
|
112
|
-
|
113
|
-
|
117
|
+
]
|
118
|
+
))
|
119
|
+
]
|
120
|
+
)
|
114
121
|
end
|
115
122
|
else
|
116
123
|
if (
|
@@ -133,17 +140,18 @@ trampCall(
|
|
133
140
|
end
|
134
141
|
end
|
135
142
|
}
|
136
|
-
delayCall( 'loop',
|
143
|
+
delayCall( '_loop', 'loop',
|
137
144
|
begin
|
138
145
|
trampCall(_loop)
|
139
146
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:18"] + __e.backtrace ) ; raise __e
|
140
147
|
end ,
|
141
|
-
|
148
|
+
[
|
142
149
|
begin
|
143
150
|
trampCall(_tree)
|
144
151
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:20"] + __e.backtrace ) ; raise __e
|
145
152
|
end
|
146
|
-
|
153
|
+
]
|
154
|
+
)
|
147
155
|
} ; ___lambda.call(
|
148
156
|
nil
|
149
157
|
)
|
@@ -157,31 +165,33 @@ trampCall(
|
|
157
165
|
else raise NameError.new( "Error: undefined variable _null_QUMARK", "_null_QUMARK" ) end
|
158
166
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:17"] + __e.backtrace ) ; raise __e
|
159
167
|
end ,
|
160
|
-
|
168
|
+
[
|
161
169
|
begin
|
162
170
|
trampCall(_out)
|
163
171
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:18"] + __e.backtrace ) ; raise __e
|
164
172
|
end
|
165
|
-
|
173
|
+
]
|
174
|
+
))
|
166
175
|
) then
|
167
176
|
begin
|
168
177
|
trampCall(STDOUT)
|
169
178
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:14"] + __e.backtrace ) ; raise __e
|
170
179
|
end
|
171
180
|
else
|
172
|
-
delayCall( 'car',
|
181
|
+
delayCall( '_car', 'car',
|
173
182
|
begin
|
174
183
|
if @global_lisp_binding.has_key?('_car') then
|
175
184
|
trampCall(@_car)
|
176
185
|
else raise NameError.new( "Error: undefined variable _car", "_car" ) end
|
177
186
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:18"] + __e.backtrace ) ; raise __e
|
178
187
|
end ,
|
179
|
-
|
188
|
+
[
|
180
189
|
begin
|
181
190
|
trampCall(_out)
|
182
191
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:18"] + __e.backtrace ) ; raise __e
|
183
192
|
end
|
184
|
-
|
193
|
+
]
|
194
|
+
)
|
185
195
|
end
|
186
196
|
)
|
187
197
|
end
|
@@ -207,16 +217,17 @@ trampCall(
|
|
207
217
|
else raise NameError.new( "Error: undefined variable _write_MIMARKtree", "_write_MIMARKtree" ) end
|
208
218
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:24"] + __e.backtrace ) ; raise __e
|
209
219
|
end ,
|
210
|
-
|
220
|
+
[
|
211
221
|
begin
|
212
222
|
trampCall(_tree)
|
213
223
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:24"] + __e.backtrace ) ; raise __e
|
214
|
-
end ,
|
224
|
+
end ,
|
215
225
|
begin
|
216
226
|
trampCall(_sio)
|
217
227
|
rescue => __e ; __e.set_backtrace( ["./lib/text/tree.nnd:24"] + __e.backtrace ) ; raise __e
|
218
228
|
end
|
219
|
-
|
229
|
+
]
|
230
|
+
))
|
220
231
|
begin
|
221
232
|
trampCall(_sio).string(
|
222
233
|
)
|
data/test/nendo_spec.rb
CHANGED
@@ -553,155 +553,6 @@ describe Nendo, "when read various list expressions" do
|
|
553
553
|
end
|
554
554
|
|
555
555
|
|
556
|
-
describe Nendo, "when use #xxxx syntax " do
|
557
|
-
before do
|
558
|
-
@nendo = Nendo::Core.new()
|
559
|
-
@nendo.loadInitFile
|
560
|
-
end
|
561
|
-
it "should" do
|
562
|
-
@nendo.evalStr( " #t " ).should == "#t"
|
563
|
-
@nendo.evalStr( " #f " ).should == "#f"
|
564
|
-
@nendo.evalStr( " '#( 1 ) " ).should == "#(1)"
|
565
|
-
@nendo.evalStr( " '#() " ).should == "#()"
|
566
|
-
@nendo.evalStr( " #! \n #t" ).should == "#t"
|
567
|
-
@nendo.evalStr( " #! \n 100" ).should == "100"
|
568
|
-
@nendo.evalStr( " #! 123 \n 100" ).should == "100"
|
569
|
-
@nendo.evalStr( " '#?=1" ).should == "(debug-print 1 \"(string)\" 1 '1)"
|
570
|
-
@nendo.evalStr( " #b0 " ).should == Integer("0b0").to_s
|
571
|
-
@nendo.evalStr( " #b01 " ).should == Integer("0b01").to_s
|
572
|
-
@nendo.evalStr( " #b10 " ).should == Integer("0b10").to_s
|
573
|
-
@nendo.evalStr( " #b00000001 " ).should == Integer("0b00000001").to_s
|
574
|
-
@nendo.evalStr( " #b1010101010101010 " ).should == Integer("0b1010101010101010").to_s
|
575
|
-
lambda { @nendo.evalStr( " #b2 " ) }.should raise_error(RuntimeError)
|
576
|
-
lambda { @nendo.evalStr( " #b02 " ) }.should raise_error(RuntimeError)
|
577
|
-
lambda { @nendo.evalStr( " #bF " ) }.should raise_error(RuntimeError)
|
578
|
-
@nendo.evalStr( " #o0 " ).should == Integer("0o0").to_s
|
579
|
-
@nendo.evalStr( " #o7 " ).should == Integer("0o7").to_s
|
580
|
-
@nendo.evalStr( " #o01 " ).should == Integer("0o01").to_s
|
581
|
-
@nendo.evalStr( " #o10 " ).should == Integer("0o10").to_s
|
582
|
-
@nendo.evalStr( " #o777 " ).should == Integer("0o777").to_s
|
583
|
-
@nendo.evalStr( " #o00000007 " ).should == Integer("0o00000007").to_s
|
584
|
-
@nendo.evalStr( " #o0123456701234567 " ).should == Integer("0o0123456701234567").to_s
|
585
|
-
lambda { @nendo.evalStr( " #o8 " ) }.should raise_error(RuntimeError)
|
586
|
-
lambda { @nendo.evalStr( " #o08 " ) }.should raise_error(RuntimeError)
|
587
|
-
lambda { @nendo.evalStr( " #oA " ) }.should raise_error(RuntimeError)
|
588
|
-
@nendo.evalStr( " #d0 " ).should == Integer("0d0").to_s
|
589
|
-
@nendo.evalStr( " #d9 " ).should == Integer("0d9").to_s
|
590
|
-
@nendo.evalStr( " #d01 " ).should == Integer("0d01").to_s
|
591
|
-
@nendo.evalStr( " #d10 " ).should == Integer("0d10").to_s
|
592
|
-
@nendo.evalStr( " #d999 " ).should == Integer("0d999").to_s
|
593
|
-
@nendo.evalStr( " #d00000009 " ).should == Integer("0d00000009").to_s
|
594
|
-
@nendo.evalStr( " #d0123456701234567 " ).should == Integer("0d0123456701234567").to_s
|
595
|
-
lambda { @nendo.evalStr( " #dA " ) }.should raise_error(RuntimeError)
|
596
|
-
lambda { @nendo.evalStr( " #dF " ) }.should raise_error(RuntimeError)
|
597
|
-
@nendo.evalStr( " #x0 " ).should == Integer("0x0").to_s
|
598
|
-
@nendo.evalStr( " #x9 " ).should == Integer("0x9").to_s
|
599
|
-
@nendo.evalStr( " #xA " ).should == Integer("0xA").to_s
|
600
|
-
@nendo.evalStr( " #xF " ).should == Integer("0xF").to_s
|
601
|
-
@nendo.evalStr( " #x01 " ).should == Integer("0x01").to_s
|
602
|
-
@nendo.evalStr( " #x10 " ).should == Integer("0x10").to_s
|
603
|
-
@nendo.evalStr( " #xFFF " ).should == Integer("0xFFF").to_s
|
604
|
-
@nendo.evalStr( " #x0000000F " ).should == Integer("0x0000000F").to_s
|
605
|
-
@nendo.evalStr( " #x0123456789ABCDEF0123456789ABCDEF " ).should == Integer("0x0123456789ABCDEF0123456789ABCDEF").to_s
|
606
|
-
lambda { @nendo.evalStr( " #xg " ) }.should raise_error(RuntimeError)
|
607
|
-
lambda { @nendo.evalStr( " #xh " ) }.should raise_error(RuntimeError)
|
608
|
-
lambda { @nendo.evalStr( " #xz " ) }.should raise_error(RuntimeError)
|
609
|
-
lambda { @nendo.evalStr( " #xG " ) }.should raise_error(RuntimeError)
|
610
|
-
lambda { @nendo.evalStr( " #xH " ) }.should raise_error(RuntimeError)
|
611
|
-
lambda { @nendo.evalStr( " #xZ " ) }.should raise_error(RuntimeError)
|
612
|
-
lambda { @nendo.evalStr( " #a " ) }.should raise_error(NameError)
|
613
|
-
lambda { @nendo.evalStr( " #c " ) }.should raise_error(NameError)
|
614
|
-
lambda { @nendo.evalStr( " #e " ) }.should raise_error(NameError)
|
615
|
-
lambda { @nendo.evalStr( " #tt " ) }.should raise_error(NameError)
|
616
|
-
lambda { @nendo.evalStr( " #ff " ) }.should raise_error(NameError)
|
617
|
-
lambda { @nendo.evalStr( " #abc " ) }.should raise_error(NameError)
|
618
|
-
lambda { @nendo.evalStr( " #? " ) }.should raise_error(NameError)
|
619
|
-
lambda { @nendo.evalStr( " #?a " ) }.should raise_error(NameError)
|
620
|
-
lambda { @nendo.evalStr( " #= " ) }.should raise_error(NameError)
|
621
|
-
lambda { @nendo.evalStr( " #?? " ) }.should raise_error(NameError)
|
622
|
-
end
|
623
|
-
end
|
624
|
-
|
625
|
-
describe Nendo, "when use regexp litteral and library functions " do
|
626
|
-
before do
|
627
|
-
@nendo = Nendo::Core.new()
|
628
|
-
@nendo.loadInitFile
|
629
|
-
end
|
630
|
-
it "should" do
|
631
|
-
@nendo.evalStr( " #/abc/ " ).should == "#/abc/"
|
632
|
-
@nendo.evalStr( " #/[a-z]/ " ).should == "#/[a-z]/"
|
633
|
-
@nendo.evalStr( " #/[a-zA-Z0-9]+/ " ).should == "#/[a-zA-Z0-9]+/"
|
634
|
-
@nendo.evalStr( " #/\\d/ " ).should == "#/\\d/"
|
635
|
-
@nendo.evalStr( " #/[\\/]/ " ).should == "#/[/]/"
|
636
|
-
@nendo.evalStr( " #/abc/i " ).should == "#/abc/i"
|
637
|
-
@nendo.evalStr( " #/[a-z]/i " ).should == "#/[a-z]/i"
|
638
|
-
lambda { @nendo.evalStr( " #/[a-z]/I " ) }.should raise_error(NameError)
|
639
|
-
lambda { @nendo.evalStr( " #/[a-z]/a " ) }.should raise_error(NameError)
|
640
|
-
|
641
|
-
@nendo.evalStr( " (string->regexp \"abc\") " ).should == "#/abc/"
|
642
|
-
@nendo.evalStr( " (string->regexp \"[a-z]\") " ).should == "#/[a-z]/"
|
643
|
-
@nendo.evalStr( " (string->regexp \"[a-zA-Z0-9]+\" ) " ).should == "#/[a-zA-Z0-9]+/"
|
644
|
-
@nendo.evalStr( " (string->regexp \"\\\\d\" ) " ).should == "#/\\d/"
|
645
|
-
@nendo.evalStr( " (regexp? #/str/ ) " ).should == "#t"
|
646
|
-
@nendo.evalStr( " (regexp? #/str/i ) " ).should == "#t"
|
647
|
-
@nendo.evalStr( " (regexp? \"str\" ) " ).should == "#f"
|
648
|
-
@nendo.evalStr( " (regexp? 'str) " ).should == "#f"
|
649
|
-
@nendo.evalStr( " (regexp? (. \"str\" intern)) " ).should == "#f"
|
650
|
-
@nendo.evalStr( " (regexp? 100) " ).should == "#f"
|
651
|
-
|
652
|
-
@nendo.evalStr( " (regexp->string #/abc/ ) " ).should == '"abc"'
|
653
|
-
@nendo.evalStr( " (regexp->string #/[a-z]/ ) " ).should == '"[a-z]"'
|
654
|
-
@nendo.evalStr( " (regexp->string #/[a-zA-Z0-9]+/ ) " ).should == '"[a-zA-Z0-9]+"'
|
655
|
-
@nendo.evalStr( ' (regexp->string #/\d+/ ) ' ).should == '"\\\\d+"'
|
656
|
-
|
657
|
-
@nendo.evalStr( ' (define matchdata (rxmatch #/(\d+):(\d+)/ "foo314:2000bar")) ' ).should == '314:2000'
|
658
|
-
@nendo.evalStr( ' (rxmatch-start matchdata) ' ).should == '3'
|
659
|
-
@nendo.evalStr( ' (rxmatch-start matchdata 0) ' ).should == '3'
|
660
|
-
@nendo.evalStr( ' (rxmatch-start matchdata 1) ' ).should == '3'
|
661
|
-
@nendo.evalStr( ' (rxmatch-start matchdata 2) ' ).should == '7'
|
662
|
-
@nendo.evalStr( ' (rxmatch-end matchdata) ' ).should == '11'
|
663
|
-
@nendo.evalStr( ' (rxmatch-end matchdata 0) ' ).should == '11'
|
664
|
-
@nendo.evalStr( ' (rxmatch-end matchdata 1) ' ).should == '6'
|
665
|
-
@nendo.evalStr( ' (rxmatch-end matchdata 2) ' ).should == '11'
|
666
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata) ' ).should == '"314:2000"'
|
667
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata 0) ' ).should == '"314:2000"'
|
668
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata 1) ' ).should == '"314"'
|
669
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata 2) ' ).should == '"2000"'
|
670
|
-
@nendo.evalStr( ' (rxmatch-num-matches matchdata) ' ).should == '3'
|
671
|
-
|
672
|
-
@nendo.evalStr( ' (define matchdata (rxmatch #/(\w+)@([\w.]+)/ "foo@example.com")) ' ).should == 'foo@example.com'
|
673
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata) ' ).should == '"foo@example.com"'
|
674
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata 0) ' ).should == '"foo@example.com"'
|
675
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata 1) ' ).should == '"foo"'
|
676
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata 2) ' ).should == '"example.com"'
|
677
|
-
|
678
|
-
@nendo.evalStr( ' (rxmatch->string #/(\w+)@([\w.]+)/ "foo@example.com")' ).should == '"foo@example.com"'
|
679
|
-
@nendo.evalStr( ' (rxmatch->string #/(\w+)@([\w.]+)/ "foo@example.com" 0)' ).should == '"foo@example.com"'
|
680
|
-
@nendo.evalStr( ' (rxmatch->string #/(\w+)@([\w.]+)/ "foo@example.com" 1)' ).should == '"foo"'
|
681
|
-
@nendo.evalStr( ' (rxmatch->string #/(\w+)@([\w.]+)/ "foo@example.com" 2)' ).should == '"example.com"'
|
682
|
-
|
683
|
-
@nendo.evalStr( ' (rxmatch->string #/abc/ "000abc00ABC000")' ).should == '"abc"'
|
684
|
-
@nendo.evalStr( ' (rxmatch->string #/ABC/ "000abc00ABC000")' ).should == '"ABC"'
|
685
|
-
@nendo.evalStr( ' (rxmatch->string #/abc/i "abc")' ).should == '"abc"'
|
686
|
-
@nendo.evalStr( ' (rxmatch->string #/abc/i "ABC")' ).should == '"ABC"'
|
687
|
-
@nendo.evalStr( ' (rxmatch->string #/ABC/i "abc")' ).should == '"abc"'
|
688
|
-
@nendo.evalStr( ' (rxmatch->string #/abc/i "AbC")' ).should == '"AbC"'
|
689
|
-
|
690
|
-
@nendo.evalStr( ' (rxmatch #/abc/i "xxx")' ).should == '#f'
|
691
|
-
@nendo.evalStr( ' (rxmatch #/XXX/ "xxx")' ).should == '#f'
|
692
|
-
@nendo.evalStr( ' (rxmatch->string #/abc/i "xxx")' ).should == '#f'
|
693
|
-
@nendo.evalStr( ' (rxmatch->string #/XXX/ "xxx")' ).should == '#f'
|
694
|
-
|
695
|
-
pending( "JRuby can't compute correctly" ) if defined? JRUBY_VERSION
|
696
|
-
@nendo.evalStr( ' (define matchdata (rxmatch #/([あ-ん])([あ-ん])([あ-ん])([あ-ん])([あ-ん])/ "ABC漢字あいうえお漢字ABC")) ' ).should == 'あいうえお'
|
697
|
-
@nendo.evalStr( ' (rxmatch-start matchdata) ' ).should == '5'
|
698
|
-
@nendo.evalStr( ' (rxmatch-end matchdata) ' ).should == '10'
|
699
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata) ' ).should == '"あいうえお"'
|
700
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata 1) ' ).should == '"あ"'
|
701
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata 2) ' ).should == '"い"'
|
702
|
-
@nendo.evalStr( ' (rxmatch-substring matchdata 3) ' ).should == '"う"'
|
703
|
-
end
|
704
|
-
end
|
705
556
|
|
706
557
|
|
707
558
|
class TestClassForBlockArgument
|
@@ -772,6 +623,7 @@ describe Nendo, "when call evalStr() with built-in functions" do
|
|
772
623
|
@nendo.evalStr( " (cons '(1 2) '(3 4)) " ).should == "((1 2) 3 4)"
|
773
624
|
@nendo.evalStr( " (cons '(1 2) '((3 4))) " ).should == "((1 2) (3 4))"
|
774
625
|
@nendo.evalStr( " (cons '() '()) " ).should == "(())"
|
626
|
+
@nendo.evalStr( " (cons 1 '()) " ).should == "(1)"
|
775
627
|
@nendo.evalStr( " (cons '() (cdr '(100))) " ).should == "(())"
|
776
628
|
@nendo.evalStr( " (cons '() (car '(()))) " ).should == "(())"
|
777
629
|
@nendo.evalStr( " (cons (car '(())) '()) " ).should == "(())"
|
@@ -898,6 +750,13 @@ describe Nendo, "when call evalStr() with built-in functions" do
|
|
898
750
|
@nendo.evalStr( ' (string-join \'("Aa" "Bb" "Cc") "//") ' ).should == '"Aa//Bb//Cc"'
|
899
751
|
lambda { @nendo.evalStr( ' (string-join \'("Aa" "Bb" "Cc") 100) ' ) }.should raise_error(TypeError)
|
900
752
|
lambda { @nendo.evalStr( ' (string-join \'("Aa" "Bb" "Cc") :xx) ' ) }.should raise_error(TypeError)
|
753
|
+
@nendo.evalStr( ' (read-from-string "1") ' ).should == '1'
|
754
|
+
@nendo.evalStr( ' (read-from-string "(+ 1 2)") ' ).should == '(+ 1 2)'
|
755
|
+
@nendo.evalStr( ' (read-from-string "(\"Aa\" \"Bb\" \"Cc\")") ' ).should == '("Aa" "Bb" "Cc")'
|
756
|
+
lambda { @nendo.evalStr( ' (read-from-string 100) ' ) }.should raise_error(TypeError)
|
757
|
+
@nendo.evalStr( ' (write-to-string 1) ' ).should == '"1"'
|
758
|
+
@nendo.evalStr( ' (write-to-string \'(+ 1 2)) ' ).should == '"(+ 1 2)"'
|
759
|
+
@nendo.evalStr( ' (write-to-string \'("Aa" "Bb" "Cc")) ' ).should == '"(\"Aa\" \"Bb\" \"Cc\")"'
|
901
760
|
end
|
902
761
|
end
|
903
762
|
|
@@ -986,6 +845,10 @@ describe Nendo, "when call evalStr() with built-in special forms" do
|
|
986
845
|
@nendo.evalStr( " ((lambda (arg1) arg1) (+ 1 2 3))" ).should == "6"
|
987
846
|
@nendo.evalStr( " ((if #t + *) 3 4)" ).should == "7"
|
988
847
|
@nendo.evalStr( " ((if #f + *) 3 4)" ).should == "12"
|
848
|
+
@nendo.evalStr( " (apply1 + '(1 2))" ).should == "3"
|
849
|
+
@nendo.evalStr( " (apply1 + (range 10 1))" ).should == "55"
|
850
|
+
@nendo.evalStr( " (apply1 cons '(1 2))" ).should == "(1 . 2)"
|
851
|
+
@nendo.evalStr( " (apply1 list '(1 2 3))" ).should == "(1 2 3)"
|
989
852
|
lambda { @nendo.evalStr( " (error \"My Runtime Error\") " ) }.should raise_error( RuntimeError )
|
990
853
|
end
|
991
854
|
end
|
@@ -1040,6 +903,158 @@ describe Nendo, "when call evalStr() with macroexpand-1 function" do
|
|
1040
903
|
end
|
1041
904
|
end
|
1042
905
|
|
906
|
+
|
907
|
+
describe Nendo, "when use #xxxx syntax " do
|
908
|
+
before do
|
909
|
+
@nendo = Nendo::Core.new()
|
910
|
+
@nendo.loadInitFile
|
911
|
+
end
|
912
|
+
it "should" do
|
913
|
+
@nendo.evalStr( " #t " ).should == "#t"
|
914
|
+
@nendo.evalStr( " #f " ).should == "#f"
|
915
|
+
@nendo.evalStr( " '#( 1 ) " ).should == "#(1)"
|
916
|
+
@nendo.evalStr( " '#() " ).should == "#()"
|
917
|
+
@nendo.evalStr( " #! \n #t" ).should == "#t"
|
918
|
+
@nendo.evalStr( " #! \n 100" ).should == "100"
|
919
|
+
@nendo.evalStr( " #! 123 \n 100" ).should == "100"
|
920
|
+
@nendo.evalStr( " '#?=1" ).should == "(debug-print 1 \"(string)\" 1 '1)"
|
921
|
+
@nendo.evalStr( " #b0 " ).should == Integer("0b0").to_s
|
922
|
+
@nendo.evalStr( " #b01 " ).should == Integer("0b01").to_s
|
923
|
+
@nendo.evalStr( " #b10 " ).should == Integer("0b10").to_s
|
924
|
+
@nendo.evalStr( " #b00000001 " ).should == Integer("0b00000001").to_s
|
925
|
+
@nendo.evalStr( " #b1010101010101010 " ).should == Integer("0b1010101010101010").to_s
|
926
|
+
lambda { @nendo.evalStr( " #b2 " ) }.should raise_error(RuntimeError)
|
927
|
+
lambda { @nendo.evalStr( " #b02 " ) }.should raise_error(RuntimeError)
|
928
|
+
lambda { @nendo.evalStr( " #bF " ) }.should raise_error(RuntimeError)
|
929
|
+
@nendo.evalStr( " #o0 " ).should == Integer("0o0").to_s
|
930
|
+
@nendo.evalStr( " #o7 " ).should == Integer("0o7").to_s
|
931
|
+
@nendo.evalStr( " #o01 " ).should == Integer("0o01").to_s
|
932
|
+
@nendo.evalStr( " #o10 " ).should == Integer("0o10").to_s
|
933
|
+
@nendo.evalStr( " #o777 " ).should == Integer("0o777").to_s
|
934
|
+
@nendo.evalStr( " #o00000007 " ).should == Integer("0o00000007").to_s
|
935
|
+
@nendo.evalStr( " #o0123456701234567 " ).should == Integer("0o0123456701234567").to_s
|
936
|
+
lambda { @nendo.evalStr( " #o8 " ) }.should raise_error(RuntimeError)
|
937
|
+
lambda { @nendo.evalStr( " #o08 " ) }.should raise_error(RuntimeError)
|
938
|
+
lambda { @nendo.evalStr( " #oA " ) }.should raise_error(RuntimeError)
|
939
|
+
@nendo.evalStr( " #d0 " ).should == Integer("0d0").to_s
|
940
|
+
@nendo.evalStr( " #d9 " ).should == Integer("0d9").to_s
|
941
|
+
@nendo.evalStr( " #d01 " ).should == Integer("0d01").to_s
|
942
|
+
@nendo.evalStr( " #d10 " ).should == Integer("0d10").to_s
|
943
|
+
@nendo.evalStr( " #d999 " ).should == Integer("0d999").to_s
|
944
|
+
@nendo.evalStr( " #d00000009 " ).should == Integer("0d00000009").to_s
|
945
|
+
@nendo.evalStr( " #d0123456701234567 " ).should == Integer("0d0123456701234567").to_s
|
946
|
+
lambda { @nendo.evalStr( " #dA " ) }.should raise_error(RuntimeError)
|
947
|
+
lambda { @nendo.evalStr( " #dF " ) }.should raise_error(RuntimeError)
|
948
|
+
@nendo.evalStr( " #x0 " ).should == Integer("0x0").to_s
|
949
|
+
@nendo.evalStr( " #x9 " ).should == Integer("0x9").to_s
|
950
|
+
@nendo.evalStr( " #xA " ).should == Integer("0xA").to_s
|
951
|
+
@nendo.evalStr( " #xF " ).should == Integer("0xF").to_s
|
952
|
+
@nendo.evalStr( " #x01 " ).should == Integer("0x01").to_s
|
953
|
+
@nendo.evalStr( " #x10 " ).should == Integer("0x10").to_s
|
954
|
+
@nendo.evalStr( " #xFFF " ).should == Integer("0xFFF").to_s
|
955
|
+
@nendo.evalStr( " #x0000000F " ).should == Integer("0x0000000F").to_s
|
956
|
+
@nendo.evalStr( " #x0123456789ABCDEF0123456789ABCDEF " ).should == Integer("0x0123456789ABCDEF0123456789ABCDEF").to_s
|
957
|
+
lambda { @nendo.evalStr( " #xg " ) }.should raise_error(RuntimeError)
|
958
|
+
lambda { @nendo.evalStr( " #xh " ) }.should raise_error(RuntimeError)
|
959
|
+
lambda { @nendo.evalStr( " #xz " ) }.should raise_error(RuntimeError)
|
960
|
+
lambda { @nendo.evalStr( " #xG " ) }.should raise_error(RuntimeError)
|
961
|
+
lambda { @nendo.evalStr( " #xH " ) }.should raise_error(RuntimeError)
|
962
|
+
lambda { @nendo.evalStr( " #xZ " ) }.should raise_error(RuntimeError)
|
963
|
+
lambda { @nendo.evalStr( " #a " ) }.should raise_error(NameError)
|
964
|
+
lambda { @nendo.evalStr( " #c " ) }.should raise_error(NameError)
|
965
|
+
lambda { @nendo.evalStr( " #e " ) }.should raise_error(NameError)
|
966
|
+
lambda { @nendo.evalStr( " #tt " ) }.should raise_error(NameError)
|
967
|
+
lambda { @nendo.evalStr( " #ff " ) }.should raise_error(NameError)
|
968
|
+
lambda { @nendo.evalStr( " #abc " ) }.should raise_error(NameError)
|
969
|
+
lambda { @nendo.evalStr( " #? " ) }.should raise_error(NameError)
|
970
|
+
lambda { @nendo.evalStr( " #?a " ) }.should raise_error(NameError)
|
971
|
+
lambda { @nendo.evalStr( " #= " ) }.should raise_error(NameError)
|
972
|
+
lambda { @nendo.evalStr( " #?? " ) }.should raise_error(NameError)
|
973
|
+
end
|
974
|
+
end
|
975
|
+
|
976
|
+
describe Nendo, "when use regexp litteral and library functions " do
|
977
|
+
before do
|
978
|
+
@nendo = Nendo::Core.new()
|
979
|
+
@nendo.loadInitFile
|
980
|
+
end
|
981
|
+
it "should" do
|
982
|
+
@nendo.evalStr( " #/abc/ " ).should == "#/abc/"
|
983
|
+
@nendo.evalStr( " #/[a-z]/ " ).should == "#/[a-z]/"
|
984
|
+
@nendo.evalStr( " #/[a-zA-Z0-9]+/ " ).should == "#/[a-zA-Z0-9]+/"
|
985
|
+
@nendo.evalStr( " #/\\d/ " ).should == "#/\\d/"
|
986
|
+
@nendo.evalStr( " #/[\\/]/ " ).should == "#/[/]/"
|
987
|
+
@nendo.evalStr( " #/abc/i " ).should == "#/abc/i"
|
988
|
+
@nendo.evalStr( " #/[a-z]/i " ).should == "#/[a-z]/i"
|
989
|
+
lambda { @nendo.evalStr( " #/[a-z]/I " ) }.should raise_error(NameError)
|
990
|
+
lambda { @nendo.evalStr( " #/[a-z]/a " ) }.should raise_error(NameError)
|
991
|
+
|
992
|
+
@nendo.evalStr( " (string->regexp \"abc\") " ).should == "#/abc/"
|
993
|
+
@nendo.evalStr( " (string->regexp \"[a-z]\") " ).should == "#/[a-z]/"
|
994
|
+
@nendo.evalStr( " (string->regexp \"[a-zA-Z0-9]+\" ) " ).should == "#/[a-zA-Z0-9]+/"
|
995
|
+
@nendo.evalStr( " (string->regexp \"\\\\d\" ) " ).should == "#/\\d/"
|
996
|
+
@nendo.evalStr( " (regexp? #/str/ ) " ).should == "#t"
|
997
|
+
@nendo.evalStr( " (regexp? #/str/i ) " ).should == "#t"
|
998
|
+
@nendo.evalStr( " (regexp? \"str\" ) " ).should == "#f"
|
999
|
+
@nendo.evalStr( " (regexp? 'str) " ).should == "#f"
|
1000
|
+
@nendo.evalStr( " (regexp? (. \"str\" intern)) " ).should == "#f"
|
1001
|
+
@nendo.evalStr( " (regexp? 100) " ).should == "#f"
|
1002
|
+
|
1003
|
+
@nendo.evalStr( " (regexp->string #/abc/ ) " ).should == '"abc"'
|
1004
|
+
@nendo.evalStr( " (regexp->string #/[a-z]/ ) " ).should == '"[a-z]"'
|
1005
|
+
@nendo.evalStr( " (regexp->string #/[a-zA-Z0-9]+/ ) " ).should == '"[a-zA-Z0-9]+"'
|
1006
|
+
@nendo.evalStr( ' (regexp->string #/\d+/ ) ' ).should == '"\\\\d+"'
|
1007
|
+
|
1008
|
+
@nendo.evalStr( ' (define matchdata (rxmatch #/(\d+):(\d+)/ "foo314:2000bar")) ' ).should == '314:2000'
|
1009
|
+
@nendo.evalStr( ' (rxmatch-start matchdata) ' ).should == '3'
|
1010
|
+
@nendo.evalStr( ' (rxmatch-start matchdata 0) ' ).should == '3'
|
1011
|
+
@nendo.evalStr( ' (rxmatch-start matchdata 1) ' ).should == '3'
|
1012
|
+
@nendo.evalStr( ' (rxmatch-start matchdata 2) ' ).should == '7'
|
1013
|
+
@nendo.evalStr( ' (rxmatch-end matchdata) ' ).should == '11'
|
1014
|
+
@nendo.evalStr( ' (rxmatch-end matchdata 0) ' ).should == '11'
|
1015
|
+
@nendo.evalStr( ' (rxmatch-end matchdata 1) ' ).should == '6'
|
1016
|
+
@nendo.evalStr( ' (rxmatch-end matchdata 2) ' ).should == '11'
|
1017
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata) ' ).should == '"314:2000"'
|
1018
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata 0) ' ).should == '"314:2000"'
|
1019
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata 1) ' ).should == '"314"'
|
1020
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata 2) ' ).should == '"2000"'
|
1021
|
+
@nendo.evalStr( ' (rxmatch-num-matches matchdata) ' ).should == '3'
|
1022
|
+
|
1023
|
+
@nendo.evalStr( ' (define matchdata (rxmatch #/(\w+)@([\w.]+)/ "foo@example.com")) ' ).should == 'foo@example.com'
|
1024
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata) ' ).should == '"foo@example.com"'
|
1025
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata 0) ' ).should == '"foo@example.com"'
|
1026
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata 1) ' ).should == '"foo"'
|
1027
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata 2) ' ).should == '"example.com"'
|
1028
|
+
|
1029
|
+
@nendo.evalStr( ' (rxmatch->string #/(\w+)@([\w.]+)/ "foo@example.com")' ).should == '"foo@example.com"'
|
1030
|
+
@nendo.evalStr( ' (rxmatch->string #/(\w+)@([\w.]+)/ "foo@example.com" 0)' ).should == '"foo@example.com"'
|
1031
|
+
@nendo.evalStr( ' (rxmatch->string #/(\w+)@([\w.]+)/ "foo@example.com" 1)' ).should == '"foo"'
|
1032
|
+
@nendo.evalStr( ' (rxmatch->string #/(\w+)@([\w.]+)/ "foo@example.com" 2)' ).should == '"example.com"'
|
1033
|
+
|
1034
|
+
@nendo.evalStr( ' (rxmatch->string #/abc/ "000abc00ABC000")' ).should == '"abc"'
|
1035
|
+
@nendo.evalStr( ' (rxmatch->string #/ABC/ "000abc00ABC000")' ).should == '"ABC"'
|
1036
|
+
@nendo.evalStr( ' (rxmatch->string #/abc/i "abc")' ).should == '"abc"'
|
1037
|
+
@nendo.evalStr( ' (rxmatch->string #/abc/i "ABC")' ).should == '"ABC"'
|
1038
|
+
@nendo.evalStr( ' (rxmatch->string #/ABC/i "abc")' ).should == '"abc"'
|
1039
|
+
@nendo.evalStr( ' (rxmatch->string #/abc/i "AbC")' ).should == '"AbC"'
|
1040
|
+
|
1041
|
+
@nendo.evalStr( ' (rxmatch #/abc/i "xxx")' ).should == '#f'
|
1042
|
+
@nendo.evalStr( ' (rxmatch #/XXX/ "xxx")' ).should == '#f'
|
1043
|
+
@nendo.evalStr( ' (rxmatch->string #/abc/i "xxx")' ).should == '#f'
|
1044
|
+
@nendo.evalStr( ' (rxmatch->string #/XXX/ "xxx")' ).should == '#f'
|
1045
|
+
|
1046
|
+
pending( "JRuby can't compute correctly" ) if defined? JRUBY_VERSION
|
1047
|
+
@nendo.evalStr( ' (define matchdata (rxmatch #/([あ-ん])([あ-ん])([あ-ん])([あ-ん])([あ-ん])/ "ABC漢字あいうえお漢字ABC")) ' ).should == 'あいうえお'
|
1048
|
+
@nendo.evalStr( ' (rxmatch-start matchdata) ' ).should == '5'
|
1049
|
+
@nendo.evalStr( ' (rxmatch-end matchdata) ' ).should == '10'
|
1050
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata) ' ).should == '"あいうえお"'
|
1051
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata 1) ' ).should == '"あ"'
|
1052
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata 2) ' ).should == '"い"'
|
1053
|
+
@nendo.evalStr( ' (rxmatch-substring matchdata 3) ' ).should == '"う"'
|
1054
|
+
end
|
1055
|
+
end
|
1056
|
+
|
1057
|
+
|
1043
1058
|
describe Nendo, "when call functions in init.nnd " do
|
1044
1059
|
before do
|
1045
1060
|
@nendo = Nendo::Core.new()
|
@@ -1353,6 +1368,15 @@ describe Nendo, "when use quasiquote macro " do
|
|
1353
1368
|
@nendo.evalStr( " (set! a 3) `(1 ,@(list 2 a)) " ).should == "(1 2 3)"
|
1354
1369
|
@nendo.evalStr( " (set! a 11) `,a " ).should == "11"
|
1355
1370
|
@nendo.evalStr( " (set! a 12) ``,a " ).should == "`,a"
|
1371
|
+
@nendo.evalStr( ' (define str "string") str ' ).should == '"string"'
|
1372
|
+
@nendo.evalStr( ' `(,str) ' ).should == '("string")'
|
1373
|
+
@nendo.evalStr( ' `("STRING") ' ).should == '("STRING")'
|
1374
|
+
@nendo.evalStr( ' `(,str "STRING") ' ).should == '("string" "STRING")'
|
1375
|
+
@nendo.evalStr( ' `("STRING" ,str) ' ).should == '("STRING" "string")'
|
1376
|
+
@nendo.evalStr( ' (car `("STRING" ,str)) ' ).should == '"STRING"'
|
1377
|
+
@nendo.evalStr( ' (second `("STRING" ,str)) ' ).should == '"string"'
|
1378
|
+
@nendo.evalStr( ' (caar `(("STRING" ,str))) ' ).should == '"STRING"'
|
1379
|
+
@nendo.evalStr( ' (string-join `("A" "B" "C" "D")) ' ).should == '"ABCD"'
|
1356
1380
|
@nendo.evalStr( " `(list ,(+ 1 2) 4) " ).should == "(list 3 4)"
|
1357
1381
|
@nendo.evalStr( " (let ((name 'a)) `(list ,name ',name)) " ).should == "(list a 'a)"
|
1358
1382
|
@nendo.evalStr( " `(a `(b ,(+ 1 2) ,(foo ,(+ 1 3) d) e) f) " ).should == "(a `(b ,(+ 1 2) ,(foo 4 d) e) f)"
|
@@ -1371,6 +1395,10 @@ describe Nendo, "when use macros made by quasiquote. " do
|
|
1371
1395
|
@nendo.evalStr( " (case (length '(1 2 3 )) ((1) \"one\") ((2) \"two\") (else \"else\")) " ).should == '"else"'
|
1372
1396
|
@nendo.evalStr( " (case (length '(1 2 3 4)) ((1) \"one\") ((2) \"two\") (else \"else\")) " ).should == '"else"'
|
1373
1397
|
@nendo.evalStr( " (case 100 ((1) \"one\") ((2) \"two\") (else \"else\")) " ).should == '"else"'
|
1398
|
+
@nendo.evalStr( " (case (car '(a b 1)) ((a) 'a) ((b) 'b) (else 'else)) " ).should == 'a'
|
1399
|
+
@nendo.evalStr( " (case (cadr '(a b 1)) ((a) 'a) ((b) 'b) (else 'else)) " ).should == 'b'
|
1400
|
+
@nendo.evalStr( " (case (caddr '(a b 1)) ((a b) 'a) ((1 2) 'number) (else 'else)) " ).should == 'number'
|
1401
|
+
@nendo.evalStr( " (case (cadddr '(a b 1 2)) ((a b) 'a) ((1 2) 'number) (else 'else)) " ).should == 'number'
|
1374
1402
|
@nendo.evalStr( " (let* ((a 1) (b (+ a 2))) (cons a b)) " ).should == "(1 . 3)"
|
1375
1403
|
@nendo.evalStr( " (let* ((a 10) (b (* a 2))) (cons a b)) " ).should == "(10 . 20)"
|
1376
1404
|
@nendo.evalStr( " (let* ((a 10) (b (* a 2)) (c (* b 3))) (list a b c)) " ).should == "(10 20 60)"
|
@@ -1491,6 +1519,7 @@ describe Nendo, "when use dot-operator (.) macro " do
|
|
1491
1519
|
@nendo.evalStr( " (define a \"s\") (a.is_a? Fixnum) " ).should == "#f"
|
1492
1520
|
@nendo.evalStr( " (define a \"s\") (a.is_a? Float) " ).should == "#f"
|
1493
1521
|
@nendo.evalStr( " (define a \"s\") (a.is_a? String) " ).should == "#t"
|
1522
|
+
@nendo.evalStr( ' (equal? (read-from-string "\"100\"") (. 100 to_s)) ' ).should == "#t"
|
1494
1523
|
end
|
1495
1524
|
end
|
1496
1525
|
|
@@ -1565,6 +1594,7 @@ describe Nendo, "when use (use ...) macro " do
|
|
1565
1594
|
@nendo.evalStr( " (macroexpand '(use a.b.c.d.e.f.g)) " ).should == '(load-library "a/b/c/d/e/f/g")'
|
1566
1595
|
@nendo.evalStr( " (macroexpand '(use srfi-1)) " ).should == '(load-library "srfi-1")'
|
1567
1596
|
@nendo.evalStr( " (macroexpand '(use text.tree)) " ).should == '(load-library "text/tree")'
|
1597
|
+
@nendo.evalStr( " (macroexpand '(use debug.syslog)) " ).should == '(load-library "debug/syslog")'
|
1568
1598
|
@nendo.evalStr( " (macroexpand `(use ,(string->symbol (+ \"text\" \".\" \"tree\")))) " ).should == '(load-library "text/tree")'
|
1569
1599
|
lambda { @nendo.evalStr( " (macroexpand '(use '(a)) " ) }.should raise_error( RuntimeError )
|
1570
1600
|
lambda { @nendo.evalStr( " (macroexpand '(use \"srfi-1\") " ) }.should raise_error( RuntimeError )
|
data/test/nendo_util.nnd
CHANGED
@@ -79,13 +79,14 @@ trampCall(
|
|
79
79
|
else raise NameError.new( \"Error: undefined variable __PLMARK\", \"__PLMARK\" ) end
|
80
80
|
rescue => __e ; __e.set_backtrace( [\"./test/nendo_util.nnd:31\"] + __e.backtrace ) ; raise __e
|
81
81
|
end ,
|
82
|
-
|
82
|
+
[
|
83
83
|
begin
|
84
84
|
trampCall(_arg1)
|
85
85
|
rescue => __e ; __e.set_backtrace( [\"./test/nendo_util.nnd:31\"] + __e.backtrace ) ; raise __e
|
86
|
-
end ,
|
86
|
+
end ,
|
87
87
|
1
|
88
|
-
|
88
|
+
]
|
89
|
+
))
|
89
90
|
)
|
90
91
|
end
|
91
92
|
}
|