rubylexer 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/testdata/23.rb ADDED
@@ -0,0 +1,24 @@
1
+ alias`#`,`//`
2
+ eval;$VERBOSE=if !false^l=<<"":0 end;U=%r~\A.\Z~;F=5;
3
+ self << '#'
4
+
5
+ ::Kernel.send :define_method, :method_missing do|*_|_<<self;_[0,1]=[];l,f=_.last,_.first;return _[0]if l==f;_.last.`(_.first).to_s end
6
+ O=Object;O=O;Object=O;%%% % %%%;class O;def
7
+ end (x=$x)($x=x).reverse end;def
8
+ end_(x=$x)($x=x).reverse_end;end end
9
+ alias r end;alias a r;alias e end_;public:`,:r,:require
10
+ self.`"a \'Ruby script obfuscated\'\x23 is not readable by anyone else."
11
+ r <<u<<"""#$x"
12
+ u
13
+ r[0]^=r[1]
14
+ $=||=0;$_||=0_0
15
+ i,v=['o',*local_variables].flatten.grep(/\A.\Z/).sort_by{|x|x[0].-(?j).abs.-@}.reverse,false
16
+ y=methods.grep(U).sort_by{|x|x[0].-(?e).abs.-@}
17
+ #breakpoint
18
+ i=[i,y].join(I=Love(%q=(2.**(5).chr)=)).gsub(' '){w=$=^=1;$x[w.inspect[1][0]*F-1,1]}.gsub(/[eyd]/){(?e.+?y.-($&[0])).chr }.delete('z')
19
+ i=i.scan(%r:#{I}|.*?(?=#{I})|.*:).inject([]){|r,p|unless(v=!v if(v=!v)...(v))..(v=!v):r<<[]end;r.last<<p;r};v^=!v
20
+ i,@v,@u=i.reject{true if (v=!v)..v}.join.capitalize,local_variables.inject(?X){|p,v|p^v[0]}.chr,O.constants.grep(U).pop
21
+ i=i.sub(/#@v/i, @v).sub(/#@u/i, @u).gsub!(/./, &proc {|x|$&[0].send(x=='A'? :succ : :to_i).chr}).sub!methods.grep(/^\W/).first do |x| (x[0]|F.to_s[0]).chr end
22
+ def i.<<(*);super duper('"\x%s"' % __LINE__)end
23
+ i<<='?'
24
+ puts i
data/testdata/g.rb ADDED
@@ -0,0 +1,15 @@
1
+ j=9;def i(n) [n ?"d" : "e" , n] end
2
+
3
+ #breakpoint
4
+ p(i ?")
5
+ p(j ?"d" : "e")
6
+
7
+ def g(x=nil) x end
8
+ def gg(x=nil) g x end
9
+ p(gg :x)
10
+ p(g :y)
11
+ g=9
12
+ p(gg :z)
13
+ # g :w #error
14
+
15
+
@@ -0,0 +1,18 @@
1
+
2
+ x, (*), z = [:x, :y, :z]
3
+ p x
4
+ p z
5
+
6
+ x, (*y), z = [:x, :y, :z]
7
+ p x
8
+ p y
9
+ p z
10
+
11
+ p($/ = ' '; Array( "i'm in your house" ))
12
+
13
+ class Foou
14
+ public
15
+ def [] x=-100,&y=nil; p x; 100 end
16
+ end
17
+ p Foou.new.[]?9 #value
18
+ p Foou.new.[] ?9 #value
@@ -0,0 +1 @@
1
+ exit
data/testdata/p.rb ADDED
@@ -0,0 +1,1227 @@
1
+ p true ?
2
+ 1 : 2
3
+ #breakpoint
4
+ module M555
5
+ def r;4 end
6
+ #breakpoint
7
+ r=r.nil? #2nd r seems like it should be MethNameToken, but is VarNameToken (for matz too)
8
+ #breakpoint
9
+ end
10
+ #breakpoint
11
+
12
+ p ?e.+?y
13
+ p ?e.+ ?y
14
+ p ?e.-?y
15
+ p ?e.*?y
16
+ p ?e./?y
17
+ p ?e.<<?y
18
+ p ?e.%?y
19
+ p ?e.**?y
20
+ p ?e.&?y
21
+
22
+ p %s/jim/;
23
+
24
+ p "#{<<foobar0.each('|'){|s| '\nthort: '+s} }"
25
+ jbvd|g4543ghb|!@G$dfsd|fafr|e
26
+ |s4e5rrwware|BBBBB|*&^(*&^>"PMK:njs;d|
27
+
28
+ foobar0
29
+
30
+
31
+ p 0.9
32
+ p 1.45000000000000000000000000000000000000001
33
+ p 9.999999999999999999999999999999999999999999
34
+ p 9.999999999999999999999999999999999999999999e999999999999999999999999999
35
+ p 0b0100011001
36
+ p 0o123456701
37
+ p 0123456701
38
+
39
+ p 0x123456789abcdefABCDEF01
40
+
41
+
42
+
43
+
44
+
45
+ p % foo
46
+ p % foo
47
+ p %
48
+ foo
49
+
50
+
51
+ p eval "%\sfoo\s"
52
+
53
+ p eval "%\tfoo\t"
54
+ p :p
55
+ p :p
56
+ p eval "%\vfoo\v"
57
+ p eval "%\rfoo\r"
58
+ p :p
59
+ p :p
60
+ p eval "%\nfoo\n"
61
+ p eval "%\0foo\0"
62
+
63
+ p eval "%\r\nfoo\r\n"
64
+ p eval "%\n\rfoo\n\r" #ruby get this wrong
65
+ p eval "%\n\rfoo\n" #this shouldn't work but does
66
+ p eval "%\r\nfoo\r" #this does not work,
67
+ p eval "%\r\nfoo\n" #this shouldn't work but does
68
+
69
+
70
+ p "Hi, my name is #{"Slim #{(4)>2?"Whitman":"Shady"} "}."
71
+ p "Hi, my name is #{"Slim #{(4)<2?"Whitman":"Shady"} "}."
72
+
73
+ #breakpoint
74
+
75
+ p(String *Class)
76
+ class String
77
+ class Class
78
+ end
79
+ end
80
+ #def String(x) x.to_s end #it's already built-in. duh!
81
+ def String.*(right) [self,right] end
82
+ def String.<<(right) [self,:<<,right] end
83
+ def String./(right) [self,:/,right] end
84
+ def String.[](right) [self,:[],right] end
85
+ p(String::Class)
86
+ p(String:: Class)
87
+ p(String ::Class)
88
+ p(String :: Class)
89
+ p(String<<Class)
90
+ p(String<< Class)
91
+ p(String <<Class)
92
+ sgsdfgf
93
+ Class
94
+ p(String << Class)
95
+ p(String/Class)
96
+ p(String/ Class)
97
+ p(String /Class/)
98
+ p(String / Class) #borken
99
+ p(String[Class])
100
+ p(String[ Class])
101
+ p(String [Class])
102
+ p(String [ Class])
103
+ p(String*Class)
104
+ p(String* Class)
105
+ p(String *Class)
106
+ p(String * Class)
107
+ class <<String
108
+ undef :*,<<,/,[]
109
+ end
110
+
111
+
112
+
113
+ p(false::to_s)
114
+ p(false ::to_s)
115
+ p(false:: to_s)
116
+ p(false :: to_s)
117
+ #breakpoint
118
+
119
+ class C2
120
+ class <<self
121
+ def self.p8; p 8 end
122
+ alias p? p
123
+ alias P? p
124
+ alias [] p
125
+ alias <=> p
126
+ end
127
+
128
+ q=9
129
+ Q=99
130
+
131
+ p:p8
132
+ false ? p: p8
133
+ p :p8
134
+ false ? p : p8
135
+
136
+ false ? q:p8
137
+ false ? q: p8
138
+ false ? q :p8
139
+ false ? q : p8
140
+
141
+ #false ? Q:p8 #gives ruby indigestion
142
+ false ? Q: p8
143
+ #false ? Q :p8 #gives ruby indigestion
144
+ false ? Q : p8
145
+
146
+ p?:p8
147
+ false ? p?: p8
148
+ p? :p8
149
+ false ? p? : p8
150
+
151
+ p??1
152
+ p? ?1
153
+ p(p?? 1 : 2)
154
+ p(p? ? 1 : 2)
155
+
156
+ P?:p8
157
+ false ? P?: p8
158
+ P? :p8
159
+ false ? P? : p8
160
+
161
+ P??1
162
+ P? ?1
163
+ p(P?? 1 : 2)
164
+ p(P? ? 1 : 2)
165
+
166
+ self.[]:p8
167
+ false ? self.[]: p8
168
+ self.[] :p8
169
+ false ? self.[] : p8
170
+
171
+ self.<=>:p8
172
+ false ? self.<=>: p8
173
+ self.<=> :p8
174
+ false ? self.<=> : p8
175
+
176
+ self <=>:p8
177
+ #false ? self <=>: p8 #gives ruby indigestion
178
+ self <=> :p8
179
+ #false ? self <=> : p8 #gives ruby indigestion
180
+ end
181
+ #breakpoint
182
+
183
+ p <<stuff+'foobar'.tr('j-l','d-f')
184
+ "more stuff"
185
+ 12345678
186
+ the quick brown fox jumped over the lazy dog
187
+ stuff
188
+
189
+
190
+ p <<p
191
+ sdfsfdf^^^^@@@
192
+ p
193
+ mix=nil
194
+ p / 5/mix
195
+ #breakpoint
196
+
197
+ module M33
198
+ #breakpoint
199
+ p="var:"
200
+ #breakpoint
201
+ Q="func:"
202
+ def Q.method_missing(name,*args)
203
+ self+name.to_s+(args.join' ')
204
+ end
205
+ def p.method_missing(name,*args)
206
+ self+name.to_s+(args.join' ')
207
+ end
208
+ def self.p(*a); super; Q end
209
+ @a=1
210
+ $a=2
211
+
212
+ p(p~6)
213
+ p(p ~6)
214
+ p(p~ 6)
215
+ p(p ~ 6)
216
+ p(p*11)
217
+ p(p *11)
218
+ p(p* 11)
219
+ p(p * 11)
220
+ p(p&proc{})
221
+ p(p &proc{})
222
+ p(p& proc{})
223
+ p(p & proc{})
224
+ p(p !1)
225
+ # p(p ?1) #compile error, when p is var
226
+ p(p ! 1)
227
+ p(p ? 1 : 6)
228
+ p(p@a)
229
+ p(p @a)
230
+ # p(p@ a) #wont
231
+ # p(p @ a) #work
232
+ p(p#a
233
+ )
234
+ p(p #a
235
+ )
236
+ p(p# a
237
+ )
238
+ p(p # a
239
+ )
240
+ p(p$a)
241
+ p(p $a)
242
+ # p(p$ a) #wont
243
+ # p(p $ a) #work
244
+ p(p%Q{:foo})
245
+ p(p %Q{:foo})
246
+ p(p% Q{:foo})
247
+ p(p % Q{:foo})
248
+ p(p^6)
249
+ p(p ^6)
250
+ p(p^ 6)
251
+ p(p ^ 6)
252
+ p(p&7)
253
+ p(p &proc{7})
254
+ p(p& 7)
255
+ p(p & 7)
256
+ p(p(2))
257
+ p(p (2))
258
+ p(p( 2))
259
+ p(p ( 2))
260
+ p(p(p))
261
+ p(p())
262
+ p(p (p))
263
+ p(p ())
264
+ p(p ( p))
265
+ p(p ( ))
266
+ p(p( p))
267
+ p(p( ))
268
+ p(p)
269
+ p((p))
270
+ p(p )
271
+ p((p ))
272
+ p((p p))
273
+ p((p p,p))
274
+ p((p p))
275
+ p((p p,p))
276
+ p(p-0)
277
+ p(p -0)
278
+ p(p- 0)
279
+ p(p - 0)
280
+ p(p+9)
281
+ p(p +9)
282
+ p(p+ 9)
283
+ p(p + 9)
284
+ p(p[1])
285
+ p(p [1])
286
+ p(p[ 1])
287
+ p(p [ 1])
288
+ p(p{1})
289
+ p(p {1})
290
+ p(p{ 1})
291
+ p(p { 1})
292
+ p(p/1)
293
+ p(p /22)
294
+ p(p/ 1)
295
+ p(p / 22)
296
+ p(p._)
297
+ p(p ._)
298
+ p(p. _)
299
+ p(p . _)
300
+ p(false ? p:f)
301
+ p(false ? p :f)
302
+ p(false ? p: f)
303
+ p(false ? p : f)
304
+ p((p;1))
305
+ p((p ;1))
306
+ p((p; 1))
307
+ p((p ; 1))
308
+ p(p<1)
309
+ p(p <1)
310
+ p(p< 1)
311
+ p(p < 1)
312
+ p(p<<1)
313
+ p(p <<1)
314
+ p(p<< 1)
315
+ p(p << 1)
316
+ p(p'j')
317
+ p(p 'j')
318
+ p(p' j')
319
+ p(p ' j')
320
+ p(p"k")
321
+ p(p "k")
322
+ p(p" k")
323
+ p(p " k")
324
+ p(p|4)
325
+ p(p |4)
326
+ p(p| 4)
327
+ p(p | 4)
328
+ p(p>2)
329
+ p(p >2)
330
+ p(p> 2)
331
+ p(p > 2)
332
+
333
+ #breakpoint
334
+ end
335
+
336
+ #breakpoint
337
+ module M34
338
+ p(p~6)
339
+ p(p ~6)
340
+ p(p~ 6)
341
+ p(p ~ 6)
342
+ p(p*[1])
343
+ p(p *[1])
344
+ p(p* [1])
345
+ p(p * [1])
346
+ p(p&proc{})
347
+ p(p &proc{})
348
+ p(p& proc{})
349
+ p(p & proc{})
350
+ p(p !1)
351
+ p(p ?1)
352
+ p(p ! 1)
353
+ p(p ? 1 : 6)
354
+ p(p@a)
355
+ p(p @a)
356
+ # p(p@ a) #wont
357
+ # p(p @ a) #work
358
+
359
+ p(p#a
360
+ )
361
+ p(p #a
362
+ )
363
+ p(p# a
364
+ )
365
+ p(p # a
366
+ )
367
+ p(p$a)
368
+ p(p $a)
369
+ # p(p$ a) #wont
370
+ # p(p $ a) #work
371
+ p(p%Q{:foo})
372
+ p(p %Q{:foo})
373
+ p(p% Q{:foo})
374
+ p(p % Q{:foo})
375
+ p(p^6)
376
+ p(p ^6)
377
+ p(p^ 6)
378
+ p(p ^ 6)
379
+ p(p&7)
380
+ p(p &proc{7})
381
+ p(p& 7)
382
+ p(p & 7)
383
+ p(p(2))
384
+ p(p (2))
385
+ p(p( 2))
386
+ p(p ( 2))
387
+ p(p(p))
388
+ p(p())
389
+ p(p (p))
390
+ p(p ())
391
+ p(p ( p))
392
+ p(p ( ))
393
+ p(p( p))
394
+ p(p( ))
395
+ p(p)
396
+ p((p))
397
+ p(p )
398
+ p((p ))
399
+ p((p p))
400
+ p((p p,p))
401
+ p((p p))
402
+ p((p p,p))
403
+ p(p-0)
404
+ p(p -1)
405
+ p(p- 0)
406
+ p(p - 0)
407
+ p(p+9)
408
+ p(p +9)
409
+ p(p+ 9)
410
+ p(p + 9)
411
+ p(p[1])
412
+ p(p [1])
413
+ p(p[ 1])
414
+ p(p [ 1])
415
+ p(p{1})
416
+ p(p {1})
417
+ p(p{ 1})
418
+ p(p { 1})
419
+ p(p/1)
420
+ p(p /22/)
421
+ p(p/ 1)
422
+ p(p / 22)
423
+ p(p._)
424
+ p(p ._)
425
+ p(p. _)
426
+ p(p . _)
427
+ p(p:f)
428
+ p(p :f)
429
+ p(false ? p: f)
430
+ p(false ? p : f)
431
+ p((p;1))
432
+ p((p ;1))
433
+ p((p; 1))
434
+ p((p ; 1))
435
+ p(p<1)
436
+ p(p <1)
437
+ p(p< 1)
438
+ p(p < 1)
439
+ p(p<<1)
440
+ p(p <<1)
441
+ foobar
442
+ 1
443
+ p(p<< 1)
444
+ p(p << 1)
445
+ p(p'j')
446
+ p(p 'j')
447
+ p(p' j')
448
+ p(p ' j')
449
+ p(p"k")
450
+ p(p "k")
451
+ p(p" k")
452
+ p(p " k")
453
+ p(p|4)
454
+ p(p |4)
455
+ p(p| 4)
456
+ p(p | 4)
457
+ p(p>2)
458
+ p(p >2)
459
+ p(p> 2)
460
+ p(p > 2)
461
+
462
+ end
463
+
464
+
465
+ def bob(x) x end
466
+ def bill(x) x end
467
+ p(bob %(22))
468
+ for bob in [100] do p(bob %(22)) end
469
+ p(bob %(22))
470
+ def %(n) to_s+"%#{n}" end
471
+ p(bill %(22))
472
+ begin sdjkfsjkdfsd; rescue Object => bill; p(bill %(22)) end
473
+ p(bill %(22))
474
+ undef %
475
+
476
+ class Object
477
+
478
+ public :`
479
+ def `(s)
480
+ print "bq: #{s}\n"
481
+ end
482
+ end
483
+
484
+ 69.`('what a world')
485
+
486
+ 79::`('what a word')
487
+
488
+ p :`
489
+
490
+ p{}
491
+ p {}
492
+ a=5
493
+ p p +5
494
+ p a +5
495
+
496
+ def nil.+(x) ~x end
497
+ def nil.[](*x) [x] end
498
+ p( p + 5 )
499
+ p( p +5 )
500
+ p( p+5 )
501
+ p( p[] )
502
+ p( p [] )
503
+ p( p [ ] )
504
+ class NilClass; undef +,[] end
505
+
506
+ class Foou
507
+ public
508
+ def [] x=-100,&y; p x; 100 end
509
+ end
510
+ a0=8
511
+ p Foou.new.[]!false #value
512
+ p Foou.new.[] !false #value
513
+ p Foou.new.[]~9 #value
514
+ p Foou.new.[] ~9 #value
515
+ p Foou.new.[]-9 #op
516
+ p Foou.new.[]+9 #op
517
+ p Foou.new.[] -9 #value
518
+ p Foou.new.[] +9 #value
519
+ p Foou.new.[]<<9 #op
520
+ p Foou.new.[] <<9 #value
521
+ foobar
522
+ 9
523
+ p Foou.new.[]%9 #op
524
+ p Foou.new.[]/9 #op
525
+ p Foou.new.[] %(9) #value
526
+ p Foou.new.[] /9/ #value
527
+ p Foou.new.[]$9 #value
528
+ p Foou.new.[]a0 #value
529
+ p Foou.new.[] $9 #value
530
+ p Foou.new.[] a0 #value
531
+ p Foou.new.[]{9} #lambda (op)
532
+ p Foou.new.[] {9} #lambda (op)
533
+
534
+ if p then p end
535
+
536
+ p({:foo=>:bar}) #why does this work? i'd think that ':foo=' would be 1 token
537
+ p EMPTY = 0
538
+ p BLACK = 1
539
+ p WHITE = - BLACK
540
+
541
+ a=b=c=0
542
+ a ? b:c
543
+ a ?b:c
544
+
545
+ p(a ? b:c)
546
+ p(a ?b:c)
547
+
548
+
549
+ p~4
550
+ p:f
551
+ p(~4){}
552
+ p(:f){}
553
+ h={}
554
+ h.default=:foo
555
+
556
+ p def (h="foobar").default= v; p @v=v;v end
557
+ p h
558
+
559
+ p h.default=:b
560
+
561
+ x, (*y) = [:x, :y, :z]
562
+ p x
563
+ p y
564
+
565
+ x, *y = [:x, :y, :z]
566
+ p x
567
+ p y
568
+
569
+ x, * = [:x, :y, :z]
570
+ p x
571
+
572
+
573
+
574
+ p Array("foo\nbar")
575
+
576
+
577
+
578
+ p +(4)
579
+ p -(4)
580
+
581
+ p :'\\'
582
+
583
+ class Foop
584
+ def Foop.bar a,b
585
+ p a,b
586
+ end
587
+ end
588
+ Foop.bar 1,2
589
+ Foop::bar 3,4
590
+
591
+
592
+ class Foop
593
+ def Foop::baz a,b
594
+ p :baz,a,b
595
+ end
596
+ end
597
+ Foop.baz 5,6
598
+ Foop::baz 7,8
599
+
600
+
601
+
602
+ without_creating=widgetname=nil
603
+ if without_creating && !widgetname #foo
604
+ fail ArgumentError,
605
+ "if set 'without_creating' to true, need to define 'widgetname'"
606
+ end
607
+
608
+
609
+
610
+ =begin disable for now
611
+
612
+ #class, module, and def should temporarily hide local variables
613
+ def mopsdfjskdf arg; arg*2 end
614
+ mopsdfjskdf=5
615
+ class C
616
+ p mopsdfjskdf %(3) #calls method
617
+ end
618
+
619
+ module M
620
+ p mopsdfjskdf %(4) #calls method
621
+ end
622
+
623
+ def d
624
+ p mopsdfjskdf %(5) #calls method
625
+ end
626
+ p d
627
+ p mopsdfjskdf %(6) #reads variable
628
+ p proc{mopsdfjskdf %(7)}[] #reads variable
629
+
630
+ #fancy symbols not supported yet
631
+ p %s{symbol}
632
+ =end
633
+
634
+ #multiple assignment test
635
+ proc {
636
+ a,b,c,d,e,f,g,h,i,j,k=1,2,3,4,5,6,7,8,9,10,11
637
+ p(b %(c))
638
+ p(a %(c))
639
+ p(k %(c))
640
+ p(p %(c))
641
+ }.call
642
+
643
+
644
+ =begin disable for now
645
+ p "#{<<kekerz}#{"foob"
646
+ zimpler
647
+ kekerz
648
+ }"
649
+
650
+
651
+ aaa=<<whatnot; p "#{'uh,yeah'
652
+ gonna take it down, to the nitty-grit
653
+ gonna tell you mother-fuckers why you ain't shit
654
+ cause suckers like you just make me strong
655
+ you been pumpin' that bullshit all day long
656
+ whatnot
657
+ }"
658
+ p aaa
659
+
660
+ #test variable creation in string inclusion
661
+ #currently broken because string inclusions
662
+ #are lexed by a separate lexer!
663
+ proc {
664
+ p "jentawz: #{baz=200}"
665
+ p( baz %(9))
666
+ }.call
667
+ =end
668
+
669
+ =begin ought to work...ruby doesn't like
670
+ class A
671
+ class B
672
+ class C
673
+ end
674
+ end
675
+ end
676
+ def A::B::C::d() :abcd end
677
+ def A::B::d() :abd end #this used to work as well... i think
678
+
679
+
680
+ p :$1
681
+ p :$98349576875974523789734582394578
682
+
683
+ def nil.d=; end #this works
684
+ def (;).d=; end
685
+ def ().d=; end
686
+ p def (p h="foobar";).default= v; p @v=v;v end
687
+ p def (p h="foobar";h).default= v; p @v=v;v end
688
+
689
+ p~4{}
690
+ p:f{}
691
+ p ~4{}
692
+ p :f{}
693
+
694
+ def g a=:g; [a] end
695
+ g g g #this works
696
+ g *g #this works
697
+ g *g g #this doesn't
698
+
699
+ [nil,p 5]
700
+ "foo"+[1].join' '
701
+
702
+ class Fook
703
+ def foo; end
704
+
705
+ file.===/#/ #syntax error
706
+
707
+ file.=== /#/ #no error
708
+ file===// #no error
709
+
710
+ #these work:
711
+ (not true)
712
+ p(!true) #etc
713
+ (true if false) #etc
714
+ (true and false) #etc
715
+ (undef foo)
716
+ (alias bar foo)
717
+ (BEGIN{p :yyy})
718
+
719
+ #these don't:
720
+ p(not true)
721
+ p(true if false) #etc
722
+ p(true and false) #etc
723
+ p(undef foo)
724
+ p(alias bar foo)
725
+ p(BEGIN{p :yyy})
726
+ end
727
+
728
+ =end
729
+
730
+ proc {
731
+ }
732
+
733
+ p "#{<<foobar3}"
734
+ bim
735
+ baz
736
+ bof
737
+ foobar3
738
+
739
+ def func
740
+ a,b,* = [1,2,3,4,5,6,7,8]
741
+ p a,b
742
+ a,b, = [1,2,3,4,5,6,7,8]
743
+ p a,b
744
+
745
+ a,b = [1,2,3,4,5,6,7,8]
746
+ p a,b
747
+ a,*b = [1,2,3,4,5,6,7,8]
748
+ p a,b
749
+
750
+ a,b,*c=[1,2,3,4,5,6,7,8]
751
+ a,b,* c=[1,2,3,4,5,6,7,8]
752
+ end
753
+ func
754
+
755
+
756
+ p( %r{\/$})
757
+ p( %r~<!include:([\/\w\.\-]+)>~m)
758
+
759
+ p <<end
760
+ #{compile_body}\
761
+ #{outvar}
762
+ end
763
+
764
+
765
+
766
+
767
+
768
+ proc {
769
+ h={:a=>(foo=100)}
770
+ p( foo %(5))
771
+ }.call
772
+
773
+
774
+ p "#{<<foobar3}"
775
+ bim
776
+ baz
777
+ bof
778
+ foobar3
779
+
780
+ p "#{<<foobar2
781
+ bim
782
+ baz
783
+ bof
784
+ foobar2
785
+ }"
786
+
787
+
788
+
789
+ p <<one ; p "#{<<two}"
790
+ 1111111111111111
791
+ fdsgdfgdsfffff
792
+ one
793
+ 2222222222222222
794
+ sdfasdfasdfads
795
+ two
796
+
797
+ p "#{<<foobar1.each('|'){|s| '\nthort: '+s}
798
+ jbvd|g4543ghb|!@G$dfsd|fafr|e
799
+ |s4e5rrwware|BBBBB|*&^(*&^>"PMK:njs;d|
800
+
801
+ foobar1
802
+ }"
803
+
804
+
805
+ def foo(a=<<a,b=<<b,c=<<c)
806
+ jfksdkjf
807
+ dkljjkf
808
+ a
809
+ kdljfjkdg
810
+ dfglkdfkgjdf
811
+ dkf
812
+ b
813
+ lkdffdjksadhf
814
+ sdflkdjgsfdkjgsdg
815
+ dsfg;lkdflisgffd
816
+ g
817
+ c
818
+
819
+ a+b+c
820
+
821
+ end
822
+
823
+ p foo
824
+
825
+
826
+
827
+
828
+ $a=1
829
+ @b=2
830
+ @@c=3
831
+ p "#$a #@b #@@c #{$a+@b+@@c}"
832
+ p "\#$a \#@b \#@@c \#{$a+@b+@@c}"
833
+ p '#$a #@b #@@c #{$a+@b+@@c}'
834
+ p '\#$a \#@b \#@@c \#{$a+@b+@@c}'
835
+ p %w"#$a #@b #@@c #{$a+@b+@@c}"
836
+ p %w"\#$a \#@b \#@@c \#{$a+@b+@@c}"
837
+ p %W"#$a #@b #@@c #{$a+@b+@@c}"
838
+ p %W"\#$a \#@b \#@@c \#{$a+@b+@@c}"
839
+ p %Q[#$a #@b #@@c #{$a+@b+@@c}]
840
+ p %Q[\#$a \#@b \#@@c \#{$a+@b+@@c}]
841
+ p `echo #$a #@b #@@c #{$a+@b+@@c}`
842
+ p `echo \#$a \#@b \#@@c \#{$a+@b+@@c}`
843
+ p(/#$a #@b #@@c #{$a+@b+@@c}/)
844
+ #p(/\#$a \#@b \#@@c \#{$a+@b+@@c}/) #moved to w.rb
845
+
846
+
847
+ class AA; class BB; class CC
848
+ FFOO=1
849
+ end end end
850
+
851
+ p AA::BB::CC::FFOO
852
+
853
+ compile_body=outvar='foob'
854
+
855
+ if false
856
+ method_src = c.compile(template, (HtmlCompiler::AnyData.new)).join("\n") +
857
+ "\n# generated by PartsTemplate::compile_partstemplate at #{Time.new}\n"
858
+ rescu -1
859
+ end
860
+
861
+ p('rb_out', 'args', <<-'EOL')
862
+ regsub -all {!} $args {\\!} args
863
+ regsub -all "{" $args "\\{" args
864
+ if {[set st [catch {ruby [format "TkCore.callback %%Q!%s!" $args]} ret]] != 0} {
865
+ return -code $st $ret
866
+ } {
867
+ return $ret
868
+ }
869
+ EOL
870
+
871
+
872
+ def add(*args)
873
+ self.<<(*args)
874
+ end
875
+
876
+
877
+
878
+ val=%[13,17,22,"hike", ?\s]
879
+ if val.include? ?\s
880
+ p val.split.collect{|v| (v)}
881
+ end
882
+ p "#{}"
883
+ p "#(1)"
884
+ class Hosts
885
+ end
886
+ class DNS < Hosts
887
+ end
888
+ def intialize(resolvers=[Hosts.new, DNS.new]) end
889
+ def environment(env = File.basename($0, '.*')) end
890
+
891
+ def ssssss &block
892
+ end
893
+ def params_quoted(field_name, default)
894
+ if block_given? then yield field_name else default end
895
+ end
896
+ def ==(o) 444 end
897
+ def String.ffff4() self.to_s+"ffff" end
898
+
899
+ p *[]
900
+ for i in \
901
+ [44,55,66,77,88] do p i**Math.sqrt(i) end
902
+
903
+
904
+ #(
905
+ for i in if
906
+ false then foob12345; else [44,55,66,77,88] end do p i**Math.sqrt(i) end
907
+ #)
908
+ (
909
+ for i in if false then
910
+ foob12345; else [44,55,66,77,88] end do p i**Math.sqrt(i) end
911
+
912
+ c=j=0
913
+ until while j<10 do j+=1 end.nil? do p 'pppppppppp' end
914
+ for i in if false then foob12345;
915
+ else [44,55,66,77,88] end do p i**Math.sqrt(i) end
916
+
917
+ for i in if false then foob12345; else
918
+ [44,55,66,77,88] end do p i**Math.sqrt(i) end
919
+
920
+
921
+ for i in (c;
922
+ [44,55,66,77,88]) do p i**Math.sqrt(i) end
923
+ )
924
+ (
925
+
926
+ for i in (begin
927
+ [44,55,66,77,88] end) do p i**Math.sqrt(i) end
928
+
929
+ for i in if false then foob12345; else
930
+ [44,55,66,77,88] end do p i**Math.sqrt(i) end
931
+
932
+ for i in (
933
+
934
+ [44,55,66,77,88]) do p i**Math.sqrt(i) end
935
+
936
+ for i in (
937
+ [44,55,66,77,88]) do p i**Math.sqrt(i) end
938
+
939
+ )
940
+
941
+
942
+
943
+ def yy;yield end
944
+
945
+ block=proc{p "blah blah"}
946
+
947
+ yy &block
948
+ p(1.+1)
949
+ p pppp
950
+
951
+ module M66
952
+ p(proc do
953
+ p=123
954
+ end.call)
955
+
956
+ p proc {
957
+ p=123
958
+ }.call
959
+
960
+ p def pppp
961
+ p=123
962
+ end
963
+ p module Ppp
964
+ p=123
965
+ end
966
+ p class Pppp < String
967
+ p=123
968
+ end
969
+ end
970
+
971
+ def _make_regex(str) /([#{Regexp.escape(str)}])/n end
972
+ p _make_regex("8smdf,34rh\#@\#$%$gfm/[]dD")
973
+
974
+
975
+ p "#$a #@b #@@c
976
+
977
+ d e f
978
+ #$a #@b #@@c
979
+ "
980
+
981
+ p "\""
982
+
983
+ a=a.to_s
984
+ class <<a
985
+ def foobar
986
+ self*101
987
+ end
988
+ alias eql? ==
989
+ end
990
+
991
+ p a.foobar
992
+
993
+
994
+ p(/^\s*(([+-\/*&\|^]|<<|>>|\|\||\&\&)=|\&\&|\|\|)/)
995
+ p(:%)
996
+ p( { :class => class_=0})
997
+ p cls_name = {}[:class]
998
+
999
+
1000
+ p foo
1001
+ p "#{$!.class}"
1002
+ p :p
1003
+ p(:p)
1004
+ p(:"[]")
1005
+ p :"[]"
1006
+ p("\\")
1007
+ p(/\\/)
1008
+ p(/[\\]/)
1009
+ p 0x80
1010
+ p ?p
1011
+ p 0.1
1012
+ p 0.8
1013
+ p 0.9
1014
+ p(-1)
1015
+ p %/p/
1016
+ p %Q[<LI>]
1017
+ i=99
1018
+ p %Q[<LI><A HREF="#{i[3]}.html\##{i[4]}">#{i[0]+i[1]+(i[2])}</A>\n]
1019
+ p(:side=>:top)
1020
+ p %w[a b c
1021
+ d e f]
1022
+ p %w[a b c\n
1023
+ d e f]
1024
+ p %w[\\]
1025
+ p %w[\]]
1026
+ p :+
1027
+ p 99 / 3
1028
+
1029
+ a=99;b=3
1030
+ p 1+(a / b)
1031
+ p %Q[\"]
1032
+ p %Q[ some [nested] text]
1033
+
1034
+
1035
+ if false
1036
+ formatter.format_element(element) do
1037
+ amrita_expand_and_format1(element, context, formatter)
1038
+ end
1039
+ end
1040
+ if false
1041
+ ret = <<-END
1042
+ @@parts_template = #{template.to_ruby}
1043
+ def parts_template
1044
+ @@parts_template
1045
+ end
1046
+
1047
+ #{c.const_def_src.join("\n")}
1048
+ def amrita_expand_and_format(element, context, formatter)
1049
+ if element.tagname_symbol == :span and element.attrs.size == 0
1050
+ amrita_expand_and_format1(element, context, formatter)
1051
+ else
1052
+ formatter.format_element(element) do
1053
+ amrita_expand_and_format1(element, context, formatter)
1054
+ end
1055
+ end
1056
+ end
1057
+
1058
+ def amrita_expand_and_format1(element, context, formatter)
1059
+ #{method_src}
1060
+ end
1061
+ END
1062
+ j=55
1063
+ end
1064
+
1065
+ p '
1066
+ '
1067
+ p '\n'
1068
+ p "
1069
+ "
1070
+ p "\n"
1071
+ p %w/
1072
+ /
1073
+ p %w/\n/
1074
+
1075
+ p %W/
1076
+ /
1077
+ p %W/\n/
1078
+ p(/
1079
+ /)
1080
+ p(/\n/)
1081
+ p proc {
1082
+ p `
1083
+ `
1084
+ p `\n`
1085
+ }
1086
+
1087
+
1088
+
1089
+ p(%r[foo]i)
1090
+ p <<stuff+'foobar'.tr('j-l','d-f')
1091
+ "more stuff"
1092
+ 12345678
1093
+ the quick brown fox jumped over the lazy dog
1094
+ stuff
1095
+
1096
+ =begin doesn't work
1097
+ p <<stuff+'foobar'.tr('j-l','d-f')\
1098
+ +"more stuff"
1099
+ 12345678
1100
+ the quick brown fox jumped over the lazy dog
1101
+ stuff
1102
+ =end
1103
+
1104
+ p ENV["AmritaCacheDir"]
1105
+ p <<-BEGIN + <<-END
1106
+ def element_downcase(attributes = {})
1107
+ BEGIN
1108
+ end
1109
+ END
1110
+
1111
+
1112
+
1113
+ p <<ggg; def
1114
+ kleegarts() p 'kkkkkkk' end
1115
+ dfgdgfdf
1116
+ ggg
1117
+ koomblatz!() p 'jdkfsk' end
1118
+
1119
+ koomblatz!
1120
+
1121
+ p f = 3.7517675036461267e+17
1122
+ p $10
1123
+ p $1001
1124
+ p( <<end )
1125
+ nine time nine men have stood untold.
1126
+ end
1127
+
1128
+ def jd_to_wday(jd) (jd + 1) % 7 end
1129
+ p jd_to_wday(98)
1130
+
1131
+
1132
+ p pre = $`
1133
+ =begin
1134
+ =end
1135
+
1136
+ p <<"..end .."
1137
+ cbkvjb
1138
+ vb;lkxcvkbxc
1139
+ vxlc;kblxckvb
1140
+ xcvblcvb
1141
+ ..end ..
1142
+
1143
+ p $-j=55
1144
+
1145
+ def empty() end
1146
+
1147
+ p <<a
1148
+ dkflg
1149
+ flk
1150
+ a
1151
+
1152
+ label='label';tab=[1,2,3]
1153
+ p <<S
1154
+ #{label} = arr = Array.new(#{tab.size}, nil)
1155
+ str = a = i = nil
1156
+ idx = 0
1157
+ clist.each do |str|
1158
+ str.split(',', -1).each do |i|
1159
+ arr[idx] = i.to_i unless i.empty?
1160
+ idx += 1
1161
+ end
1162
+ end
1163
+
1164
+ S
1165
+ def printem1 a,b,c
1166
+ p(a +77)
1167
+ p(b +77)
1168
+ p(c +77)
1169
+ end
1170
+
1171
+ def foobar() end
1172
+ def foobar2
1173
+ end
1174
+
1175
+ def printem0(a)
1176
+ p(a +77)
1177
+ end
1178
+ def printem0(a,b,c)
1179
+ p(a +77)
1180
+ p(b +77)
1181
+ p(c +77)
1182
+ end
1183
+ def printem2 a,b,c; p(a +77); p(b +77); p(c +77) end
1184
+ def three() (1+2) end
1185
+
1186
+ def d;end
1187
+ def d()end
1188
+ def d(dd)end
1189
+
1190
+ def printem a,b,c
1191
+ p a;p b;p c
1192
+ p(a +77)
1193
+ p(b %(0.123))
1194
+ end
1195
+ printem 1,2,3
1196
+
1197
+ a=1
1198
+ p(a +77)
1199
+
1200
+ def hhh(a=(1+2)) a end
1201
+
1202
+
1203
+
1204
+ END {
1205
+ p "bye-bye"
1206
+ }
1207
+
1208
+
1209
+ p <<here
1210
+ where?
1211
+ here
1212
+ p <<-what
1213
+ ? that's
1214
+ what
1215
+ p proc{||}
1216
+ for i in if false
1217
+ foob12345; else [44,55,66,77,88] end do p i**Math.sqrt(i) end
1218
+ p "\v"
1219
+ c=0
1220
+ while c == /[ \t\f\r\13]/; end
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+