redparse 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING.LGPL +165 -0
- data/Manifest.txt +40 -0
- data/README.txt +461 -0
- data/Rakefile +26 -0
- data/lib/redparse.rb +1083 -0
- data/lib/redparse/babynodes.rb +137 -0
- data/lib/redparse/babyparser.rb +276 -0
- data/lib/redparse/decisiontree.rb +372 -0
- data/lib/redparse/node.rb +3808 -0
- data/lib/redparse/problemfiles.rb +84 -0
- data/lib/redparse/reg_more_sugar.rb +99 -0
- data/nurli/test_control.nurli +261 -0
- data/redparse.vpj +92 -0
- data/redparse.vpw +8 -0
- data/test/data/__end.rb +5 -0
- data/test/data/__f.rb +2 -0
- data/test/data/be.rb +3 -0
- data/test/data/be2.rb +6 -0
- data/test/data/bqhd.rb +3 -0
- data/test/data/bqhd2.rb +3 -0
- data/test/data/case.rb +8 -0
- data/test/data/datetime.rb +66 -0
- data/test/data/defd.rb +9 -0
- data/test/data/hd-def.rb +8 -0
- data/test/data/hd.rb +3 -0
- data/test/data/hd2.rb +3 -0
- data/test/data/hd3.rb +3 -0
- data/test/data/hd4.rb +75 -0
- data/test/data/hd5.rb +4 -0
- data/test/data/hdcat.rb +4 -0
- data/test/data/hdx.rb +3 -0
- data/test/data/heredoc.rb +3 -0
- data/test/data/if.rb +7 -0
- data/test/data/jbridge.rb +779 -0
- data/test/data/mod.rb +3 -0
- data/test/data/nl_as_strdelim.rb +7 -0
- data/test/data/pw.rb +2 -0
- data/test/data/wvt.rb +2 -0
- data/test/rp-locatetest.rb +344 -0
- data/test/test_redparse.rb +3319 -0
- metadata +113 -0
data/test/data/mod.rb
ADDED
data/test/data/pw.rb
ADDED
data/test/data/wvt.rb
ADDED
@@ -0,0 +1,344 @@
|
|
1
|
+
=begin
|
2
|
+
redparse - a ruby parser written in ruby
|
3
|
+
Copyright (C) 2008 Caleb Clausen
|
4
|
+
|
5
|
+
This library is free software; you can redistribute it and/or
|
6
|
+
modify it under the terms of the GNU Lesser General Public
|
7
|
+
License as published by the Free Software Foundation; either
|
8
|
+
version 2.1 of the License, or (at your option) any later version.
|
9
|
+
|
10
|
+
This library is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
Lesser General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU Lesser General Public
|
16
|
+
License along with this library; if not, write to the Free Software
|
17
|
+
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
18
|
+
=end
|
19
|
+
|
20
|
+
#require 'test/code/rubylexervsruby'
|
21
|
+
#require 'test/code/strgen'
|
22
|
+
require "redparse/problemfiles"
|
23
|
+
|
24
|
+
class RedParse
|
25
|
+
module LocateTest
|
26
|
+
begin
|
27
|
+
require 'rubygems'
|
28
|
+
require 'rubylexer'
|
29
|
+
require 'test/code/locatetest'
|
30
|
+
RL=RubyLexer::LocateTest
|
31
|
+
rescue Exception:
|
32
|
+
RL=Module.new
|
33
|
+
def RL.const_missing(k) [] end
|
34
|
+
end
|
35
|
+
|
36
|
+
#ENV['RUBY']||='ruby'
|
37
|
+
$RUBY=ENV['RUBY']||'ruby'
|
38
|
+
#test $RUBY || export RUBY=ruby
|
39
|
+
|
40
|
+
#$RUBYLEXERVSRUBY="#$RUBY test/code/rubylexervsruby.rb"
|
41
|
+
|
42
|
+
RUBY_VERSION[/^1\.8\.7/] or raise 'need ruby>= 1.8.7'
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
#if RUBY_VERSION --version|grep '^ruby 1\.6'; then
|
47
|
+
# echo 'error: need ruby 1.8'; exit
|
48
|
+
#fi
|
49
|
+
|
50
|
+
|
51
|
+
RLROOT= (File.dirname $0)+'/../rubylexer'
|
52
|
+
#cd `dirname -- $0`
|
53
|
+
|
54
|
+
=begin if locate fails, we should use the algorithm from this sh code
|
55
|
+
|
56
|
+
#also look in bin and lib directories
|
57
|
+
file -L `echo $PATH":/sbin:/usr/sbin"|tr : "\n"|sort -u|xargs -i echo "{}/*"`| \
|
58
|
+
grep "ruby[^:]*script"|cut -d: -f1 > test/results/rubyexelibs
|
59
|
+
|
60
|
+
ruby -e 'print ($:.sort.uniq+[""]).join"\n"'|xargs -i ls "{}/*.rb" >> test/results/rubyexelibs
|
61
|
+
|
62
|
+
for i in `cat test/results/rubyexelibs`; do
|
63
|
+
$RUBYLEXERVSRUBY $i;
|
64
|
+
done
|
65
|
+
|
66
|
+
=end
|
67
|
+
|
68
|
+
puts "hack hack hack: absolute path in ruby test file list"
|
69
|
+
puts "hack hack hack: skipping japanese/zipcodes.rb; too big!"
|
70
|
+
TEST_THESE_FIRST= DATA.read.split.map{|n| n[1..-1]}
|
71
|
+
|
72
|
+
[
|
73
|
+
"/home/caleb/rubies/ruby-1.8.7/instruby.rb",
|
74
|
+
"/home/caleb/sandbox/rubylexer/test/data/oneliners.rb",
|
75
|
+
"/home/caleb/sandbox/rubylexer/test/data/heremonsters_dos.rb",
|
76
|
+
"/home/caleb/sandbox/rubylexer/test/data/whatnot.rb",
|
77
|
+
"/home/caleb/sandbox/rubylexer/test/data/pre.rb",
|
78
|
+
"/home/caleb/sandbox/rubylexer/test/data/stanzas.rb",
|
79
|
+
"/home/caleb/sandbox/rubylexer/test/data/ws_strdelim.rb",
|
80
|
+
"/home/caleb/sandbox/rubylexer/test/data/unending_stuff.rb",
|
81
|
+
"/home/caleb/sandbox/rubylexer/test/data/stuff2.rb",
|
82
|
+
"/home/caleb/sandbox/rubylexer/test/data/strdelim_crlf.rb",
|
83
|
+
"/home/caleb/sandbox/rubylexer/jewels/installpkg-0.0.1/lib/.install-pkg.rb.swp",
|
84
|
+
"/var/lib/gems/1.8/gems/rubylexer-0.6.2/testdata/p.rb",
|
85
|
+
|
86
|
+
"/home/caleb/sandbox/rubylexer/jewels/samizdat-0.6.1/samizdat/lib/samizdat/storage.rb",
|
87
|
+
# "/home/caleb/sandbox/rubylexer/jewels/math3d-0.04/tests/make_tests.rb",
|
88
|
+
"/home/caleb/sandbox/rubylexer/jewels/QuickBaseClient.rb/quickbasecontactsappbuilder.rb",
|
89
|
+
# "/home/caleb/sandbox/rubylexer/jewels/QuickBaseClient.rb/quickbaseclient.rb",
|
90
|
+
"/home/caleb/sandbox/rubylexer/jewels/ruby-ivy_0.1.0/ruby-ivy/examples/._000-IVYTranslater.rb",
|
91
|
+
"/home/caleb/sandbox/rubylexer/jewels/ruby-ivy_0.1.0/ruby-ivy/examples/._002-ApplicationList.rb",
|
92
|
+
"/home/caleb/sandbox/rubylexer/jewels/ruby-ivy_0.1.0/ruby-ivy/examples/._001-UnBind.rb",
|
93
|
+
"/home/caleb/sandbox/rubylexer/jewels/ruby-ivy_0.1.0/ruby-ivy/._extconf.rb",
|
94
|
+
# "/home/caleb/sandbox/rubylexer/jewels/smf-0.15.10/sample/virtual-samp.rb",
|
95
|
+
# "/home/caleb/sandbox/rubylexer/jewels/syntax/syntax.rb",
|
96
|
+
# "/home/caleb/sandbox/rubylexer/jewels/rex-1.0rc1/rex/packages/rex/test/rex-20060511.rb",
|
97
|
+
# "/home/caleb/sandbox/rubylexer/jewels/rex-1.0rc1/rex/packages/rex/test/rex-20060125.rb",
|
98
|
+
# "/home/caleb/sandbox/rubylexer/jewels/japanese-zipcodes-0.0.20080227/lib/japanese/zipcodes.rb", #too big!!!!
|
99
|
+
|
100
|
+
# "/home/caleb/sandbox/rubylexer/jewels/ruby-asp_0.4.1/ruby-asp/lib/asp/params.rb",
|
101
|
+
# "/home/caleb/sandbox/rubylexer/jewels/ruby-asp_0.4.1/ruby-asp/bin/ruby-asp.rb",
|
102
|
+
"/home/caleb/sandbox/rubylexer/jewels/ruby-asp_0.4.1/ruby-asp/setup.rb",
|
103
|
+
# "/home/caleb/sandbox/rubylexer/jewels/ruby-asp_0.4.1/ruby-asp/lib/asp/goto.rb",
|
104
|
+
# "/home/caleb/sandbox/rubylexer/jewels/ruby-asp_0.4.1/ruby-asp/lib/asp/globalasa.rb",
|
105
|
+
"/home/caleb/sandbox/rubylexer/jewels/ruby-asp_0.4.1/ruby-asp/lib/apache/aspruby-run.rb",
|
106
|
+
"/home/caleb/sandbox/rubylexer/jewels/osc-0.1.3/install.rb",
|
107
|
+
"/home/caleb/sandbox/rubylexer/jewels/osc-0.1.3/install.rb",
|
108
|
+
# "/home/caleb/sandbox/rubylexer/jewels/gallery-0.0.8/interface/admin.rb",
|
109
|
+
# "/home/caleb/sandbox/rubylexer/jewels/gallery-0.0.8/lib/gallery/base-administrator.rb",
|
110
|
+
# "/home/caleb/sandbox/rubylexer/jewels/gallery-0.0.8/lib/rubyphoto/imlib.rb",
|
111
|
+
# "/home/caleb/sandbox/rubylexer/jewels/gallery-0.0.8/lib/rubyphoto/album.rb",
|
112
|
+
"/home/caleb/sandbox/rubylexer/jewels/strscan-0.6.7/install.rb",
|
113
|
+
"/home/caleb/sandbox/rubylexer/jewels/opml-0.0.20060519/setup.rb",
|
114
|
+
# "/home/caleb/sandbox/rubylexer/jewels/diakonos-0.8.4/lib/diakonos.rb",
|
115
|
+
# "/home/caleb/sandbox/rubylexer/jewels/diakonos-0.8.4/lib/diakonos/buffer.rb",
|
116
|
+
# "/home/caleb/sandbox/rubylexer/jewels/tengen-0.1.0/lib/tengen/ui/main_app.rb",
|
117
|
+
"/home/caleb/sandbox/rubylexer/jewels/rwiki-2.1.1/interface/rw-mail.rb",
|
118
|
+
"/home/caleb/sandbox/rubylexer/jewels/rwiki-2.1.1/installer/rwiki-installer.rb",
|
119
|
+
# "/home/caleb/sandbox/rubylexer/jewels/rwiki-2.1.1/lib/rwiki/db/cvs.rb",
|
120
|
+
# "/home/caleb/sandbox/rubylexer/jewels/rwiki-2.1.1/lib/rwiki/db/svn.rb",
|
121
|
+
"/home/caleb/sandbox/rubylexer/jewels/rwiki-2.1.1/lib/rwiki/hotpage.rb",
|
122
|
+
# "/home/caleb/sandbox/rubylexer/jewels/rwiki-2.1.1/site/ruby-lang/migrate.rb",
|
123
|
+
# "/home/caleb/sandbox/rubylexer/jewels/yajb-0.8.1/src/ruby/bstream.rb",
|
124
|
+
# "/home/caleb/sandbox/rubylexer/jewels/yajb-0.8.1/src/ruby/jlambda.rb",
|
125
|
+
# "/home/caleb/sandbox/rubylexer/jewels/yajb-0.8.1/src/ruby/comm_xmlrpc.rb",
|
126
|
+
"/home/caleb/sandbox/rubylexer/jewels/yajb-0.8.1/lib/yajb/jbridge.rb",
|
127
|
+
]
|
128
|
+
pf=ProblemFiles.new
|
129
|
+
RUBYLIST=(pf.badlist+
|
130
|
+
TEST_THESE_FIRST+RL::TEST_THESE_FIRST+
|
131
|
+
RL::RUBYBINS+
|
132
|
+
[ RLROOT+"/test/data/p.rb",
|
133
|
+
*Dir["test/data/*.rb"]+
|
134
|
+
`(
|
135
|
+
locate /inline.rb /tk.rb;
|
136
|
+
locate examples/examples_test.rb;
|
137
|
+
locate .rb;
|
138
|
+
locate rakefile; locate Rakefile; locate RAKEFILE;
|
139
|
+
)|egrep -v '(/test/(results|data)/|.broken$)'`.
|
140
|
+
split("\n")
|
141
|
+
].sort_by{rand})-pf.goodlist + pf.goodlist
|
142
|
+
RUBYLIST.reject!{|x| %r{japanese/zipcodes\.rb$}===x } #65M of ruby src!!!
|
143
|
+
RUBYLIST.uniq!
|
144
|
+
|
145
|
+
def self.main
|
146
|
+
testdata=RUBYLIST.dup
|
147
|
+
until testdata.empty?
|
148
|
+
chunk=testdata.slice!(0...20)
|
149
|
+
|
150
|
+
chunk=chunk.select{|fn| system "#$RUBY -c #{fn} >/dev/null 2>&1" }
|
151
|
+
|
152
|
+
# puts "testing: "+chunk.join(" ")
|
153
|
+
chunk.empty? and next
|
154
|
+
system $RUBY, "-Ilib", "bin/redparse", "--update-problemfiles", "-q", "--vsparsetree", *chunk
|
155
|
+
exit 2 if $?>>8 == 2 #exit if child got ^c
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
#for i in test/data/p.rb `(locate /tk.rb;locate examples/examples_test.rb;#locate .rb; locate rakefile; locate Rakefile; locate RAKEFILE)|egrep -v '/#test/results/'`; do
|
160
|
+
# $RUBYLEXERVSRUBY $i
|
161
|
+
#done
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
RedParse::LocateTest.main if $0==__FILE__
|
166
|
+
__END__
|
167
|
+
/home/caleb/sandbox/rubylexer/test/data/heremonsters_dos.rb
|
168
|
+
/home/caleb/sandbox/rubylexer/jewels/QuickBaseClient.rb/quickbasecontactsappbuilder.rb
|
169
|
+
/home/caleb/rubies/186/lib/ruby/1.8/ftools.rb
|
170
|
+
/home/caleb/rubies/186/lib/ruby/1.8/rdoc/generators/template/html/html.rb
|
171
|
+
/home/caleb/rubies/186/lib/ruby/1.8/yaml/types.rb
|
172
|
+
/home/caleb/rubies/186/lib/ruby/gems/1.8/gems/ParseTree-2.1.1/lib/parse_tree.rb
|
173
|
+
/home/caleb/rubies/186/lib/ruby/gems/1.8/gems/cursor-0.9/duck.rb
|
174
|
+
/home/caleb/rubies/186/lib/ruby/site_ruby/1.8/rubygems/source_index.rb
|
175
|
+
/home/caleb/rubies/187/lib/ruby/1.8/ftools.rb
|
176
|
+
/home/caleb/rubies/187/lib/ruby/1.8/rdoc/generators/template/html/html.rb
|
177
|
+
/home/caleb/rubies/187/lib/ruby/1.8/yaml/types.rb
|
178
|
+
/home/caleb/rubies/187/lib/ruby/gems/1.8/gems/ParseTree-2.2.0/lib/parse_tree.rb
|
179
|
+
/home/caleb/rubies/187/lib/ruby/gems/1.8/gems/cursor-0.9/duck.rb
|
180
|
+
/home/caleb/rubies/187/lib/ruby/site_ruby/1.8/rubygems/source_index.rb
|
181
|
+
/home/caleb/rubies/190/lib/ruby/1.9.0/rdoc/generators/template/html/html.rb
|
182
|
+
/home/caleb/rubies/190/lib/ruby/1.9.0/rubygems/source_index.rb
|
183
|
+
/home/caleb/rubies/190/lib/ruby/1.9.0/yaml/types.rb
|
184
|
+
/home/caleb/rubies/190/lib/ruby/gems/1.9.0/gems/ParseTree-2.1.1/lib/parse_tree.rb
|
185
|
+
/home/caleb/rubies/190/lib/ruby/site_ruby/1.9.0/rubygems/source_index.rb
|
186
|
+
/home/caleb/rubies/ruby-1.8.6/lib/ftools.rb
|
187
|
+
/home/caleb/rubies/ruby-1.8.6/lib/rdoc/generators/template/html/html.rb
|
188
|
+
/home/caleb/rubies/ruby-1.8.6/lib/yaml/types.rb
|
189
|
+
/home/caleb/rubies/ruby-1.8.6/test/fileutils/test_fileutils.rb
|
190
|
+
/home/caleb/rubies/ruby-1.8.7/lib/ftools.rb
|
191
|
+
/home/caleb/rubies/ruby-1.8.7/lib/rdoc/generators/template/html/html.rb
|
192
|
+
/home/caleb/rubies/ruby-1.8.7/lib/yaml/types.rb
|
193
|
+
/home/caleb/rubies/ruby-1.8.7/sample/test.rb
|
194
|
+
/home/caleb/rubies/ruby-1.8.7/test/fileutils/test_fileutils.rb
|
195
|
+
/home/caleb/rubies/ruby-1.8.7/test/ruby/test_proc.rb
|
196
|
+
/home/caleb/rubies/ruby-1.8.7-preview2/lib/ftools.rb
|
197
|
+
/home/caleb/rubies/ruby-1.8.7-preview2/lib/rdoc/generators/template/html/html.rb
|
198
|
+
/home/caleb/rubies/ruby-1.8.7-preview2/lib/yaml/types.rb
|
199
|
+
/home/caleb/rubies/ruby-1.8.7-preview2/test/fileutils/test_fileutils.rb
|
200
|
+
/home/caleb/rubies/ruby-1.9.0-0/lib/rdoc/generators/template/html/html.rb
|
201
|
+
/home/caleb/rubies/ruby-1.9.0-0/lib/rubygems/source_index.rb
|
202
|
+
/home/caleb/rubies/ruby-1.9.0-0/lib/yaml/types.rb
|
203
|
+
/home/caleb/sandbox/rubylexer/jewels/alib-0.5.1/lib/alib-0.5.1/util.rb
|
204
|
+
/home/caleb/sandbox/rubylexer/jewels/stick-1.3.3/test/test_matrix.rb
|
205
|
+
/home/caleb/sandbox/rubylexer/jewels/rwdtinker-1.67/ev/rwd.rb
|
206
|
+
/home/caleb/sandbox/rubylexer/jewels/rubyslippers-1.03/extras/rconftool.rb
|
207
|
+
/home/caleb/rubies/ruby-1.9.0-0/test/fileutils/test_fileutils.rb
|
208
|
+
/home/caleb/rubies/ruby-1.9.0-0/test/rubygems/test_gem_commands_cert_command.rb
|
209
|
+
/home/caleb/sandbox/rubylexer/jewels/rubysync-0.2.1/lib/ruby_sync/connectors/base_connector.rb
|
210
|
+
/home/caleb/sandbox/rubylexer/jewels/rubyslippers-1.03/ev/rwd.rb
|
211
|
+
/home/caleb/sandbox/rubylexer/jewels/karmasphere-client-0.6.4/lib/karmasphere/query.rb
|
212
|
+
/home/caleb/sandbox/rubylexer/jewels/roby-0.7.2/test/test_transactions.rb
|
213
|
+
/home/caleb/sandbox/rubylexer/jewels/rwddemo-0.92/extras/rconftool.rb
|
214
|
+
/home/caleb/sandbox/rubylexer/jewels/ambition-0.5.2/app_generators/ambition_adapter/ambition_adapter_generator.rb
|
215
|
+
/usr/lib/ruby/1.8/tk/canvastag.rb
|
216
|
+
/home/caleb/rubies/rubygems-1.1.1/test/test_gem_commands_cert_command.rb
|
217
|
+
/home/caleb/sandbox/rubylexer/jewels/udat-1.4.1/lib/udat.rb
|
218
|
+
/home/caleb/sandbox/rubylexer/jewels/rmail-1.0.0/test/testmessage.rb
|
219
|
+
/home/caleb/sandbox/rubylexer/jewels/camping-1.5/examples/campsh.rb
|
220
|
+
/home/caleb/sandbox/rubylexer/jewels/clickatell-0.4.1/lib/clickatell.rb
|
221
|
+
/home/caleb/sandbox/rubylexer/jewels/rfeedparser-0.9.940/lib/rfeedparser.rb
|
222
|
+
/home/caleb/sandbox/rubylexer/jewels/passenger-2.0.1/lib/passenger/abstract_server.rb
|
223
|
+
/home/caleb/sandbox/rubylexer/jewels/rubywebdialogs/rubywebdialogs.rb
|
224
|
+
/usr/lib/ruby/1.8/qwik/util-css.rb
|
225
|
+
/home/caleb/sandbox/rubylexer/jewels/aspectr-0.3.7/lib/aspectr.rb
|
226
|
+
/home/caleb/sandbox/rubylexer/jewels/optiflag-0.6.5/examples/example_2_6.rb
|
227
|
+
/home/caleb/sandbox/rubylexer/jewels/rwdhypernote-0.10/ev/rwd.rb
|
228
|
+
/home/caleb/sandbox/rubylexer/jewels/rubywebdialogs-0.2.0/realstuff.rb
|
229
|
+
/home/caleb/sandbox/rubylexer/jewels/stick-1.3.3/lib/stick/matrix.rb
|
230
|
+
/usr/share/hiki/hiki/docdiff/charstring.rb
|
231
|
+
/home/caleb/sandbox/rubylexer/jewels/rb2html-2.4/rb2html/haskell_lexer.rb
|
232
|
+
/home/caleb/sandbox/rubylexer/jewels/mspire-0.3.9/lib/spec_id/srf.rb
|
233
|
+
/home/caleb/sandbox/rubylexer/jewels/rb-wartslib-0.9.14/lib/wartslib/wl-file.rb
|
234
|
+
/home/caleb/sandbox/rubylexer/jewels/sqliki_generator-0.0.4/templates/lib_sanitize_html.rb
|
235
|
+
/home/caleb/sandbox/rubylexer/jewels/rwdshell-1.00/extras/rconftool.rb
|
236
|
+
/home/caleb/sandbox/rubylexer/jewels/main-2.8.0/lib/main/base.rb
|
237
|
+
/home/caleb/sandbox/rubylexer/jewels/aws-s3-0.5.1/lib/aws/s3/base.rb
|
238
|
+
/usr/lib/ruby/1.8/ftools.rb
|
239
|
+
/home/caleb/sandbox/rubylexer/jewels/pseudoxml-0.1.0/RAKEFILE
|
240
|
+
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb
|
241
|
+
/home/caleb/sandbox/rubylexer/jewels/typo-5.0.3.98.1/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb
|
242
|
+
/home/caleb/sandbox/rubylexer/jewels/rubytorrent-0.3/lib/rubytorrent/server.rb
|
243
|
+
/home/caleb/sandbox/rubylexer/jewels/optiflag-0.6.5/testcases/tc_values_as_hash.rb
|
244
|
+
/home/caleb/sandbox/rubylexer/jewels/optiflag-0.6.5/examples/example_3.rb
|
245
|
+
/home/caleb/sandbox/rubylexer/jewels/Nephila-0.6.0/config/environment.rb
|
246
|
+
/usr/share/rails/railties/builtin/rails_info/rails/info.rb
|
247
|
+
/home/caleb/sandbox/rubylexer/jewels/ruby-rpm-1.2.3/lib/rpm.rb
|
248
|
+
/home/caleb/sandbox/rubylexer/jewels/optiflag-0.6.5/testcases/tc_bug_one.rb
|
249
|
+
/home/caleb/sandbox/rubylexer/jewels/optiflag-0.6.5/testcases/tc_basic_char_flags.rb
|
250
|
+
/usr/lib/ruby/1.8/rant/c/include.rb
|
251
|
+
/home/caleb/sandbox/rubylexer/jewels/ya2yaml-0.26/lib/ya2yaml.rb
|
252
|
+
/home/caleb/sandbox/rubylexer/jewels/spree-0.2.0/vendor/rails/activesupport/lib/active_support/multibyte/handlers/utf8_handler.rb
|
253
|
+
/home/caleb/sandbox/rubylexer/jewels/rq-3.4.0/rails/vendor/rails/actionpack/test/controller/fragment_store_setting_test.rb
|
254
|
+
/home/caleb/sandbox/rubylexer/jewels/typo-5.0.3.98.1/config/environment.rb
|
255
|
+
/home/caleb/sandbox/rubylexer/jewels/date4-0.1.27/lib/date4/date.rb
|
256
|
+
/usr/share/skktools/filters/skkdictools.rb
|
257
|
+
/home/caleb/sandbox/rubylexer/jewels/aeditor-1.9/lib/aeditor/test_lexer.rb
|
258
|
+
/home/caleb/sandbox/rubylexer/jewels/optiflag-0.6.5/quick.rb
|
259
|
+
/home/caleb/sandbox/rubylexer/jewels/rabbit-0.5.6/lib/rabbit/image/eps.rb
|
260
|
+
/home/caleb/sandbox/rubylexer/jewels/gecoder-with-gecode-0.8.2/lib/gecoder/interface/constraints/set/connection.rb
|
261
|
+
/home/caleb/sandbox/rubylexer/jewels/onebody-0.3.0/vendor/rails/actionpack/test/controller/caching_test.rb
|
262
|
+
/home/caleb/sandbox/rubylexer/jewels/rwdhypernote-0.10/extras/rconftool.rb
|
263
|
+
/home/caleb/sandbox/rubylexer/jewels/Ron-0.1.0/lib/ron.rb
|
264
|
+
/home/caleb/sandbox/rubylexer/jewels/radiant-0.6.7/vendor/rails/railties/lib/initializer.rb
|
265
|
+
/usr/share/rails/activesupport/lib/active_support/multibyte/handlers/utf8_handler.rb
|
266
|
+
/home/caleb/sandbox/rubylexer/jewels/rwdgutenberg-0.07/extras/rconftool.rb
|
267
|
+
/home/caleb/sandbox/rubylexer/jewels/inline-0.1.0/lib/inline/editor.rb
|
268
|
+
/home/caleb/sandbox/rubylexer/jewels/xx-2.1.0/lib/xx-2.1.0.rb
|
269
|
+
/home/caleb/sandbox/rubylexer/jewels/ok-extensions-1.0.15/lib/extensions/fixnum.rb
|
270
|
+
/home/caleb/sandbox/rubylexer/jewels/aspectr-0-3-5/lib/aspectr.rb
|
271
|
+
/home/caleb/sandbox/rubylexer/jewels/rubygems-update-1.2.0/lib/rubygems/test_utilities.rb
|
272
|
+
/home/caleb/sandbox/rubylexer/jewels/whistle-0.1.1/vendor/ruby-feedparser-0.5-stripped/lib/feedparser/sgml-parser.rb
|
273
|
+
/home/caleb/sandbox/rubylexer/jewels/hpricot-0.6/lib/hpricot/modules.rb
|
274
|
+
/home/caleb/sandbox/rubylexer/jewels/ruby-web-1.1.1/lib/web/htmlparser/sgml-parser.rb
|
275
|
+
/usr/lib/ruby/1.8/rant/import/c/dependencies.rb
|
276
|
+
/home/caleb/sandbox/rubylexer/jewels/dbi-0.1.0/lib/dbd/FrontBase.rb
|
277
|
+
/home/caleb/sandbox/rubylexer/jewels/live_console-0.1.0/lib/live_console.rb
|
278
|
+
/home/caleb/sandbox/rubylexer/jewels/html-table-1.3.1/test/tc_header.rb
|
279
|
+
/home/caleb/sandbox/rubylexer/jewels/optiflag-0.6.5/testcases/tc_enumerated_value_validation.rb
|
280
|
+
/home/caleb/sandbox/rubylexer/jewels/bigtinker-0.93/ev/rwd.rb
|
281
|
+
/home/caleb/sandbox/rubylexer/jewels/xmlscan-0.2.3/tests/visitor.rb
|
282
|
+
/home/caleb/sandbox/rubylexer/jewels/dm-core-0.9.2/lib/dm-core/types/discriminator.rb
|
283
|
+
/home/caleb/sandbox/rubylexer/jewels/sup-0.5/lib/sup/imap.rb
|
284
|
+
/home/caleb/sandbox/rubylexer/jewels/optiflag-0.6.5/examples/example_2_2.rb
|
285
|
+
/home/caleb/sandbox/rubylexer/jewels/authorails-1.0.0/lib/initializer.rb
|
286
|
+
/usr/lib/ruby/1.9.0/tk/textmark.rb
|
287
|
+
/var/lib/gems/1.8/gems/Ron-0.1.0/lib/ron.rb
|
288
|
+
/home/caleb/sandbox/rubylexer/jewels/optiflag-0.6.5/examples/example_2.rb
|
289
|
+
/home/caleb/sandbox/rubylexer/jewels/allinoneruby-0.2.11/realstuff.rb
|
290
|
+
/home/caleb/sandbox/rubylexer/jewels/typo-5.0.3.98.1/db/migrate/040_attach_content_to_blog.rb
|
291
|
+
/home/caleb/sandbox/rubylexer/jewels/bijou-0.1.0/lib/bijou/processor.rb
|
292
|
+
/home/caleb/sandbox/rubylexer/jewels/rq-3.4.0/lib/rq/lockfile.rb
|
293
|
+
/usr/lib/ruby/1.9.0/tkextlib/vu/pie.rb
|
294
|
+
/usr/lib/ruby/1.9.0/optparse.rb
|
295
|
+
/home/caleb/sandbox/reg/regcompiler.rb
|
296
|
+
/home/caleb/sandbox/rubylexer/jewels/rubygame-2.3.0/lib/rubygame/rect.rb
|
297
|
+
/usr/lib/ruby/1.9.0/tk/canvastag.rb
|
298
|
+
/home/caleb/sandbox/rubylexer/jewels/html-table-1.3.1/test/tc_foot.rb
|
299
|
+
/home/caleb/sandbox/rubylexer/jewels/optiflag-0.6.5/examples/example_2_3.rb
|
300
|
+
/home/caleb/sandbox/rubylexer/jewels/html-table-1.3.1/test/tc_caption.rb
|
301
|
+
/home/caleb/sandbox/rubylexer/jewels/extract-curves-0.1.1/ruby_libs/pav/string/observable.rb
|
302
|
+
/home/caleb/sandbox/rubylexer/jewels/starling-0.9.3/lib/starling/runner.rb
|
303
|
+
/usr/lib/ruby/1.9.0/rubygems/source_index.rb
|
304
|
+
/home/caleb/sandbox/rubylexer/jewels/RbYAML-0.2.0/lib/rbyaml/types.rb
|
305
|
+
/home/caleb/sandbox/rubylexer/jewels/rio-0.4.1/doc/generators/template/html/rio.rb
|
306
|
+
/home/caleb/sandbox/rubylexer/jewels/rwdaddresses-1.03/extras/vpim/rrule.rb
|
307
|
+
/usr/lib/ruby/1.8/feed2imap/sgml-parser.rb
|
308
|
+
/usr/lib/ruby/1.8/htree/modules.rb
|
309
|
+
/home/caleb/sandbox/rubylexer/jewels/Dnsruby-1.0/test/tc_tsig.rb
|
310
|
+
/usr/lib/ruby/1.8/yaml/types.rb
|
311
|
+
/home/caleb/sandbox/rubylexer/jewels/rubyscript2exe/rubyscript2exe.rb
|
312
|
+
/home/caleb/sandbox/rubylexer/jewels/rfeedparser-ictv-0.9.931/lib/rfeedparser.rb
|
313
|
+
/usr/lib/ruby/1.8/amazon.rb
|
314
|
+
/home/caleb/sandbox/redparse/redparse.rb
|
315
|
+
/home/caleb/sandbox/rubylexer/jewels/rq-3.4.0/rails/vendor/rails/railties/builtin/rails_info/rails/info.rb
|
316
|
+
/home/caleb/sandbox/rubylexer/jewels/extract_curves-0.0.1/ruby_libs/pav/string/observable.rb
|
317
|
+
/home/caleb/sandbox/rubylexer/jewels/simplemapper-0.0.6/lib/simple_mapper/default_plugins/oauth.rb
|
318
|
+
/usr/share/kagemai/lib/xmlscan/parser.rb
|
319
|
+
/home/caleb/sandbox/rubylexer/jewels/text-hyphen-1.0.0/lib/text/hyphen/language/id.rb
|
320
|
+
/home/caleb/sandbox/rubylexer/jewels/rant-0.5.7/lib/rant/c/include.rb
|
321
|
+
/home/caleb/sandbox/rubylexer/jewels/cursor-0.9/duck.rb
|
322
|
+
/home/caleb/sandbox/rubylexer/jewels/ruby-nxt-0.8.1/examples/commands.rb
|
323
|
+
/var/lib/gems/1.8/gems/cursor-0.9/duck.rb
|
324
|
+
/home/caleb/sandbox/rubylexer/jewels/voruby-1.1.1/lib/voruby/simple/parameters.rb
|
325
|
+
/home/caleb/sandbox/rubylexer/jewels/Dnsruby-1.0/lib/Dnsruby/resource/A.rb
|
326
|
+
/home/caleb/sandbox/rubylexer/jewels/catori-0.2.6/lib/taglib.rb
|
327
|
+
/home/caleb/sandbox/rubylexer/jewels/gettext-1.91.0/test/test_rails_caching.rb
|
328
|
+
/home/caleb/sandbox/rubylexer/jewels/rwdschedule-1.02/extras/rconftool.rb
|
329
|
+
/home/caleb/sandbox/rubylexer/jewels/spree-0.2.0/vendor/rails/actionpack/lib/action_controller/request.rb
|
330
|
+
/home/caleb/sandbox/rubylexer/jewels/rubum-0.01/rubum_standalone/ruby/rubum/rdf/lib/.svn/text-base/basicrdf.rb.svn-base
|
331
|
+
/home/caleb/sandbox/rubylexer/jewels/rabbit-0.5.6/lib/rabbit/image/base.rb
|
332
|
+
/usr/lib/ruby/1.9.0/resolv.rb
|
333
|
+
/home/caleb/sandbox/rubylexer/jewels/sqliki-0.0.4/templates/lib_sanitize_html.rb
|
334
|
+
/home/caleb/sandbox/rubylexer/jewels/whistle-0.1.1/lib/resource.rb
|
335
|
+
/home/caleb/sandbox/rubylexer/jewels/onebody-0.3.0/vendor/rails/actionpack/lib/action_controller/routing/route.rb
|
336
|
+
/home/caleb/sandbox/rubylexer/jewels/html-table-1.3.1/examples/intermediate2.rb
|
337
|
+
/usr/share/hiki/hiki/plugin.rb
|
338
|
+
/home/caleb/sandbox/rubylexer/jewels/xmlparser-0.6.8/xmlparser/samples/digesttest.rb
|
339
|
+
/home/caleb/sandbox/rubylexer/jewels/puppet-0.24.4/lib/puppet/file_serving/indirection_hooks.rb
|
340
|
+
/home/caleb/sandbox/rubylexer/jewels/assert_xpath-0.4.2/lib/assert_xpath.rb~
|
341
|
+
/home/caleb/sandbox/rubylexer/jewels/basset-1.0.1/lib/basset/classification_evaluator.rb
|
342
|
+
/usr/lib/ruby/1.8/hpricot/traverse.rb
|
343
|
+
/home/caleb/sandbox/rubylexer/jewels/net-netrc-0.2.1/lib/net/netrc.rb
|
344
|
+
/home/caleb/sandbox/rubylexer/jewels/etc-0.2.0/lib/etc.rb
|
@@ -0,0 +1,3319 @@
|
|
1
|
+
=begin
|
2
|
+
redparse - a ruby parser written in ruby
|
3
|
+
Copyright (C) 2008 Caleb Clausen
|
4
|
+
|
5
|
+
This library is free software; you can redistribute it and/or
|
6
|
+
modify it under the terms of the GNU Lesser General Public
|
7
|
+
License as published by the Free Software Foundation; either
|
8
|
+
version 2.1 of the License, or (at your option) any later version.
|
9
|
+
|
10
|
+
This library is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
Lesser General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU Lesser General Public
|
16
|
+
License along with this library; if not, write to the Free Software
|
17
|
+
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
18
|
+
=end
|
19
|
+
|
20
|
+
require 'test/unit'
|
21
|
+
require 'rubygems'
|
22
|
+
require 'parse_tree'
|
23
|
+
|
24
|
+
require "redparse"
|
25
|
+
|
26
|
+
begin
|
27
|
+
require "test/code/testcases"
|
28
|
+
rescue Exception
|
29
|
+
puts "!!!!!!RubyLexer's test/code/testcases not found!!!!"
|
30
|
+
module TestCases;TESTCASES=[];end
|
31
|
+
end
|
32
|
+
|
33
|
+
class RedParseTest<Test::Unit::TestCase
|
34
|
+
ONELINERS=[
|
35
|
+
'%w[- \\\\\\\\ e]'...'',
|
36
|
+
'%w[- \\\\\\\\ ]'...'',
|
37
|
+
'a=[]; a [42] = 24'...'', #not legal unless a is a local var
|
38
|
+
'%w![ ] { } ( ) | - * . \\\\\\\\ ? + ^ $ #!'...'',
|
39
|
+
'%W(white\ \ \ \ \ space).should == ["white ", " ", " ", " space"]'...'',
|
40
|
+
'module A; b; rescue C=>d; e; else g; ensure f; end'...'',
|
41
|
+
'class A; b; rescue C=>d; e; else g; ensure f; end'...'',
|
42
|
+
'class<<A; b; rescue C=>d; e; else g; ensure f; end'...'',
|
43
|
+
'File.open() {|f| ; }'...'',
|
44
|
+
'e { |c|; print "%02X" % c }'...'',
|
45
|
+
' /\A#{__FILE__}/'...'',
|
46
|
+
' /\A#{"F"}/'...'',
|
47
|
+
'"\\\\\\\\\\""'...'',
|
48
|
+
'"\\\\\\""'...'',
|
49
|
+
'"\\\\\\\\\\\"'...'',
|
50
|
+
'"\\\\\\\"'...'',
|
51
|
+
|
52
|
+
'alias :"foo#{bar}" :"baz#{quux}"'...'',
|
53
|
+
'undef :"foo#{bar}", :"baz#{quux}"'...'',
|
54
|
+
'A::B::C'...'',
|
55
|
+
's=3; s::T'...'',
|
56
|
+
'return ENV[]'...'',
|
57
|
+
' [TypeValue, ClassValue = Clalue] '...'',
|
58
|
+
'{44 => TypeValue, ClassValue = Clalue => 55}'...'',
|
59
|
+
'{44 => TypeValue = Type, ClassValue = Clalue => 55}'...'',
|
60
|
+
'module::A::B::Special::Extend C end'...'',
|
61
|
+
'module ::A::B::Special::Extend C end'...'',
|
62
|
+
'module A::B::Special::Extend C end'...'',
|
63
|
+
'module A::B ::Special::Extend C end'...'',
|
64
|
+
'module A::B :: Special::Extend C end'...'',
|
65
|
+
'module A::B:: Special::Extend C end'...'',
|
66
|
+
'class BUNE end'...'',
|
67
|
+
'class BUNE; extend end'...'',
|
68
|
+
'module BUNE end'...'',
|
69
|
+
'module BUNE extend end'...'',
|
70
|
+
'module BUNE extend OptiFgset end'...'',
|
71
|
+
'0.5'...'',
|
72
|
+
'class BUG_ONE extend OptiFlag::Flagset; end'...'', #illegal
|
73
|
+
'module ::BUG_ONE extend OptiFlag::Flagset; end'...'',
|
74
|
+
'module ::BUG::ONE extend OptiFlag::Flagset; end'...'',
|
75
|
+
'module BUG::ONE extend OptiFlag::Flagset; end'...'',
|
76
|
+
'module BUG_ONE extend OptiFlag::Flagset; end'...'',
|
77
|
+
'module BUG_ONE; extend OptiFlag::Flagset; end'...'',
|
78
|
+
' ClassHash[TypeValue = Type, ClassValue = Clalue] =1'...'',
|
79
|
+
' ClassHash[[TypeValue = Type, ClassValue = Clalue]] =1'...'',
|
80
|
+
' ClassHash[[[TypeValue = Type, ClassValue = Clalue]]] =1'...'',
|
81
|
+
' ClassHash[TypeValue = Type, ClassValue = Clalue] '...'',
|
82
|
+
' ClassHash[[TypeValue = Type, ClassValue = Clalue]] '...'',
|
83
|
+
' ClassHash[[[TypeValue = Type, ClassValue = Clalue]]] '...'',
|
84
|
+
' [TypeValue = Type, ClassValue = Clalue] '...'',
|
85
|
+
' [[TypeValue = Type, ClassValue = Clalue]] '...'',
|
86
|
+
' [[[TypeValue = Type, ClassValue = Clalue]]] '...'',
|
87
|
+
'begin r;rescue *re;r;end'...'',
|
88
|
+
'if v; else return([vUew]).e end'...'',
|
89
|
+
'unless v; else return ([vUew]).e end'...'',
|
90
|
+
'if v; else return ([vUew]).e end'...'',
|
91
|
+
'begin v; else return ([vUew]).e end'...'',
|
92
|
+
'case v; when 4; 5; else return ([vUew]).e end'...'',
|
93
|
+
'def v; t; else return ([vUew]).e end'...'',
|
94
|
+
'def i;"..#{@@c = 1}";end'...'',
|
95
|
+
'"""Universal feed parser in Ruby""";$K=fgdf'...'',
|
96
|
+
"case F;when G; else;case; when j; end;end"...'',
|
97
|
+
' m.cn= 1, V'...'',
|
98
|
+
'__LINE__'...'',
|
99
|
+
'"#{}"""'...'',
|
100
|
+
'def line(host = host,guest=host); end'...'',
|
101
|
+
'def e; begin; y; g else t; m; end ;end'...'',
|
102
|
+
'[a,*b=c]'...'',
|
103
|
+
'p a,*b=c'...'',
|
104
|
+
'p(a,*b=c)'...'',
|
105
|
+
'[*b=c]'...'',
|
106
|
+
'p *b=c'...'',
|
107
|
+
'p(*b=c)'...'',
|
108
|
+
'p = p m %(1)'...'', #the parsing of this one makes no sense to me!
|
109
|
+
'p = p m %(1) do end'...'', #the parsing of this one makes no sense to me!
|
110
|
+
'p = p m %(1) ,t'...'', #the parsing of this one makes no sense to me!
|
111
|
+
'p = p m %(1) ,*t'...'', #the parsing of this one makes no sense to me!
|
112
|
+
'p = p m %(1) ,&t'...'', #the parsing of this one makes no sense to me!
|
113
|
+
'p = k.p m %(1)'...'', #the parsing of this one makes no sense to me!
|
114
|
+
'p = k.p m %(1) do end'...'', #the parsing of this one makes no sense to me!
|
115
|
+
'p = k::p m %(1)'...'', #the parsing of this one makes no sense to me!
|
116
|
+
'p = k::p m %(1) do end'...'', #the parsing of this one makes no sense to me!
|
117
|
+
'p=556;p (e) /a'...'',
|
118
|
+
'(a;b;c);d;e;f;(g;h;i)'...'',
|
119
|
+
'def __DATA__.f; end'...'',
|
120
|
+
'def continue.f; end'...'',
|
121
|
+
'a0 = k ? a rescue b : d'...'',
|
122
|
+
'a0 = a rescue k ? b : d'...'',
|
123
|
+
'k ? a0 = a rescue b : d'...'',
|
124
|
+
'{a0 = a rescue b => c}'...'',
|
125
|
+
'p(a0 = a rescue b,c)'...'',
|
126
|
+
'p a0 = a rescue b,c'...'',
|
127
|
+
'[a0 = a rescue b,c]'...'',
|
128
|
+
'a0 = a rescue b and c'...'',
|
129
|
+
'a0 = a rescue b or c'...'',
|
130
|
+
'a0 = a rescue b if c'...'',
|
131
|
+
'a0 = a rescue b && c'...'',
|
132
|
+
'begin begin; ync; p1; end;rr end'...'',
|
133
|
+
'a= y 1,2 rescue c'...'',
|
134
|
+
'"f";p (1..10).method(:each)'...'',
|
135
|
+
'"\C-\p "'...'',
|
136
|
+
'p (&a)'...'',
|
137
|
+
'p (*a)'...'',
|
138
|
+
'return % 1 '...'',
|
139
|
+
'return / 1 /'...'',
|
140
|
+
'a.return % 1 '...'',
|
141
|
+
'a.return / 1 /'...'',
|
142
|
+
'break % 1 '...'',
|
143
|
+
'break / 1 /'...'',
|
144
|
+
'a.break % 1 '...'',
|
145
|
+
'a.break / 1 /'...'',
|
146
|
+
'break % 1 '...'',
|
147
|
+
'break / 1 /'...'',
|
148
|
+
'a.break % 1 '...'',
|
149
|
+
'a.break / 1 /'...'',
|
150
|
+
|
151
|
+
'return[1]'...'',
|
152
|
+
'next[1]'...'',
|
153
|
+
'break[1]'...'',
|
154
|
+
'continue[1]'...'',
|
155
|
+
'a.return[1]'...'',
|
156
|
+
'a.next[1]'...'',
|
157
|
+
'a.break[1]'...'',
|
158
|
+
'a.continue[1]'...'',
|
159
|
+
|
160
|
+
'yield *a=r'...'',
|
161
|
+
'begin; q; rescue a=r,b; end'...'',
|
162
|
+
'case g; when a=r,b; end'...'',
|
163
|
+
'begin; g; rescue *a=r; end'...'',
|
164
|
+
'case g; when *a=r; end'...'',
|
165
|
+
'm.yield *a=r'...'',
|
166
|
+
'm.rescue a=r,b'...'',
|
167
|
+
'm.when a=r,b'...'',
|
168
|
+
'm.rescue *a=r'...'',
|
169
|
+
'm.when *a=r'...'',
|
170
|
+
|
171
|
+
'(*a=c)'...'',
|
172
|
+
'((*a=c))'...'',
|
173
|
+
'(((*a=c)))'...'',
|
174
|
+
'((((*a=c))))'...'',
|
175
|
+
|
176
|
+
'p *a=c'...'',
|
177
|
+
'p(*a=c)'...'',
|
178
|
+
'p((*a=c))'...'',
|
179
|
+
'p(((*a=c)))'...'',
|
180
|
+
'p((((*a=c))))'...'',
|
181
|
+
'p (*a=c)'...'',
|
182
|
+
'p (1),*a=c'...'',
|
183
|
+
'{p (1) => b}'...'',
|
184
|
+
'"1#{p (1,2).m}2"'...'',
|
185
|
+
'"1#{p ().m}2"'...'',
|
186
|
+
'"1#{p (1).m}2"'...'',
|
187
|
+
'"1#{tt;p (1).m}2"'...'',
|
188
|
+
'a0 = az=d,y'...'',
|
189
|
+
'begin; rescue A=>b.c : end'...'',
|
190
|
+
'begin; rescue A=>b.c then end'...'',
|
191
|
+
'begin; rescue A=>@a; end'...'',
|
192
|
+
'begin; rescue A=>@@a; end'...'',
|
193
|
+
'begin; rescue A=>$a; end'...'',
|
194
|
+
'begin; rescue A=>$!; end'...'',
|
195
|
+
'begin; rescue A=>A; end'...'',
|
196
|
+
'begin; rescue A=>::B; end'...'',
|
197
|
+
'begin; rescue A=>A::B; end'...'',
|
198
|
+
'begin; rescue A=>a.b; end'...'',
|
199
|
+
'begin; rescue A=>p[4]; end'...'',
|
200
|
+
'begin; rescue A=>p (1).m; end'...'',
|
201
|
+
'm ? n : (b)'...'',
|
202
|
+
'm ? n : (begin; end)'...'',
|
203
|
+
'begin; rescue =>e; p end'...'',
|
204
|
+
'begin; rescue E=>e; p end'...'',
|
205
|
+
'a0 = *t rescue b0'...'',
|
206
|
+
'a0 = p 1.q rescue b0'...'',
|
207
|
+
'a0 = p 1.q,2 rescue b0'...'',
|
208
|
+
'def a(b,c) e=*g end'...'',
|
209
|
+
'def a(b,c) d,e=f,g end'...'',
|
210
|
+
'def a b,d=p (1.10).m,*f,&g; end'...'',
|
211
|
+
'a=*b rescue c rescue d'...'',
|
212
|
+
'a=b rescue c rescue d'...'',
|
213
|
+
'*a0 = *a=b'...'',
|
214
|
+
'a0 = *a=b'...'',
|
215
|
+
'*a[z]=c rescue b'...'',
|
216
|
+
'a0 = @data.[]=(*args) rescue b0'...'',
|
217
|
+
'm{|p (1..10).method(:each)[*b]| c}'...'',
|
218
|
+
'm{|p (1)[b]| }'...'',
|
219
|
+
'm{|p ()[b]| }'...'',
|
220
|
+
'm{|p (1,2)[b]| }'...'',
|
221
|
+
'a0 = b 1 do end rescue c'...'',
|
222
|
+
'a0 = b do end rescue c'...'',
|
223
|
+
'a0 = b() do end rescue c'...'',
|
224
|
+
'p (1.10).me,z=c'...'',
|
225
|
+
'p(1.10).me,z=c'...'',
|
226
|
+
'p (1..10).method(:each)[z,*b],z=c,y'...'',
|
227
|
+
'a = p rescue b'...'',
|
228
|
+
'a,g = p rescue b'...'',
|
229
|
+
' false and ( t) '...'',
|
230
|
+
'a0 = begin;rescue;end rescue b0'...'',
|
231
|
+
'a0 = def a b,d=e; end rescue b0'...'',
|
232
|
+
'a0 = def a b=c,d=e; end rescue b0'...'',
|
233
|
+
'def a b,d=e; end'...'',
|
234
|
+
'{p (1) => a}'...'',
|
235
|
+
'{p (1).m => a}'...'',
|
236
|
+
'a0 = begin; end rescue b0'...'',
|
237
|
+
'a0 = begin; a; end rescue b0'...'',
|
238
|
+
'a0 = (a;b;) rescue b0'...'',
|
239
|
+
'a0= y,begin a end rescue b0'...'',
|
240
|
+
'a0= y,*begin a end rescue b0'...'',
|
241
|
+
'a0= *begin a end rescue b0'...'',
|
242
|
+
'a0= y,begin a end rescue b0,z'...'',
|
243
|
+
'a0= begin a end rescue b0,z'...'',
|
244
|
+
'a0= begin a end rescue b0,*z'...'',
|
245
|
+
'*a0= begin a end rescue b0'...'',
|
246
|
+
'y,*a0= begin a end rescue b0'...'',
|
247
|
+
'y,a0= begin a end rescue b0'...'',
|
248
|
+
'y,a0,= begin a end rescue b0'...'',
|
249
|
+
'y,a0,* = begin a end rescue b0'...'',
|
250
|
+
'y,a0,*j= begin a end rescue b0'...'',
|
251
|
+
'(a0,)= begin a end rescue b0'...'',
|
252
|
+
'begin a end rescue b0'...'',
|
253
|
+
|
254
|
+
'c do p (110).m end'...'',
|
255
|
+
'a=a do end'...'',
|
256
|
+
'b a=a do end'...'',
|
257
|
+
'b=1;a=b do end'...'',
|
258
|
+
'st = a::F f rescue p'...'',
|
259
|
+
'st = a.F f rescue p'...'',
|
260
|
+
'st = F f rescue p'...'',
|
261
|
+
'{p (1).metho => 4}'...'',
|
262
|
+
'p (1).c'...'',
|
263
|
+
'k=z=c,d rescue b'...'',
|
264
|
+
'a=1,2 rescue 4'...'',
|
265
|
+
'a,*k=p,z=c rescue b'...'',
|
266
|
+
'a,k=p,z=c rescue b'...'',
|
267
|
+
'a=p,z=c rescue 0'...'',
|
268
|
+
'a =p (1).m,z=c rescue b'...'',
|
269
|
+
'z{|| p (1).m}'...'',
|
270
|
+
'b or p (1).m'...'',
|
271
|
+
'b and p (1).m'...'',
|
272
|
+
'b || p (1).m'...'',
|
273
|
+
'b && p (1).m'...'',
|
274
|
+
'b ? p (1).m : g'...'',
|
275
|
+
|
276
|
+
'c unless p (1).m'...'',
|
277
|
+
'c if p (1).m'...'',
|
278
|
+
'c until p (1).m'...'',
|
279
|
+
'c while p (1).m'...'',
|
280
|
+
|
281
|
+
'unless p (1).m; end'...'',
|
282
|
+
'if p (1).m; end'...'',
|
283
|
+
'until p (1).m; end'...'',
|
284
|
+
'while p (1).m; end'...'',
|
285
|
+
'z if c..p (1).m'...'',
|
286
|
+
'z if c...p (1).m'...'',
|
287
|
+
'yield *p (1).m'...'',
|
288
|
+
'p p (1).m'...'',
|
289
|
+
'a.p p (1).m'...'',
|
290
|
+
'p p ().m'...'',
|
291
|
+
'p p (1,2).m'...'',
|
292
|
+
'p p(1).m'...'',
|
293
|
+
'p(p (1).m)'...'',
|
294
|
+
|
295
|
+
'begin; m; rescue A=>p (1).metho; end'...'',
|
296
|
+
|
297
|
+
'h(a=>p (1).metho)'...'',
|
298
|
+
'h a=>p (1).metho'...'',
|
299
|
+
'h(a=>p (1).metho,2)'...'',
|
300
|
+
'h a=>p (1).metho,2'...'',
|
301
|
+
|
302
|
+
'{a=>p (1).metho}'...'',
|
303
|
+
'{a=>p ().metho}'...'',
|
304
|
+
'{a=>p (1,2).metho}'...'',
|
305
|
+
|
306
|
+
'"#{begin}"'...'',
|
307
|
+
'a0 = "#{begin; a; rescue b; p (1..10).method(:each)}" rescue b0'...'',
|
308
|
+
|
309
|
+
'begin; p; rescue p(4).m; end'...'',
|
310
|
+
'begin; p; rescue p (4).m; end'...'',
|
311
|
+
'begin; p; rescue p ().m; end'...'',
|
312
|
+
'begin; p; rescue p (4,5).m; end'...'',
|
313
|
+
|
314
|
+
|
315
|
+
|
316
|
+
' p rescue p a4.m'...'',
|
317
|
+
' p rescue p (4).m'...'',
|
318
|
+
' p rescue p ().m'...'',
|
319
|
+
' p rescue p (4,5).m'...'',
|
320
|
+
'a0 += p (1).d'...'',
|
321
|
+
'a0 = p (1..10).method(:each)[*b]=c rescue b0'...'',
|
322
|
+
'*a0 = *(a= c)'...'',
|
323
|
+
'*a0 = (*a= c)'...'',
|
324
|
+
'*a0 = *a=c'...'',
|
325
|
+
'a0 = (*a=c)'...'',
|
326
|
+
'a0 = *a=c'...'',
|
327
|
+
'a0 = *(a=c)'...'',
|
328
|
+
'a0 = m,*a=c'...'',
|
329
|
+
'a0 = m,*a=c rescue b0'...'',
|
330
|
+
'a0 = *a+=c'...'',
|
331
|
+
'a0 += *a=c'...'',
|
332
|
+
'a0 += *a+=c'...'',
|
333
|
+
|
334
|
+
'a0 = begin raise "foo" end rescue b0'...'',
|
335
|
+
'a0= a0 = su rescue b0 rescue b0'...'',
|
336
|
+
'class Using_Paths < Doc < FigureMaker; end'...'',
|
337
|
+
'a=begin end rescue b'...'',
|
338
|
+
'a=begin b end rescue c'...'',
|
339
|
+
'a=begin b; rescue c; d end rescue e'...'',
|
340
|
+
'a=() rescue b'...'',
|
341
|
+
'a=(b) rescue c'...'',
|
342
|
+
'a=(b c) rescue d'...'',
|
343
|
+
'a=(b(c)) rescue d'...'',
|
344
|
+
|
345
|
+
'a rescue b if c'...'',
|
346
|
+
'begin end until a'...'',
|
347
|
+
'o ? begin end : l'...'',
|
348
|
+
'o && begin end'...'',
|
349
|
+
'o || begin end'...'',
|
350
|
+
'o and begin end'...'',
|
351
|
+
'o or begin end'...'',
|
352
|
+
'not begin end'...'',
|
353
|
+
'! begin end'...'',
|
354
|
+
'Sw.===(anything).should == true'...'',
|
355
|
+
'def line(type, txt, selector, host = host, port = port); end'...'',
|
356
|
+
'a0 = def a.b; end rescue b0'...'',
|
357
|
+
'def a.b; end rescue b0'...'',
|
358
|
+
|
359
|
+
'a = (r(e) +t(j)) rescue 2'...'',
|
360
|
+
'a = (r e +t(j)) rescue 2'...'',
|
361
|
+
'a = (p) rescue 2'...'',
|
362
|
+
'a = (p(1)) rescue 2'...'',
|
363
|
+
'a = (p(1,g)) rescue 2'...'',
|
364
|
+
'a = (p 1,g) rescue 2'...'',
|
365
|
+
|
366
|
+
'a = r(e) +t(j) rescue 2'...'',
|
367
|
+
'a = r e +t(j) rescue 2'...'',
|
368
|
+
'a = p rescue 2'...'',
|
369
|
+
'a = p(1) rescue 2'...'',
|
370
|
+
'a = p(1,g) rescue 2'...'',
|
371
|
+
'a = p 1,g rescue 2'...'',
|
372
|
+
'//nonsense'...'',
|
373
|
+
'//xenon'...'',
|
374
|
+
'def wait; begin; ync; mup; end ;end'...'',
|
375
|
+
'first or (first,last=*rand_pos_pair)'...'',
|
376
|
+
'return - @com_disk'...'',
|
377
|
+
'continue - @com_disk'...'',
|
378
|
+
'yield - @com_disk'...'',
|
379
|
+
'break - @com_disk'...'',
|
380
|
+
'next - @com_disk'...'',
|
381
|
+
'raise - @com_disk'...'',
|
382
|
+
'undef - com_disk'...'',
|
383
|
+
'alias - com_disk'...'',
|
384
|
+
'defined? - @com_disk'...'',
|
385
|
+
'a rescue - @com_disk'...'',
|
386
|
+
'if a; else - @com_disk;end'...'',
|
387
|
+
'if - @com_disk;end'...'',
|
388
|
+
'unless - @com_disk;end'...'',
|
389
|
+
'while - @com_disk;end'...'',
|
390
|
+
'until - @com_disk;end'...'',
|
391
|
+
'begin - @com_disk;end'...'',
|
392
|
+
'end - @com_disk'...'',
|
393
|
+
'b do - @com_disk end'...'',
|
394
|
+
'for - @com_disk in a do b end'...'',
|
395
|
+
'for a in - @com_disk do b end'...'',
|
396
|
+
'if a; b; elsif - @com_disk; c end'...'',
|
397
|
+
'begin a; ensure - @com_disk; end'...'',
|
398
|
+
'catch - @com_disk'...'',
|
399
|
+
'throw - @com_disk'...'',
|
400
|
+
|
401
|
+
'return * @com_disk'...'',
|
402
|
+
'continue * @com_disk'...'',
|
403
|
+
'yield * @com_disk'...'',
|
404
|
+
'break * @com_disk'...'',
|
405
|
+
'next * @com_disk'...'',
|
406
|
+
'raise * @com_disk'...'',
|
407
|
+
'undef * com_disk'...'',
|
408
|
+
'alias * com_disk'...'',
|
409
|
+
'defined? * @com_disk'...'',
|
410
|
+
'a rescue * @com_disk'...'',
|
411
|
+
'if a; else * @com_disk;end'...'',
|
412
|
+
'if * @com_disk;end'...'',
|
413
|
+
'unless * @com_disk;end'...'',
|
414
|
+
'while * @com_disk;end'...'',
|
415
|
+
'until * @com_disk;end'...'',
|
416
|
+
'begin * @com_disk;end'...'',
|
417
|
+
'end * @com_disk'...'',
|
418
|
+
'b do * @com_disk end'...'',
|
419
|
+
'for * @com_disk in a do b end'...'',
|
420
|
+
'for a in * @com_disk do b end'...'',
|
421
|
+
'if a; b; elsif * @com_disk; c end'...'',
|
422
|
+
'begin a; ensure * @com_disk; end'...'',
|
423
|
+
'catch * @com_disk'...'',
|
424
|
+
'throw * @com_disk'...'',
|
425
|
+
|
426
|
+
|
427
|
+
'a.return - @com_disk'...'',
|
428
|
+
'm.continue - @com_disk'...'',
|
429
|
+
'm.yield - @com_disk'...'',
|
430
|
+
'm.break - @com_disk'...'',
|
431
|
+
'm.next - @com_disk'...'',
|
432
|
+
'm.raise - @com_disk'...'',
|
433
|
+
'm.undef - com_disk'...'',
|
434
|
+
'm.alias - com_disk'...'',
|
435
|
+
'm.defined? - @com_disk'...'',
|
436
|
+
'm.rescue - @com_disk'...'',
|
437
|
+
'm.else - @com_disk'...'',
|
438
|
+
'm.if - @com_disk'...'',
|
439
|
+
'm.unless - @com_disk'...'',
|
440
|
+
'm.while - @com_disk'...'',
|
441
|
+
'm.until - @com_disk'...'',
|
442
|
+
'm.begin - @com_disk'...'',
|
443
|
+
'm.end - @com_disk'...'',
|
444
|
+
'm.do - @com_disk'...'',
|
445
|
+
'm.for - @com_disk'...'',
|
446
|
+
'm.in - @com_disk '...'',
|
447
|
+
'm.elsif - @com_disk'...'',
|
448
|
+
'm.ensure - @com_disk'...'',
|
449
|
+
'm.catch - @com_disk'...'',
|
450
|
+
'm.throw - @com_disk'...'',
|
451
|
+
|
452
|
+
'm.return * @com_disk'...'',
|
453
|
+
'm.continue * @com_disk'...'',
|
454
|
+
'm.yield * @com_disk'...'',
|
455
|
+
'm.break * @com_disk'...'',
|
456
|
+
'm.next * @com_disk'...'',
|
457
|
+
'm.raise * @com_disk'...'',
|
458
|
+
'm.undef * com_disk'...'',
|
459
|
+
'm.alias * com_disk'...'',
|
460
|
+
'm.defined? * @com_disk'...'',
|
461
|
+
'm.rescue * @com_disk'...'',
|
462
|
+
'm.else * @com_disk'...'',
|
463
|
+
'm.if * @com_disk'...'',
|
464
|
+
'm.unless * @com_disk'...'',
|
465
|
+
'm.while * @com_disk'...'',
|
466
|
+
'm.until * @com_disk'...'',
|
467
|
+
'm.begin * @com_disk'...'',
|
468
|
+
'm.end * @com_disk'...'',
|
469
|
+
'm.do * @com_disk'...'',
|
470
|
+
'm.for * @com_disk '...'',
|
471
|
+
'm.in * @com_disk'...'',
|
472
|
+
'm.elsif * @com_disk'...'',
|
473
|
+
'm.ensure * @com_disk'...'',
|
474
|
+
'm.catch * @com_disk'...'',
|
475
|
+
'm.throw * @com_disk'...'',
|
476
|
+
|
477
|
+
|
478
|
+
'%W[Ml.#{G.ma}.Z M.#{G.m} yaml.Z ]'...'',
|
479
|
+
'@data.[]=(*args)'...'',
|
480
|
+
'have_header(*curses=%w"ncurses.h")'...'',
|
481
|
+
'Proc{|a,&b|}'...'',
|
482
|
+
'Proc{|a,&b| c}'...'',
|
483
|
+
'e if f rescue 0'...'',
|
484
|
+
'e unless f rescue 0'...'',
|
485
|
+
'e while f rescue 0'...'',
|
486
|
+
'e until f rescue 0'...'',
|
487
|
+
'begin;mode;rescue;o_chmod rescue nil;end'...'',
|
488
|
+
'stat = File.stat f rescue error'...'',
|
489
|
+
'case a;else;end'...'',
|
490
|
+
'n = o ? begin end : l'...'',
|
491
|
+
'o ? begin end : l'...'',
|
492
|
+
'if o then begin end else l end'...'',
|
493
|
+
'o && begin end'...'',
|
494
|
+
'o || begin end'...'',
|
495
|
+
'o & begin end'...'',
|
496
|
+
'o | begin end'...'',
|
497
|
+
'o and begin end'...'',
|
498
|
+
'o or begin end'...'',
|
499
|
+
'o if begin end'...'',
|
500
|
+
'o unless begin end'...'',
|
501
|
+
'o while begin end'...'',
|
502
|
+
'o until begin end'...'',
|
503
|
+
|
504
|
+
'def self; end'...'',
|
505
|
+
'def nil; end'...'',
|
506
|
+
'def true; end'...'',
|
507
|
+
'def false; end'...'',
|
508
|
+
'def __FILE__; end'...'',
|
509
|
+
'def __LINE__; end'...'',
|
510
|
+
'def __END__; end'...'',
|
511
|
+
|
512
|
+
'def continue; end'...'',
|
513
|
+
'def yield; end'...'',
|
514
|
+
'def break; end'...'',
|
515
|
+
'def next; end'...'',
|
516
|
+
'def return; end'...'',
|
517
|
+
'def raise; end'...'',
|
518
|
+
'def undef; end'...'',
|
519
|
+
'def alias; end'...'',
|
520
|
+
'def def; end'...'',
|
521
|
+
'def module; end'...'',
|
522
|
+
'def class; end'...'',
|
523
|
+
'def defined?; end'...'',
|
524
|
+
'def rescue; end'...'',
|
525
|
+
'def else; end'...'',
|
526
|
+
'def if; end'...'',
|
527
|
+
'def unless; end'...'',
|
528
|
+
'def while; end'...'',
|
529
|
+
'def until; end'...'',
|
530
|
+
'def begin; end'...'',
|
531
|
+
'def end; end'...'',
|
532
|
+
'def do; end'...'',
|
533
|
+
'def for; end'...'',
|
534
|
+
'def in; end'...'',
|
535
|
+
'def elsif; end'...'',
|
536
|
+
'def ensure; end'...'',
|
537
|
+
'def catch; end'...'',
|
538
|
+
'def throw; end'...'',
|
539
|
+
|
540
|
+
'def continue.x; end'...'',
|
541
|
+
'def yield.x; end'...'',
|
542
|
+
'def break.x; end'...'',
|
543
|
+
'def next.x; end'...'',
|
544
|
+
'def return.x; end'...'',
|
545
|
+
'def raise.x; end'...'',
|
546
|
+
'def defined?.x; end'...'',
|
547
|
+
'def catch.x; end'...'',
|
548
|
+
'def throw.x; end'...'',
|
549
|
+
'def self.x; end'...'',
|
550
|
+
'def nil.x; end'...'',
|
551
|
+
'def true.x; end'...'',
|
552
|
+
'def false.x; end'...'',
|
553
|
+
'def __FILE__.x; end'...'',
|
554
|
+
'def __LINE__.x; end'...'',
|
555
|
+
'def __END__.x; end'...'',
|
556
|
+
|
557
|
+
'p p {} do end'...'',
|
558
|
+
' ca (:f).gg '...'',
|
559
|
+
' return gsub() {}'...'',
|
560
|
+
'p timeout(5) {45}'...'',
|
561
|
+
'%w[ a b]'...'',
|
562
|
+
|
563
|
+
'defined?(MOD_RUBY)..ENV'...'',
|
564
|
+
'defined?(MOD_RUBY)...ENV'...'',
|
565
|
+
'defined? MOD_RUBY..ENV'...'',
|
566
|
+
'defined? MOD_RUBY...ENV'...'',
|
567
|
+
|
568
|
+
'defined?(MOD_RUBY).ENV'...'',
|
569
|
+
'defined?(MOD_RUBY)::ENV'...'',
|
570
|
+
'defined? MOD_RUBY.ENV'...'',
|
571
|
+
'defined? MOD_RUBY::ENV'...'',
|
572
|
+
|
573
|
+
'defined?(MOD_RUBY)[ENV]'...'',
|
574
|
+
'defined?(MOD_RUBY)[ENV]=1'...'',
|
575
|
+
'defined? MOD_RUBY[ENV]'...'',
|
576
|
+
'defined? MOD_RUBY[ENV]=1'...'',
|
577
|
+
'defined?(MOD_RUBY)**ENV'...'',
|
578
|
+
'defined? MOD_RUBY**ENV'...'',
|
579
|
+
|
580
|
+
|
581
|
+
'defined?(MOD_RUBY)<=ENV'...'',
|
582
|
+
'defined?(MOD_RUBY)>=ENV'...'',
|
583
|
+
'defined? MOD_RUBY<=ENV'...'',
|
584
|
+
'defined? MOD_RUBY>=ENV'...'',
|
585
|
+
'defined?(MOD_RUBY)<ENV'...'',
|
586
|
+
'defined?(MOD_RUBY)>ENV'...'',
|
587
|
+
'defined? MOD_RUBY<ENV'...'',
|
588
|
+
'defined? MOD_RUBY>ENV'...'',
|
589
|
+
'defined?(MOD_RUBY)|ENV'...'',
|
590
|
+
'defined?(MOD_RUBY)&ENV'...'',
|
591
|
+
'defined? MOD_RUBY|ENV'...'',
|
592
|
+
'defined? MOD_RUBY&ENV'...'',
|
593
|
+
'defined?(MOD_RUBY)<<ENV'...'',
|
594
|
+
'defined?(MOD_RUBY)>>ENV'...'',
|
595
|
+
'defined? MOD_RUBY<<ENV'...'',
|
596
|
+
'defined? MOD_RUBY>>ENV'...'',
|
597
|
+
'defined?(MOD_RUBY)+ENV'...'',
|
598
|
+
'defined?(MOD_RUBY)-ENV'...'',
|
599
|
+
'defined? MOD_RUBY+ENV'...'',
|
600
|
+
'defined? MOD_RUBY-ENV'...'',
|
601
|
+
'defined?(MOD_RUBY)*ENV'...'',
|
602
|
+
'defined?(MOD_RUBY)/ENV'...'',
|
603
|
+
'defined? MOD_RUBY*ENV'...'',
|
604
|
+
'defined? MOD_RUBY/ENV'...'',
|
605
|
+
'defined?(MOD_RUBY)%ENV'...'',
|
606
|
+
'defined?(MOD_RUBY)^ENV'...'',
|
607
|
+
'defined? MOD_RUBY%ENV'...'',
|
608
|
+
'defined? MOD_RUBY^ENV'...'',
|
609
|
+
|
610
|
+
|
611
|
+
'defined?(MOD_RUBY)==ENV'...'',
|
612
|
+
'defined?(MOD_RUBY)===ENV'...'',
|
613
|
+
'defined? MOD_RUBY==ENV'...'',
|
614
|
+
'defined? MOD_RUBY===ENV'...'',
|
615
|
+
'defined?(MOD_RUBY)!=ENV'...'',
|
616
|
+
'defined?(MOD_RUBY)<=>ENV'...'',
|
617
|
+
'defined? MOD_RUBY!=ENV'...'',
|
618
|
+
'defined? MOD_RUBY<=>ENV'...'',
|
619
|
+
'defined?(MOD_RUBY)=~ENV'...'',
|
620
|
+
'defined?(MOD_RUBY)!~ENV'...'',
|
621
|
+
'defined? MOD_RUBY=~ENV'...'',
|
622
|
+
# 'defined? MOD_RUBY!~ENV'...'', #not legal
|
623
|
+
|
624
|
+
|
625
|
+
'defined? MOD_RUBY=ENV'...'',
|
626
|
+
'defined? MOD_RUBY+=ENV'...'',
|
627
|
+
'defined? MOD_RUBY-=ENV'...'',
|
628
|
+
'defined? MOD_RUBY/=ENV'...'',
|
629
|
+
'defined? MOD_RUBY*=ENV'...'',
|
630
|
+
'defined? MOD_RUBY%=ENV'...'',
|
631
|
+
'defined? MOD_RUBY**=ENV'...'',
|
632
|
+
'defined? MOD_RUBY<<=ENV'...'',
|
633
|
+
'defined? MOD_RUBY>>=ENV'...'',
|
634
|
+
'defined? MOD_RUBY&&=ENV'...'',
|
635
|
+
'defined? MOD_RUBY||=ENV'...'',
|
636
|
+
'defined? MOD_RUBY&=ENV'...'',
|
637
|
+
'defined? MOD_RUBY|=ENV'...'',
|
638
|
+
'defined? MOD_RUBY^=ENV'...'',
|
639
|
+
|
640
|
+
'self[-1] += succ_table'...'',
|
641
|
+
'begin; p rescue;o_chmod rescue nil;end'...'',
|
642
|
+
'defined?(MOD_RUBY) && ENV'...'',
|
643
|
+
'defined?(MOD_RUBY) || ENV'...'',
|
644
|
+
'defined?(MOD_RUBY) and ENV'...'',
|
645
|
+
'defined?(MOD_RUBY) or ENV'...'',
|
646
|
+
'defined? MOD_RUBY && ENV'...'',
|
647
|
+
'defined? MOD_RUBY || ENV'...'',
|
648
|
+
'defined? MOD_RUBY and ENV'...'',
|
649
|
+
'defined? MOD_RUBY or ENV'...'',
|
650
|
+
|
651
|
+
'alias $ERROR_INFO $!'...'',
|
652
|
+
'alias :$ERROR_INFO $!'...'',
|
653
|
+
'alias $ERROR_INFO :$!'...'',
|
654
|
+
'alias :$ERROR_INFO :$!'...'',
|
655
|
+
'defined?(BINARY) ? BINARY : 0'...'',
|
656
|
+
'ca (:f){}'...'',
|
657
|
+
'def run; system; else;end'...'',
|
658
|
+
'"n#@t#{l}#@m"'...'',
|
659
|
+
'f a rescue b'...'',
|
660
|
+
'f g a rescue b'...'',
|
661
|
+
'defined? a rescue b'...'',
|
662
|
+
'yield a rescue b'...'',
|
663
|
+
'return a rescue b'...'',
|
664
|
+
'break a rescue b'...'',
|
665
|
+
'next a rescue b'...'',
|
666
|
+
"%q[asdfadfas\\']"...'',
|
667
|
+
' begin; rescue ;;error; end'...'',
|
668
|
+
'a.b=~c'...'',
|
669
|
+
"x::I = 1"...'',
|
670
|
+
"x.I = 1"...'',
|
671
|
+
"X::I = 1"...'',
|
672
|
+
"X.I = 1"...'',
|
673
|
+
" alias :'=$=' :e "...'',
|
674
|
+
" alias :'==' :e "...'',
|
675
|
+
' alias :"==" :e '...'',
|
676
|
+
' alias :"==\\1" :e '...'',
|
677
|
+
'alias :\'foo\' bar'...'',
|
678
|
+
'alias :"foo#{dfgdfg}" bar'...'',
|
679
|
+
'alias :"foo" bar#{mdfgnxc}'...'',
|
680
|
+
'alias :"foo#{dfgdfg}" bar#{fgsdg}'...'',
|
681
|
+
'+-+-+++++---+++-++-0'...'',
|
682
|
+
"%q[\\']"...'',
|
683
|
+
'%((((())#{})))'...'',
|
684
|
+
'%(((#{}(()))))'...'',
|
685
|
+
'%(((((#{})))))'...'',
|
686
|
+
'ev.length/=2'...'',
|
687
|
+
'ev.length /=2'...'',
|
688
|
+
'ev.length/= 2'...'',
|
689
|
+
'ev.length /= 2'...'',
|
690
|
+
'a.~@'...'',
|
691
|
+
'a.~'...'',
|
692
|
+
'a::~@'...'',
|
693
|
+
'a::~'...'',
|
694
|
+
'def ~@; end'...'',
|
695
|
+
'def a.~@; end'...'',
|
696
|
+
'def a::~@; end'...'',
|
697
|
+
':~@'...'',
|
698
|
+
"%\n\\c\nyy\n"...'',
|
699
|
+
"(%\r\neee\#{kk}\\\r\n\r\n)"...'',
|
700
|
+
"(%\r\neee\#{kk}\\\n\r\n)"...'',
|
701
|
+
"(%\r\neee\#{kk}\r\n)"...'',
|
702
|
+
"(%\r\neee\#{kk}\\\r\n\n)"...'',
|
703
|
+
"(%\r\neee\#{kk}\\\n\n)"...'',
|
704
|
+
"(%\r\neee\#{kk}\n)"...'',
|
705
|
+
"(%\neee\#{kk}\\\r\n\r\n)"...'',
|
706
|
+
"(%\neee\#{kk}\\\n\r\n)"...'',
|
707
|
+
"(%\neee\#{kk}\r\n)"...'',
|
708
|
+
"(%\neee\#{kk}\\\r\n\n)"...'',
|
709
|
+
"(%\neee\#{kk}\\\n\n)"...'',
|
710
|
+
"(%\neee\#{kk}\n)"...'',
|
711
|
+
'%@#@_@'...'',
|
712
|
+
'%$#$_$'...'',
|
713
|
+
'$;'...'',
|
714
|
+
'$;=1'...'',
|
715
|
+
'"\c""'...'',
|
716
|
+
'"\C-""'...'',
|
717
|
+
'"\M-""'...'',
|
718
|
+
'"\C-\M-""'...'',
|
719
|
+
'"\M-\C-""'...'',
|
720
|
+
'begin a; rescue b=>e; @c=e.f; end'...'',
|
721
|
+
'a=b do end'...'',
|
722
|
+
'c a=b do end'...'',
|
723
|
+
'filename =~ //'...'',
|
724
|
+
'filename !~ //'...'',
|
725
|
+
'Dir.chdir DIR do end'...'',
|
726
|
+
'DIR do end'...'',
|
727
|
+
'Dir.chdir DIR { }'...'',
|
728
|
+
'p ()'...'',
|
729
|
+
'p (1,2,3)'...'',
|
730
|
+
'p(1..10).method(:each)'...'',
|
731
|
+
'a.p(1..10).method(:each)'...'',
|
732
|
+
'a::p(1..10).method(:each)'...'',
|
733
|
+
'p (1..10).method(:each)'...'',
|
734
|
+
'a.p (1..10).method(:each)'...'',
|
735
|
+
'a::p (1..10).method(:each)'...'',
|
736
|
+
'p(1..10,1).method(:each)'...'',
|
737
|
+
'a.p(1..10,1).method(:each)'...'',
|
738
|
+
'a::p(1..10,1).method(:each)'...'',
|
739
|
+
'p (1..10,1).method(:each)'...'',
|
740
|
+
'a.p (1..10,1).method(:each)'...'',
|
741
|
+
'a::p (1..10,1).method(:each)'...'',
|
742
|
+
'p().method(:each)'...'',
|
743
|
+
'a.p().method(:each)'...'',
|
744
|
+
'a::p().method(:each)'...'',
|
745
|
+
'p ().method(:each)'...'',
|
746
|
+
'a.p ().method(:each)'...'',
|
747
|
+
'a::p ().method(:each)'...'',
|
748
|
+
'p 1;2;p 1'...'',
|
749
|
+
'def self.zz(*,&x) y end'...'',
|
750
|
+
'def self.zz(&x) y end'...'',
|
751
|
+
'def self.zz(*,&x); end'...'',
|
752
|
+
'def self.zz(&x); end'...'',
|
753
|
+
'"is #{x}#{"Slim #{2?"W":"S"} "}."'...'',
|
754
|
+
'"is #{"Slim #{2?"W":"S"} "}."'...'',
|
755
|
+
'"is #{"Slim #{2?"W":"S"} " "rr"}."'...'',
|
756
|
+
'%W"is #{x}#{"Slim #{2?"W":"S"} "}."'...'',
|
757
|
+
'%W"is #{"Slim #{2?"W":"S"} "}."'...'',
|
758
|
+
'%W"is #{"Slim #{2?"W":"S"} " "rr"}."'...'',
|
759
|
+
|
760
|
+
'"is #{"Slim #{2?"W":"S"}"}."'...'',
|
761
|
+
'%W"is #{"Slim #{2?"W":"S"}"}."'...'',
|
762
|
+
'"is #{"Slim #{2?"W":"S"}"}#{xx}."'...'',
|
763
|
+
'%W"is #{"Slim #{2?"W":"S"}"}#{xx}."'...'',
|
764
|
+
'case $1; when 0,*[2,66]: p 1; when 3; 4 else p 2 end'...'',
|
765
|
+
'case $1; when 0,*a: p 1; when 3; 4 else p 2 end'...'',
|
766
|
+
' p(String <<- Class)'...'',
|
767
|
+
' p(String << - Class)'...'',
|
768
|
+
' p(String >>- Class)'...'',
|
769
|
+
' p(String >> - Class)'...'',
|
770
|
+
'"2266"**"#{22}" "#{44}" "55" "#{66}"'...'',
|
771
|
+
'["2266", "#{22}" "#{44}" "55" "#{66}"]'...'',
|
772
|
+
'assert_equal("22aacd445566", "#{22}aa" "cd#{44}" "55" "#{66}")'...'',
|
773
|
+
'"fff#{r}" "#{66}"'...'',
|
774
|
+
'"fff#{r}" "#{66}3"'...'',
|
775
|
+
'%q[\\[\\]\\\\]'...'"[]\\\\"',
|
776
|
+
'%w[\\[\\]\\\\]'...'(array "[]\\\\")',
|
777
|
+
'%r[\\[\\]\\\\]'...'/\\[\\]\\\\/',
|
778
|
+
'%s[\\[\\]\\\\]'...'',
|
779
|
+
'%q"\\"\\\\"'...'"\\"\\\\"',
|
780
|
+
'%w"\\"\\\\"'...'(array "\\"\\\\")',
|
781
|
+
'%r"\\"\\\\"'...'/"\\\\/',
|
782
|
+
'%s"\\"\\\\"'...'',
|
783
|
+
"%q'\\'\\\\'"...'"\'\\\\"',
|
784
|
+
"%w'\\'\\\\'"...'(array "\'\\\\")',
|
785
|
+
"%r'\\'\\\\'"...'/\'\\\\/',
|
786
|
+
"%s'\\'\\\\'"...'',
|
787
|
+
"'\\'\\\\'"...'"\'\\\\"',
|
788
|
+
'0x1134234aefeb'...'18915628085227',
|
789
|
+
'0d57896675'...'57896675',
|
790
|
+
'0o234526546'...'41069926',
|
791
|
+
'0234526546'...'41069926',
|
792
|
+
'0b1010001001011111'...'41567',
|
793
|
+
'"a"; b'...'"a" (b)',
|
794
|
+
"()"...'()',
|
795
|
+
"1"...'1',
|
796
|
+
"1+1"...'(+ 1 1)',
|
797
|
+
"2+3*4"...'(+ 2 (* 3 4))',
|
798
|
+
"a"...'(a)',
|
799
|
+
"a.b"...'((a) b)',
|
800
|
+
"[]"...'[]',
|
801
|
+
"[3]"...'[3]',
|
802
|
+
"[3,4]"...'[3 4]',
|
803
|
+
"list()"...'()',
|
804
|
+
"list(3)"...'(3)',
|
805
|
+
"list(3,4)"...'(3 4)',
|
806
|
+
"b[]"...'((b) [])',
|
807
|
+
"b[3]"...'((b) [] 3)',
|
808
|
+
"a.b[]"...'(((a) b) [])',
|
809
|
+
"a.b[3]"...'(((a) b) [] 3)',
|
810
|
+
"a::b[3]"...'(((a) b) [] 3)',
|
811
|
+
"a if b"...'(if (b) (a))',
|
812
|
+
"a unless b"...'(unless (b) (a))',
|
813
|
+
"a while b"...'(while (b) (a))',
|
814
|
+
"a until b"...'(until (b) (a))',
|
815
|
+
"a and b"...'(and (a) (b))',
|
816
|
+
"a or b"...'(or (a) (b))',
|
817
|
+
"2**3[4]"...'(** 2 (3 [] 4))',
|
818
|
+
"+a[2]"...'(+@ ((a) [] 2))',
|
819
|
+
"$a=b"...'(set $a (b))',
|
820
|
+
'@a=b'...'(set @a (b))',
|
821
|
+
'@@a=b'...'(set @@a (b))',
|
822
|
+
'A=b'...'(set A (b))',
|
823
|
+
'a=b=1'...'(set a (set b 1))',
|
824
|
+
'$a+=b'...'(set $a (+ $a (b)))',
|
825
|
+
'@a+=b'...'(set @a (+ @a (b)))',
|
826
|
+
'@@a+=b'...'(set @@a (+ @@a (b)))',
|
827
|
+
'A+=b'...'(set A (+ A (b)))',
|
828
|
+
'a=b+=1'...'(set a (set b (+ b 1)))',
|
829
|
+
'a+=b=1'...'(set a (+ a (set b 1)))',
|
830
|
+
'a+=b+=1'...'(set a (+ a (set b (+ b 1))))',
|
831
|
+
'a(b)'...'(a (b))',
|
832
|
+
'b=1;a(b)'...'(set b 1) (a b)',
|
833
|
+
'a(*b)'..."(eval (cons 'a ((b) list)))",
|
834
|
+
'a(b,*c)'...'',
|
835
|
+
'a(&b)'...'(a (b))',
|
836
|
+
'a(b,&c)'...'(a (b) (c))',
|
837
|
+
'a(b,c,&c)'...'(a (b) (c) (c))',
|
838
|
+
'a(b,*c,&c)'...'',
|
839
|
+
'a(){b}'...'(a (do () (b)))',
|
840
|
+
'a(b){c}'...'(a (b) (do () (c)))',
|
841
|
+
'a(b,c){c}'...'(a (b) (c) (do () (b)))',
|
842
|
+
'a(b,*c){c}'...'',
|
843
|
+
'a()'...'(a)',
|
844
|
+
'a{b}'...'(a (do () (b)))',
|
845
|
+
'a b{c}'...'(a (b (do () (c))))',
|
846
|
+
'a b,c {c}'...'(a (b (do () (c))))',
|
847
|
+
'a b,*c {c}'...'',
|
848
|
+
'a do b end'...'(a (do () (b)))',
|
849
|
+
'a b do c end'...'(a (b) (do () (c)))',
|
850
|
+
'a b,c do c end'...'(a (b) (c) (do () (b)))',
|
851
|
+
'a b,*c do c end'...'',
|
852
|
+
'a%=b'...'(set a (% a (b)))',
|
853
|
+
'a.b%c'...'(% ((a) b) (c))',
|
854
|
+
'a.b%=c'...'(set _t1* (a)) (_t1* b= (% (_t1* b) (c)))',
|
855
|
+
'a.b.c%=d'...'(set _t1* ((a) b)) (_t1* c= (% (_t1* c) (d)))',
|
856
|
+
'a::b%=c'...'(set _t1* (a)) (_t1* b= (% (_t1* b) (c)))',
|
857
|
+
'a.b[]=d'...'(((a) b) []= (d))',
|
858
|
+
'a.b[c]=d'...'(((a) b) []= (c) (d))', #???
|
859
|
+
'a.b[c,c2]=d'...'(((a) b) []= (c) (c2) (d))',
|
860
|
+
# 'a.b[]%=d'...'', #causes segfault with ruby 1.8.5 and ParseTree... fixed in 1.8.6
|
861
|
+
'a.b[c]%=d'...'',
|
862
|
+
'a.b[c,c2]%=d'...'',
|
863
|
+
'a(b).c%=d'...'',
|
864
|
+
'a b c'...'(a (b (c)))',
|
865
|
+
'if a; b end'...'(if (a) (b))',
|
866
|
+
'if a: b end'...'(if (a) (b))',
|
867
|
+
'if a then b end'...'(if (a) (b))',
|
868
|
+
'if a; b else c end'...'(if (a) (b) (else (c)))',
|
869
|
+
'if a; b elsif c; d end'...'',
|
870
|
+
'if a; b elsif c; d else e end'...'',
|
871
|
+
'if a; else c end'...'',
|
872
|
+
'if a; elsif c; d end'...'',
|
873
|
+
'if a; elsif c; d else e end'...'',
|
874
|
+
'if a+0; b end'...'',
|
875
|
+
'if a+0: b end'...'',
|
876
|
+
'if a+0 then b end'...'',
|
877
|
+
'if a+0; b else c end'...'',
|
878
|
+
'if a+0; b elsif c; d end'...'',
|
879
|
+
'if a+0; b elsif c; d else e end'...'',
|
880
|
+
'if a+0; else c end'...'',
|
881
|
+
'if a+0; elsif c; d end'...'',
|
882
|
+
'if a; elsif c; d else e end'...'',
|
883
|
+
|
884
|
+
'unless a; b end'...'',
|
885
|
+
'unless a; b else c end'...'',
|
886
|
+
|
887
|
+
'while a; b end'...'',
|
888
|
+
'until a; b end'...'',
|
889
|
+
|
890
|
+
'case; when b; c end'...'',
|
891
|
+
'case a; when b; c end'...'',
|
892
|
+
'case a; when b: c end'...'',
|
893
|
+
'case a; when b then c end'...'',
|
894
|
+
'case a; when b,c,d then d end'...'',
|
895
|
+
'case a; when b,c,d: d end'...'',
|
896
|
+
'case a; when B,C,D: d end'...'',
|
897
|
+
|
898
|
+
'case a; when b; when c; end'...'',
|
899
|
+
'case a; when b; c when d; e end'...'',
|
900
|
+
'case a; when b; c; when d; e end'...'',
|
901
|
+
'case a; when b; c; when d; e else f end'...'',
|
902
|
+
|
903
|
+
'for a in b; c end'...'',
|
904
|
+
'for a in b do c end'...'',
|
905
|
+
'for a in b: c end'...'',
|
906
|
+
'for a,b in c: d end'...'',
|
907
|
+
'for a,b in c; d end'...'',
|
908
|
+
'for a,b in c do d end'...'',
|
909
|
+
|
910
|
+
'(a+b)'...'(+ a b)',
|
911
|
+
';a;2;'...'(a) 2',
|
912
|
+
';1;2;'...'1 2',
|
913
|
+
'(;1;2;)'...'1 2',
|
914
|
+
'!a'...'',
|
915
|
+
'::A'...'',
|
916
|
+
':a'...'',
|
917
|
+
'defined? a'...'',
|
918
|
+
|
919
|
+
'a**b**c'...'((a) ** ((b) ** (c)))',
|
920
|
+
|
921
|
+
'{a=>b}'...'',
|
922
|
+
'{A=>b}'...'',
|
923
|
+
'{a a=>b}'...'', #syntax error
|
924
|
+
'{a+a=>b}'...'',
|
925
|
+
'{a()=>b}'...'',
|
926
|
+
'{a{}=>b}'...'',
|
927
|
+
'{+a=>b}'...'',
|
928
|
+
'{-a=>b}'...'',
|
929
|
+
'{~a=>b}'...'',
|
930
|
+
'{!a=>b}'...'',
|
931
|
+
'{::A=>b}'...'',
|
932
|
+
'{:a=>b}'...'',
|
933
|
+
'{not a=>b}'...'', #syntax error
|
934
|
+
'{defined? a=>b}'...'',
|
935
|
+
'{1, 2, 2, 4, 3, 6}'...'',
|
936
|
+
|
937
|
+
|
938
|
+
'begin rescue B; rescue ; end'...'',
|
939
|
+
'begin rescue ; end'...'',
|
940
|
+
'begin; a; rescue; end'...'',
|
941
|
+
'begin; a; rescue B; end'...'',
|
942
|
+
'begin; a; rescue B; d; end'...'',
|
943
|
+
'begin; a; rescue B; d; e; end'...'',
|
944
|
+
'begin; a; rescue B=>c; end'...'',
|
945
|
+
'begin; a; rescue =>c; end'...'',
|
946
|
+
'begin; a; rescue B=>c; d; end'...'',
|
947
|
+
'begin; a; rescue B=>c; d; e; end'...'',
|
948
|
+
'begin; a; rescue B; d; else f; end'...'',
|
949
|
+
'begin; a; rescue B; d; else f; ensure; e; end'...'',
|
950
|
+
'begin; a; rescue B=>c; d; else f; ensure; e; end'...'',
|
951
|
+
|
952
|
+
'begin; a; else f; ensure; e; end'...'',
|
953
|
+
'begin; a; b; else f; g ensure; e; end'...'',
|
954
|
+
'begin; a; else f; g ensure; e; end'...'',
|
955
|
+
'begin; a; b; else f ensure; e; end'...'',
|
956
|
+
|
957
|
+
'begin end'...'',
|
958
|
+
'begin; end'...'',
|
959
|
+
'begin; else; ensure; end'...'',
|
960
|
+
'begin else ensure end'...'',
|
961
|
+
|
962
|
+
'begin a end while b'...'',
|
963
|
+
'begin a end until b'...'',
|
964
|
+
'begin a end while !b'...'',
|
965
|
+
'begin a end until !b'...'',
|
966
|
+
'begin a end while not b'...'',
|
967
|
+
'begin a end until not b'...'',
|
968
|
+
'begin a end while b==c'...'',
|
969
|
+
'begin a end until b==c'...'',
|
970
|
+
'begin a end while b=~c'...'',
|
971
|
+
'begin a end until b=~c'...'',
|
972
|
+
'begin a end while b!=c'...'',
|
973
|
+
'begin a end until b!=c'...'',
|
974
|
+
'begin a end while b!~c'...'',
|
975
|
+
'begin a end until b!~c'...'',
|
976
|
+
|
977
|
+
'begin end while b'...'',
|
978
|
+
'begin a;b end while c'...'',
|
979
|
+
|
980
|
+
'begin rescue a; b end while c'...'',
|
981
|
+
'begin a; rescue b; c end while d'...'',
|
982
|
+
'begin a;b; rescue c; d end while e'...'',
|
983
|
+
|
984
|
+
'begin else a end while b'...'',
|
985
|
+
'begin a; else b end while c'...'',
|
986
|
+
'begin a;b; else c end while d'...'',
|
987
|
+
|
988
|
+
'begin ensure a end while b'...'',
|
989
|
+
'begin a; ensure b end while c'...'',
|
990
|
+
'begin a;b; ensure c end while d'...'',
|
991
|
+
|
992
|
+
'a+b=c'...'(+ (a) (set b (c)))',
|
993
|
+
'b.c=1'...'((b) c= 1)',
|
994
|
+
'b.c=d'...'((b) c= (d))',
|
995
|
+
'b::c=d'...'((b) c= (d))',
|
996
|
+
'B::c=d'...'(B c= (d))',
|
997
|
+
'a+b.c=d'...'(+ a ((b) c= (d)))',
|
998
|
+
'a+b[c]=d'...'',
|
999
|
+
'a+B::c=d'...'(+ (a) (B c= (d)))',
|
1000
|
+
|
1001
|
+
'def b; c end'...'',
|
1002
|
+
'b do c end'...'',
|
1003
|
+
|
1004
|
+
'true'...'true',
|
1005
|
+
'false'...'false',
|
1006
|
+
'nil'...'nil',
|
1007
|
+
':foo'...'',
|
1008
|
+
'[]'...'',
|
1009
|
+
'[a]'...'',
|
1010
|
+
'[a,b]'...'',
|
1011
|
+
'{}'...'',
|
1012
|
+
'{a=>b}'...'',
|
1013
|
+
'{a=>b,c=>d}'...'',
|
1014
|
+
'0'...'0',
|
1015
|
+
'0.0'...'0.0',
|
1016
|
+
'$1'...'$1',
|
1017
|
+
'$0'...'$0',
|
1018
|
+
'$&'...'$&',
|
1019
|
+
'$$'...'$$',
|
1020
|
+
'$:'...'$:',
|
1021
|
+
'$*'...'$*',
|
1022
|
+
'$a'...'$a',
|
1023
|
+
'@a'...'@a',
|
1024
|
+
'@@a'...'@@a',
|
1025
|
+
'a=1;a'...'(set a 1) a',
|
1026
|
+
'proc{yeild}'...'',
|
1027
|
+
"'a'"..."",
|
1028
|
+
'/a/'...'',
|
1029
|
+
'`a`'...'',
|
1030
|
+
'%w[a]'...'',
|
1031
|
+
'%w[a b]'...'',
|
1032
|
+
'%w[a b c]'...'',
|
1033
|
+
'%W[a]'...'',
|
1034
|
+
'%W[a b]'...'',
|
1035
|
+
'%W[a b c]'...'',
|
1036
|
+
'%W[a#{}]'...'',
|
1037
|
+
'%W[a b#{}]'...'',
|
1038
|
+
'%W[a b c#{}]'...'',
|
1039
|
+
|
1040
|
+
'%[a]'...'"a"',
|
1041
|
+
'%[a b]'...'"a b"',
|
1042
|
+
'%[a b c]'...'"a b c"',
|
1043
|
+
'%q[a]'..."'a'",
|
1044
|
+
'%q[a b]'..."'a b'",
|
1045
|
+
'%q[a b c]'..."'a b c'",
|
1046
|
+
'self'...'self',
|
1047
|
+
'__FILE__'...'',
|
1048
|
+
'__LINE__'...'',
|
1049
|
+
|
1050
|
+
'while false; break end'...'',
|
1051
|
+
'while false; next end'...'',
|
1052
|
+
'while false; redo end'...'',
|
1053
|
+
'while false; retry end'...'',
|
1054
|
+
|
1055
|
+
'while false; break end'...'',
|
1056
|
+
'until false; break end'...'',
|
1057
|
+
'for a in b; break end'...'',
|
1058
|
+
'loop do break end'...'',
|
1059
|
+
|
1060
|
+
'loop { break 1,2,*[3,4] }'...'',
|
1061
|
+
'loop { break 1,2 }'...'',
|
1062
|
+
'loop { break 1}'...'',
|
1063
|
+
'loop { break(1)}'...'',
|
1064
|
+
'loop { break }'...'',
|
1065
|
+
'loop { break() }'...'',
|
1066
|
+
|
1067
|
+
'while false; break *[3,4] end'...'',
|
1068
|
+
'while false; break 1,2,*[3,4] end'...'',
|
1069
|
+
'while false; break 1,2 end'...'',
|
1070
|
+
'while false; break(1) end'...'',
|
1071
|
+
|
1072
|
+
'a.b c'...'((a) b (c))',
|
1073
|
+
'RuntimeError.new()'...'(RuntimeError new)',
|
1074
|
+
'RuntimeError.new("foo")'...'(RuntimeError new "foo")',
|
1075
|
+
'if (true) :foo end'...'',
|
1076
|
+
'raise'...'',
|
1077
|
+
'raise "foo"'...'',
|
1078
|
+
'raise RuntimeError'...'',
|
1079
|
+
'raise RuntimeError,"foo"'...'',
|
1080
|
+
'raise RuntimeError.new("foo")'...'',
|
1081
|
+
'return'...'',
|
1082
|
+
'return a'...'',
|
1083
|
+
'return a,b'...'',
|
1084
|
+
'return a,b,*c'...'',
|
1085
|
+
|
1086
|
+
'BEGIN {a}'...'',
|
1087
|
+
'END {a}'...'',
|
1088
|
+
'BEGIN {}'...'',
|
1089
|
+
'END {}'...'',
|
1090
|
+
'BEGIN {a};b'...'',
|
1091
|
+
'END {a};b'...'',
|
1092
|
+
'BEGIN {};a'...'',
|
1093
|
+
'END {};a'...'',
|
1094
|
+
|
1095
|
+
'"foo" "bar"'...'"foobar"',
|
1096
|
+
|
1097
|
+
'""'...'""',
|
1098
|
+
|
1099
|
+
'loop{break{}}'...'',
|
1100
|
+
'loop{break{a=>b}}'...'',
|
1101
|
+
'def foo; return{} end'...'',
|
1102
|
+
'def foo; return{a=>b} end'...'',
|
1103
|
+
|
1104
|
+
'foo do return{} end'...'',
|
1105
|
+
'foo do return{a=>b} end'...'',
|
1106
|
+
|
1107
|
+
'a.return'...'((a) return)',
|
1108
|
+
'a.return {}'...'',
|
1109
|
+
'a.break {}'...'',
|
1110
|
+
'a.return {b}'...'',
|
1111
|
+
'a.break {b}'...'',
|
1112
|
+
'()'...'()',
|
1113
|
+
'nil;a'...'() (a)',
|
1114
|
+
'true;a'...'(true) (a)',
|
1115
|
+
'false;a'...'(false) (a)',
|
1116
|
+
'self;a'...'(self) (a)',
|
1117
|
+
'();a'...'() (a)',
|
1118
|
+
'__FILE__;a'...'',
|
1119
|
+
'__LINE__;a'...'',
|
1120
|
+
'1;a'...'',
|
1121
|
+
'"1";a'...'',
|
1122
|
+
'"1#{2}";a'...'',
|
1123
|
+
|
1124
|
+
'~a**2'...'',
|
1125
|
+
'!a**2'...'',
|
1126
|
+
'+a**2'...'',
|
1127
|
+
'-a**2'...'',
|
1128
|
+
|
1129
|
+
'--a'...'',
|
1130
|
+
|
1131
|
+
'%W[a#{b}c]'...'',
|
1132
|
+
'%W[a #{b}c]'...'',
|
1133
|
+
'%W[a#{b} c]'...'',
|
1134
|
+
'%W[a #{b} c]'...'',
|
1135
|
+
|
1136
|
+
'"a b c #{d}"'...'',
|
1137
|
+
'"a b c #{d}\n"'...'',
|
1138
|
+
'"a b c #{d} "'...'',
|
1139
|
+
'"#{a} b c"'...'',
|
1140
|
+
|
1141
|
+
'a.BEGIN {}'...'',
|
1142
|
+
'a.END {}'...'',
|
1143
|
+
|
1144
|
+
'p??y'...'', #bug in rubylexer 0.6.2, no workaround
|
1145
|
+
'1.+?y'...'', #bug in rubylexer 0.6.2, no workaround
|
1146
|
+
'loop{break{}.size}'...'',
|
1147
|
+
|
1148
|
+
'/a b #{c}/'...'',
|
1149
|
+
|
1150
|
+
'`a b #{c}`'...'',
|
1151
|
+
'a{}'...'',
|
1152
|
+
'a rescue b and c'...'',
|
1153
|
+
'a rescue b or c'...'',
|
1154
|
+
'a rescue b if c'...'',
|
1155
|
+
|
1156
|
+
'def a.b; end'...'',
|
1157
|
+
'a=""; def a.b; end'...'',
|
1158
|
+
'def A.b; end'...'',
|
1159
|
+
'a=""; def (a).b; end'...'',
|
1160
|
+
'a=""; def (a()).b; end'...'',
|
1161
|
+
'a=""; def ("a"+"").b; end'...'',
|
1162
|
+
'def (a.b.c).b; end'...'',
|
1163
|
+
'def (a).b; end'...'',
|
1164
|
+
|
1165
|
+
'a.b do end'...'',
|
1166
|
+
'a=""; a.b do end'...'',
|
1167
|
+
'A.b'...'',
|
1168
|
+
'A.b do end'...'',
|
1169
|
+
'(a).b'...'',
|
1170
|
+
'a=""; (a).b'...'',
|
1171
|
+
'(a).b do end'...'',
|
1172
|
+
'a=""; (a).b do end'...'',
|
1173
|
+
'a=""; (a()).b do end'...'',
|
1174
|
+
'a=""; ("a"+"").b do end'...'',
|
1175
|
+
'(a.b.c).b do end'...'',
|
1176
|
+
'(a).b do end'...'',
|
1177
|
+
|
1178
|
+
'def a b=c,d=e,*f; g end'...'',
|
1179
|
+
'def a b=c,d=e,*f; end'...'',
|
1180
|
+
'def a b=c,d=e,&f; g end'...'',
|
1181
|
+
'def a b=c,d=e,&f; end'...'',
|
1182
|
+
'def a b=c,d=e,*f,&g; h end'...'',
|
1183
|
+
'def a b=c,d=e,*f,&g; end'...'',
|
1184
|
+
|
1185
|
+
'a b=c,d=e,*f do g end'...'',
|
1186
|
+
'a b=c,d=e,*f do end'...'',
|
1187
|
+
'a b=c,d=e,&f'...'',
|
1188
|
+
'a b=c,d=e,&f'...'',
|
1189
|
+
'a b=c,d=e,*f,&g'...'',
|
1190
|
+
'a b=c,d=e,*f,&g'...'',
|
1191
|
+
|
1192
|
+
'def a b=c,d=e; f end'...'',
|
1193
|
+
'def a b=c,d=e; end'...'',
|
1194
|
+
'def a b=c; end'...'',
|
1195
|
+
|
1196
|
+
'a b=c,d=e do f end'...'',
|
1197
|
+
'a b=c,d=e do end'...'',
|
1198
|
+
'a b=c do end'...'',
|
1199
|
+
|
1200
|
+
'def a; rescue; b; end'...'',
|
1201
|
+
'def a; else b end'...'',
|
1202
|
+
'def a; ensure b end'...'',
|
1203
|
+
|
1204
|
+
'def a; rescue; b; else c end'...'',
|
1205
|
+
'def a; else b; ensure c end'...'',
|
1206
|
+
'def a; rescue; b; ensure c end'...'',
|
1207
|
+
|
1208
|
+
|
1209
|
+
'def a;d;e; rescue; b; end'...'',
|
1210
|
+
'def a;d;e; else b end'...'',
|
1211
|
+
'def a;d;e; ensure b end'...'',
|
1212
|
+
|
1213
|
+
'def a; d;e;rescue; b; else c end'...'',
|
1214
|
+
'def a; d;e;else b; ensure c end'...'',
|
1215
|
+
'def a; d;e;rescue; b; ensure c end'...'',
|
1216
|
+
|
1217
|
+
'def a; rescue; b; else c; ensure d end'...'',
|
1218
|
+
'def a; e;f; rescue; b; else c; ensure d end'...'',
|
1219
|
+
|
1220
|
+
'def a.b; c end'...'',
|
1221
|
+
'def a.b=; c end'...'',
|
1222
|
+
'def b i=1; c end'...'',
|
1223
|
+
'def a.b i=1; c end'...'',
|
1224
|
+
'def a.b= i=1; c end'...'',
|
1225
|
+
'def a.b=i=1; c end'...'',
|
1226
|
+
'def a.b=(i=1); c end'...'',
|
1227
|
+
|
1228
|
+
'a rescue b'...'', #bug in rubylexer 0.6.2, no workaround
|
1229
|
+
'a rescue b.c'...'', #bug in rubylexer 0.6.2, no workaround
|
1230
|
+
'a rescue b;c'...'', #bug in rubylexer 0.6.2, no workaround
|
1231
|
+
'a rescue (b;c)'...'', #bug in rubylexer 0.6.2, no workaround
|
1232
|
+
|
1233
|
+
'%W[a]'...'',
|
1234
|
+
'%W[ a]'...'',
|
1235
|
+
'%W[a ]'...'',
|
1236
|
+
'%W[ a ]'...'',
|
1237
|
+
|
1238
|
+
'%W[a#{}]'...'',
|
1239
|
+
'%W[ a#{}]'...'',
|
1240
|
+
'%W[a #{}]'...'',
|
1241
|
+
'%W[ a #{}]'...'',
|
1242
|
+
|
1243
|
+
"%W[\va#{}]"...'',
|
1244
|
+
"%W[\v#{}]"...'',
|
1245
|
+
|
1246
|
+
'"#{}"'...'', #bug in rubylexer 0.6.2, no workaround
|
1247
|
+
"'#{}'"...'', #bug in rubylexer 0.6.2, no workaround
|
1248
|
+
'/#{}/'...'', #bug in rubylexer 0.6.2, no workaround
|
1249
|
+
'`#{}`'...'', #bug in rubylexer 0.6.2, no workaround
|
1250
|
+
'%w"#{}"'...'', #bug in rubylexer 0.6.2, no workaround
|
1251
|
+
'%W"#{}"'...'', #bug in rubylexer 0.6.2, no workaround
|
1252
|
+
'%W" #{}"'...'', #bug in rubylexer 0.6.2, no workaround
|
1253
|
+
'%W"#{} "'...'', #bug in rubylexer 0.6.2, no workaround
|
1254
|
+
'%W" #{} "'...'', #bug in rubylexer 0.6.2, no workaround
|
1255
|
+
'%q"#{}"'...'', #bug in rubylexer 0.6.2, no workaround
|
1256
|
+
'%Q"#{}"'...'', #bug in rubylexer 0.6.2, no workaround
|
1257
|
+
'%r"#{}"'...'', #bug in rubylexer 0.6.2, no workaround
|
1258
|
+
'%x"#{}"'...'', #bug in rubylexer 0.6.2, no workaround
|
1259
|
+
'"#{a}"'...'', #bug in rubylexer 0.6.2, no workaround
|
1260
|
+
|
1261
|
+
'%w"a"'...'',
|
1262
|
+
'%W"a"'...'',
|
1263
|
+
'%W"a#{}"'...'',
|
1264
|
+
'%W"a #{}"'...'',
|
1265
|
+
'%q"a"'...'', #
|
1266
|
+
'%Q"a"'...'',
|
1267
|
+
'%r"a"'...'',
|
1268
|
+
'%x"a"'...'',
|
1269
|
+
|
1270
|
+
'%W[#{a}]'...'',
|
1271
|
+
'%W[#{a} b]'...'',
|
1272
|
+
'%W[a #{b}]'...'',
|
1273
|
+
'%W[a b #{c}]'...'',
|
1274
|
+
|
1275
|
+
|
1276
|
+
':"a#{b}"'...'',
|
1277
|
+
|
1278
|
+
'"a"; b'...'',
|
1279
|
+
"'a'; b"...'',
|
1280
|
+
'/a/; b'...'',
|
1281
|
+
'`a`; b'...'',
|
1282
|
+
'%w"a"; b'...'',
|
1283
|
+
'%W"a"; b'...'',
|
1284
|
+
'"a#{}"; b'...'',
|
1285
|
+
|
1286
|
+
'module A; end'...'',
|
1287
|
+
'class A; end'...'',
|
1288
|
+
'class A<B; end'...'',
|
1289
|
+
'class<<a; end'...'',
|
1290
|
+
|
1291
|
+
'module A; b end'...'',
|
1292
|
+
'class A; b end'...'',
|
1293
|
+
'class A<B; c end'...'',
|
1294
|
+
'class<<a; b end'...'',
|
1295
|
+
|
1296
|
+
'module A; b;c end'...'',
|
1297
|
+
'class A; b;c end'...'',
|
1298
|
+
'class A<B; c;d end'...'',
|
1299
|
+
'class<<a; b;c end'...'',
|
1300
|
+
|
1301
|
+
|
1302
|
+
'/a/i'...'',
|
1303
|
+
'/a/m'...'',
|
1304
|
+
'/a/o'...'',
|
1305
|
+
'/a/x'...'',
|
1306
|
+
'/a/imox'...'',
|
1307
|
+
|
1308
|
+
'/a#{b}/i'...'',
|
1309
|
+
'/a#{b}/m'...'',
|
1310
|
+
'/a#{b}/o'...'',
|
1311
|
+
'/a#{b}/x'...'',
|
1312
|
+
'/a#{b}/imox'...'',
|
1313
|
+
|
1314
|
+
'/a#{b}c/i'...'',
|
1315
|
+
'/a#{b}c/m'...'',
|
1316
|
+
'/a#{b}c/o'...'',
|
1317
|
+
'/a#{b}c/x'...'',
|
1318
|
+
'/a#{b}c/imox'...'',
|
1319
|
+
|
1320
|
+
|
1321
|
+
#ellipsis as flow control.. annoying
|
1322
|
+
'a..b'...'',
|
1323
|
+
'a...b'...'',
|
1324
|
+
'a..b and c'...'',
|
1325
|
+
'a..b or c'...'',
|
1326
|
+
'c and a..b and c'...'',
|
1327
|
+
'c or a..b or c'...'',
|
1328
|
+
|
1329
|
+
'not a...b'...'',
|
1330
|
+
'not a..b'...'',
|
1331
|
+
'c if a..b'...'',
|
1332
|
+
'c unless a..b'...'',
|
1333
|
+
'c if a..b and c'...'',
|
1334
|
+
'c unless a..b or c'...'',
|
1335
|
+
'c if c and a..b and c'...'',
|
1336
|
+
'c unless c or a..b or c'...'',
|
1337
|
+
|
1338
|
+
'not (a..b)'...'',
|
1339
|
+
'not (a..b) and c'...'',
|
1340
|
+
'not z and (a..b) and c'...'',
|
1341
|
+
'not z and (a..b)'...'',
|
1342
|
+
'not z and a..b and c'...'',
|
1343
|
+
'not z and a..b'...'',
|
1344
|
+
'not (z and (a..b) and c)'...'',
|
1345
|
+
'not (z and (a..b))'...'',
|
1346
|
+
'not (z and a..b and c)'...'',
|
1347
|
+
'not (z and a..b)'...'',
|
1348
|
+
'!(a..b)'...'',
|
1349
|
+
'c if (a..b)'...'',
|
1350
|
+
'c if ((a..b))'...'',
|
1351
|
+
'c if (((((((((a..b)))))))))'...'',
|
1352
|
+
'c if !(a..b)'...'',
|
1353
|
+
'c if not (a..b)'...'',
|
1354
|
+
'c unless (a..b)'...'',
|
1355
|
+
'c if (a..b) and c'...'',
|
1356
|
+
'c unless (a..b) or c'...'',
|
1357
|
+
'c if c and (a..b) and c'...'',
|
1358
|
+
'c unless c or (a..b) or c'...'',
|
1359
|
+
'z if a || b or c..d'...'',
|
1360
|
+
'z if a || c..d'...'',
|
1361
|
+
|
1362
|
+
|
1363
|
+
|
1364
|
+
#regex as flow control.. annoying
|
1365
|
+
'/a..b/'...'',
|
1366
|
+
'/a...b/'...'',
|
1367
|
+
'/a..b/ and c'...'',
|
1368
|
+
'/a..b/ or c'...'',
|
1369
|
+
'c and /a..b/ and c'...'',
|
1370
|
+
'c or /a..b/ or c'...'',
|
1371
|
+
|
1372
|
+
'not /a...b/'...'',
|
1373
|
+
'not /a..b/'...'',
|
1374
|
+
'c if /a..b/'...'',
|
1375
|
+
'c unless /a..b/'...'',
|
1376
|
+
'c if /a..b/ and c'...'',
|
1377
|
+
'c unless /a..b/ or c'...'',
|
1378
|
+
'c if c and /a..b/ and c'...'',
|
1379
|
+
'c unless c or /a..b/ or c'...'',
|
1380
|
+
|
1381
|
+
'not (/a..b/)'...'',
|
1382
|
+
'not (/a..b/) and c'...'',
|
1383
|
+
'not z and (/a..b/) and c'...'',
|
1384
|
+
'not z and (/a..b/)'...'',
|
1385
|
+
'not z and /a..b/ and c'...'',
|
1386
|
+
'not z and /a..b/'...'',
|
1387
|
+
'not (z and (/a..b/) and c)'...'',
|
1388
|
+
'not (z and (/a..b/))'...'',
|
1389
|
+
'not (z and /a..b/ and c)'...'',
|
1390
|
+
'not (z and /a..b/)'...'',
|
1391
|
+
'!(/a..b/)'...'',
|
1392
|
+
'c if (/a..b/)'...'',
|
1393
|
+
'c if ((/a..b/))'...'',
|
1394
|
+
'c if (((((((((/a..b/)))))))))'...'',
|
1395
|
+
'c if !(/a..b/)'...'',
|
1396
|
+
'c if not (/a..b/)'...'',
|
1397
|
+
'c unless (/a..b/)'...'',
|
1398
|
+
'c if (/a..b/) and c'...'',
|
1399
|
+
'c unless (/a..b/) or c'...'',
|
1400
|
+
'c if c and (/a..b/) and c'...'',
|
1401
|
+
'c unless c or (/a..b/) or c'...'',
|
1402
|
+
'z if a || b or /c..d/'...'',
|
1403
|
+
'z if a || /c..d/'...'',
|
1404
|
+
|
1405
|
+
'a&&b'...'',
|
1406
|
+
'a||b'...'',
|
1407
|
+
'a&&=b'...'',
|
1408
|
+
'a||=b'...'',
|
1409
|
+
'not a and b'...'',
|
1410
|
+
|
1411
|
+
'a&&b&&c'...'',
|
1412
|
+
'a||b||c'...'',
|
1413
|
+
'a and b and c'...'',
|
1414
|
+
'a or b or c'...'',
|
1415
|
+
'a and b or c'...'',
|
1416
|
+
'a or b and c'...'',
|
1417
|
+
'a&&b||c'...'',
|
1418
|
+
'a||b&&c'...'',
|
1419
|
+
|
1420
|
+
'a!~b'...'',
|
1421
|
+
'a !~ b'...'',
|
1422
|
+
'a=~b'...'',
|
1423
|
+
'z.a=~b'...'',
|
1424
|
+
'a!=b'...'',
|
1425
|
+
'a==b'...'',
|
1426
|
+
'a===b'...'',
|
1427
|
+
|
1428
|
+
'a<=>b'...'',
|
1429
|
+
'a<=b'...'',
|
1430
|
+
'a>=b'...'',
|
1431
|
+
'a<b'...'',
|
1432
|
+
'a>b'...'',
|
1433
|
+
|
1434
|
+
'a^b'...'',
|
1435
|
+
'a|b'...'',
|
1436
|
+
'a&b'...'',
|
1437
|
+
|
1438
|
+
'a>>b'...'',
|
1439
|
+
'a<<b'...'',
|
1440
|
+
|
1441
|
+
'a and b && c'...'',
|
1442
|
+
'a && b and c'...'',
|
1443
|
+
'a or b || c'...'',
|
1444
|
+
'a || b or c'...'',
|
1445
|
+
|
1446
|
+
'(a and b) && c'...'',
|
1447
|
+
'(a && b) and c'...'',
|
1448
|
+
'(a or b) || c'...'',
|
1449
|
+
'(a || b) or c'...'',
|
1450
|
+
|
1451
|
+
'a&&(b&&c)'...'',
|
1452
|
+
'a||(b||c)'...'',
|
1453
|
+
'a and (b and c)'...'',
|
1454
|
+
'a or (b or c)'...'',
|
1455
|
+
|
1456
|
+
'a&&b'...'',
|
1457
|
+
'a &&b'...'',
|
1458
|
+
'a&& b'...'',
|
1459
|
+
'a && b'...'',
|
1460
|
+
|
1461
|
+
'a<<b'...'',
|
1462
|
+
# 'a <<b'...'', #here document, tested elsewhere
|
1463
|
+
'a<< b'...'',
|
1464
|
+
'a << b'...'',
|
1465
|
+
|
1466
|
+
'if not a; b end'...'',
|
1467
|
+
'unless not a; b end'...'',
|
1468
|
+
'while not a; b end'...'',
|
1469
|
+
'until not a; b end'...'',
|
1470
|
+
|
1471
|
+
'$a||=b'...'',
|
1472
|
+
'@a||=b'...'',
|
1473
|
+
'@@a||=b'...'',
|
1474
|
+
'A||=b'...'',
|
1475
|
+
'a.b||=c'...'',
|
1476
|
+
'a[b]||=c'...'',
|
1477
|
+
'def a() end'...'',
|
1478
|
+
'def a(b) c end'...'',
|
1479
|
+
'def a(b=nil) c end'...'',
|
1480
|
+
'a ? b : c'...'',
|
1481
|
+
'a=b=c=1;a ?b:c'...'',
|
1482
|
+
'eof!?nil:true'...'',
|
1483
|
+
'eof!? a: b'...'',
|
1484
|
+
'eof!?a'...'',
|
1485
|
+
'eof??ni : 0'...'',
|
1486
|
+
'eof ?ni : 0'...'',
|
1487
|
+
'eof??n'...'',
|
1488
|
+
'eof ?n'...'',
|
1489
|
+
|
1490
|
+
'eof??ni() : 0'...'',
|
1491
|
+
'eof??ni(1) : 0'...'',
|
1492
|
+
'eof??ni(*a) : 0'...'',
|
1493
|
+
'eof??ni(&b) : 0'...'',
|
1494
|
+
'eof??ni{a} : 0'...'',
|
1495
|
+
'eof??ni(a,b,*c,&d) : 0'...'',
|
1496
|
+
'eof??ni(a,b,*c){|d| e} : 0'...'',
|
1497
|
+
'eof??z.ni(a,b,*c){|d| e} : 0'...'', #syntax error
|
1498
|
+
'eof??zz.ni(a,b,*c){|d| e} : 0'...'',
|
1499
|
+
'eof??z0.ni(a,b,*c){|d| e} : 0'...'',
|
1500
|
+
'ni{|| }'...'',
|
1501
|
+
'ni{|b| }'...'',
|
1502
|
+
'ni{|b,c| }'...'',
|
1503
|
+
'ni{|b,c,*d| }'...'',
|
1504
|
+
'ni{|b.c,d[e],*f| }'...'',
|
1505
|
+
'ni{|b.c,d.e,*f| }'...'',
|
1506
|
+
'ni{|b,(c,d),e| }'...'',
|
1507
|
+
'ni{|b,(c,d),*e| }'...'',
|
1508
|
+
'ni{|b,(c,*d),*e| }'...'',
|
1509
|
+
'ni{|b,(c.f,*d),*e| }'...'',
|
1510
|
+
'ni{|b,(c[f],*d),*e| }'...'',
|
1511
|
+
'ni{|b,(c.f,g[h],*d),*e| }'...'',
|
1512
|
+
|
1513
|
+
'b,c=z'...'',
|
1514
|
+
'b,c,*d=z'...'',
|
1515
|
+
'b.c,d[e],*f=z'...'',
|
1516
|
+
'b,(c,d),e=z'...'',
|
1517
|
+
'b,(c,d),*e=z'...'',
|
1518
|
+
'b,(c,*d),*e=z'...'',
|
1519
|
+
'b,(c.f,*d),*e=z'...'',
|
1520
|
+
'b,(c[f],*d),*e=z'...'',
|
1521
|
+
'b,(c.f,g[h],*d),*e=z'...'',
|
1522
|
+
'k{b,(i,j,c.f,g[h],*d),*e=z}'...'',
|
1523
|
+
|
1524
|
+
'::B'...'',
|
1525
|
+
'A::B'...'',
|
1526
|
+
|
1527
|
+
'a,b=c,d=e,f'...'',
|
1528
|
+
'a,*b=c,d=e,*f'...'',
|
1529
|
+
|
1530
|
+
'a=*b'...'',
|
1531
|
+
'*a=b'...'',
|
1532
|
+
'*a=*b'...'',
|
1533
|
+
|
1534
|
+
'*d=e,*f'...'',
|
1535
|
+
'd=e,*f'...'',
|
1536
|
+
'*d=e,f'...'',
|
1537
|
+
'd=e,f'...'',
|
1538
|
+
|
1539
|
+
'z{|a,*b.c| d}'...'',
|
1540
|
+
# 'z{|a,*B::C| d}'...'', #ParseTree 2.1.1 segfault
|
1541
|
+
'z{|a,*b[c]| d}'...'',
|
1542
|
+
'z{|a,*$b| d}'...'',
|
1543
|
+
'z{|a,a[b]| d}'...'',
|
1544
|
+
'z{|a,a[b]| a.c;d}'...'',
|
1545
|
+
'z{|a,c[b],c| a.c;d}'...'',
|
1546
|
+
'a=0;z{|a,a[b]| a.c;d}'...'',
|
1547
|
+
'z{a=0}'...'',
|
1548
|
+
'a,b=c,d'...'',
|
1549
|
+
'(a,b)=c,d'...'',
|
1550
|
+
'((a,b))=c,d'...'',
|
1551
|
+
'(((a,b)))=c,d'...'',
|
1552
|
+
|
1553
|
+
'%w[]'...'',
|
1554
|
+
'%W[]'...'',
|
1555
|
+
|
1556
|
+
'alias a b'...'',
|
1557
|
+
'undef a'...'',
|
1558
|
+
'undef a,b'...'',
|
1559
|
+
'undef a,b,c'...'',
|
1560
|
+
|
1561
|
+
'alias :a :b'...'',
|
1562
|
+
'undef :a'...'',
|
1563
|
+
'undef :a,:b'...'',
|
1564
|
+
'undef :a,:b,:c'...'',
|
1565
|
+
|
1566
|
+
'begin a; rescue b,c,f; d end'...'',
|
1567
|
+
|
1568
|
+
'begin a;g; rescue b,c,f; d end'...'',
|
1569
|
+
|
1570
|
+
#for clause can contain multiple assignment too...
|
1571
|
+
'for a,(b,*c),k,*l in d do e end'...'',
|
1572
|
+
'for *a in d do e end'...'',
|
1573
|
+
|
1574
|
+
'f{a=1;g{a=2}}'...'',
|
1575
|
+
'f{a=1;p a;g{a=2; p g}}'...'',
|
1576
|
+
'a=1;f{|a| a}'...'',
|
1577
|
+
'a=1;f{|a,b| a+b}'...'',
|
1578
|
+
'xxx=0; xxx ?111:222'...'',
|
1579
|
+
'xxx=yyy=zzz=0; xxx ?yyy:zzz'...'',
|
1580
|
+
%[xxx=0; xxx ?'':"" ]...'',
|
1581
|
+
|
1582
|
+
'(a,b),c=[1,2],3'...'',
|
1583
|
+
|
1584
|
+
'z(1){|a,a[b]| d}'...'',
|
1585
|
+
|
1586
|
+
'a,=1'...'',
|
1587
|
+
'a,b,=1'...'',
|
1588
|
+
'a,* =1'...'',
|
1589
|
+
'a,b,* =1'...'',
|
1590
|
+
|
1591
|
+
'aa,(a,)=1'...'',
|
1592
|
+
'aa,(a,b,)=1'...'',
|
1593
|
+
'aa,(a,*) =1'...'',
|
1594
|
+
'aa,(a,b,*) =1'...'',
|
1595
|
+
|
1596
|
+
'f{|a,|d}'...'',
|
1597
|
+
'f{|a,b,|d}'...'',
|
1598
|
+
'f{|a,*|d}'...'',
|
1599
|
+
'f{|a,b,*|d}'...'',
|
1600
|
+
|
1601
|
+
'f{|aa,(a,)|d}'...'',
|
1602
|
+
'f{|aa,(a,b,)|d}'...'',
|
1603
|
+
'f{|aa,(a,*)|d}'...'',
|
1604
|
+
'f{|aa,(a,b,*)|d}'...'',
|
1605
|
+
'for a.b in c do e end'...'',
|
1606
|
+
'(*a)=1'...'',
|
1607
|
+
'(*a)=b'...'',
|
1608
|
+
'for a in b do end'...'',
|
1609
|
+
'for *a in b do end'...'',
|
1610
|
+
'for (*a) in b do end'...'',
|
1611
|
+
'for (a,) in b do end'...'',
|
1612
|
+
|
1613
|
+
'def f(a,b,*); c end'...'',
|
1614
|
+
|
1615
|
+
' * =f,g'...'',
|
1616
|
+
'(*)=f,g'...'',
|
1617
|
+
'(a,)=b'...'',
|
1618
|
+
|
1619
|
+
'return(a and b)'...'',
|
1620
|
+
'break(a and b)'...'',
|
1621
|
+
'next(a and b)'...'',
|
1622
|
+
'begin a; rescue b,f: c end'...'',
|
1623
|
+
'begin a; rescue b,f=>g: c end'...'',
|
1624
|
+
|
1625
|
+
'begin a;h; rescue b,f: c end'...'',
|
1626
|
+
'begin a;h; rescue b,f=>g: c end'...'',
|
1627
|
+
|
1628
|
+
'a ? defined? b : c'...'',
|
1629
|
+
'if defined? b : c end'...'',
|
1630
|
+
'if not b : c end'...'',
|
1631
|
+
'class A::B; end'...'', #ParseTree 2.1.1 gets this wrong... had to quirk it
|
1632
|
+
|
1633
|
+
|
1634
|
+
'"#{a}#{b}"'...'',
|
1635
|
+
'"1#{a}2#{b}3"'...'',
|
1636
|
+
'"1#{a}2#{b}3" "1#{a}2#{b}3"'...'',
|
1637
|
+
'"1#{a}2#{b}" "1#{a}2#{b}3"'...'',
|
1638
|
+
'"1#{a}2#{b}3""1#{a}2#{b}3"'...'',
|
1639
|
+
'"1#{a}2#{b}""1#{a}2#{b}3"'...'',
|
1640
|
+
|
1641
|
+
'"1#{a}2#{b}3" "#{a}2#{b}3"'...'',
|
1642
|
+
'"1#{a}2#{b}" "#{a}2#{b}3"'...'',
|
1643
|
+
|
1644
|
+
'"a#{m}a" "b#{n}b"'...'',
|
1645
|
+
'"a#{m}a" "bb"'...'',
|
1646
|
+
'"aa" "b#{n}b"'...'',
|
1647
|
+
'"aa" "bb"'...'',
|
1648
|
+
'a=1;"#{a}"'...'',
|
1649
|
+
'"#{A}"'...'',
|
1650
|
+
'"#$A"'...'',
|
1651
|
+
'"#@A"'...'',
|
1652
|
+
'"#@@A"'...'',
|
1653
|
+
|
1654
|
+
'p(a and b)'...'', #not legal
|
1655
|
+
|
1656
|
+
'1..2'...'',
|
1657
|
+
'a if 1..2'...'',
|
1658
|
+
|
1659
|
+
'nc=(nextchar unless eof?)'...'',
|
1660
|
+
'super'...'',
|
1661
|
+
'super()'...'',
|
1662
|
+
'super(1)'...'',
|
1663
|
+
'super(1,2)'...'',
|
1664
|
+
'super(1,2,3)'...'',
|
1665
|
+
'super(*a)'...'',
|
1666
|
+
'super(1,*b)'...'',
|
1667
|
+
'super(1,2,*c)'...'',
|
1668
|
+
'super(&a)'...'',
|
1669
|
+
'super(1,&b)'...'',
|
1670
|
+
'super(1,2,&c)'...'',
|
1671
|
+
'super(*a,&b)'...'',
|
1672
|
+
'super(1,*b,&c)'...'',
|
1673
|
+
'super(1,2,*c,&d)'...'',
|
1674
|
+
'a.super'...'',
|
1675
|
+
'a.super()'...'',
|
1676
|
+
'a.super(1)'...'',
|
1677
|
+
'a.super(1,2)'...'',
|
1678
|
+
'a.super(1,2,3)'...'',
|
1679
|
+
'a.super(*a)'...'',
|
1680
|
+
'a.super(1,*b)'...'',
|
1681
|
+
'a.super(1,2,*c)'...'',
|
1682
|
+
'a.super(&a)'...'',
|
1683
|
+
'a.super(1,&b)'...'',
|
1684
|
+
'a.super(1,2,&c)'...'',
|
1685
|
+
'a.super(*a,&b)'...'',
|
1686
|
+
'a.super(1,*b,&c)'...'',
|
1687
|
+
'a.super(1,2,*c,&d)'...'',
|
1688
|
+
|
1689
|
+
'yield'...'',
|
1690
|
+
'yield()'...'',
|
1691
|
+
'yield(1)'...'',
|
1692
|
+
'yield(1,2)'...'',
|
1693
|
+
'yield(1,2,3)'...'',
|
1694
|
+
'yield(*a)'...'',
|
1695
|
+
'yield(1,*b)'...'',
|
1696
|
+
'yield(1,2,*c)'...'',
|
1697
|
+
#ruby 1.9
|
1698
|
+
# 'yield(&a)'...'',
|
1699
|
+
# 'yield(1,&b)'...'',
|
1700
|
+
# 'yield(1,2,&c)'...'',
|
1701
|
+
# 'yield(*a,&b)'...'',
|
1702
|
+
# 'yield(1,*b,&c)'...'',
|
1703
|
+
# 'yield(1,2,*c,&d)'...'',
|
1704
|
+
'a.yield'...'',
|
1705
|
+
'a.yield()'...'',
|
1706
|
+
'a.yield(1)'...'',
|
1707
|
+
'a.yield(1,2)'...'',
|
1708
|
+
'a.yield(1,2,3)'...'',
|
1709
|
+
'a.yield(*a)'...'',
|
1710
|
+
'a.yield(1,*b)'...'',
|
1711
|
+
'a.yield(1,2,*c)'...'',
|
1712
|
+
'a.yield(&a)'...'',
|
1713
|
+
'a.yield(1,&b)'...'',
|
1714
|
+
'a.yield(1,2,&c)'...'',
|
1715
|
+
'a.yield(*a,&b)'...'',
|
1716
|
+
'a.yield(1,*b,&c)'...'',
|
1717
|
+
'a.yield(1,2,*c,&d)'...'',
|
1718
|
+
|
1719
|
+
'return'...'',
|
1720
|
+
'return()'...'',
|
1721
|
+
'return(1)'...'',
|
1722
|
+
'return 1'...'',
|
1723
|
+
'break'...'',
|
1724
|
+
'break()'...'',
|
1725
|
+
'break(1)'...'',
|
1726
|
+
'break 1'...'',
|
1727
|
+
'next'...'',
|
1728
|
+
'next()'...'',
|
1729
|
+
'next(1)'...'',
|
1730
|
+
'next 1'...'',
|
1731
|
+
|
1732
|
+
#these aren't legal with parens around param list
|
1733
|
+
'return 1,2'...'',
|
1734
|
+
'return 1,2,3'...'',
|
1735
|
+
'return *a '...'',
|
1736
|
+
'return 1,*b'...'',
|
1737
|
+
'return 1,2,*c'...'',
|
1738
|
+
'break 1,2'...'',
|
1739
|
+
'break 1,2,3'...'',
|
1740
|
+
'break *a '...'',
|
1741
|
+
'break 1,*b'...'',
|
1742
|
+
'break 1,2,*c'...'',
|
1743
|
+
'next 1,2'...'',
|
1744
|
+
'next 1,2,3'...'',
|
1745
|
+
'next *a '...'',
|
1746
|
+
'next 1,*b'...'',
|
1747
|
+
'next 1,2,*c'...'',
|
1748
|
+
|
1749
|
+
'a.return'...'',
|
1750
|
+
'a.return()'...'',
|
1751
|
+
'a.return(1)'...'',
|
1752
|
+
'a.return(1,2)'...'',
|
1753
|
+
'a.return(1,2,3)'...'',
|
1754
|
+
'a.return(*a)'...'',
|
1755
|
+
'a.return(1,*b)'...'',
|
1756
|
+
'a.return(1,2,*c)'...'',
|
1757
|
+
'a.return(&a)'...'',
|
1758
|
+
'a.return(1,&b)'...'',
|
1759
|
+
'a.return(1,2,&c)'...'',
|
1760
|
+
'a.return(*a,&b)'...'',
|
1761
|
+
'a.return(1,*b,&c)'...'',
|
1762
|
+
'a.return(1,2,*c,&d)'...'',
|
1763
|
+
|
1764
|
+
'a.break'...'',
|
1765
|
+
'a.break()'...'',
|
1766
|
+
'a.break(1)'...'',
|
1767
|
+
'a.break(1,2)'...'',
|
1768
|
+
'a.break(1,2,3)'...'',
|
1769
|
+
'a.break(*a)'...'',
|
1770
|
+
'a.break(1,*b)'...'',
|
1771
|
+
'a.break(1,2,*c)'...'',
|
1772
|
+
'a.break(&a)'...'',
|
1773
|
+
'a.break(1,&b)'...'',
|
1774
|
+
'a.break(1,2,&c)'...'',
|
1775
|
+
'a.break(*a,&b)'...'',
|
1776
|
+
'a.break(1,*b,&c)'...'',
|
1777
|
+
'a.break(1,2,*c,&d)'...'',
|
1778
|
+
|
1779
|
+
'a.next'...'',
|
1780
|
+
'a.next()'...'',
|
1781
|
+
'a.next(1)'...'',
|
1782
|
+
'a.next(1,2)'...'',
|
1783
|
+
'a.next(1,2,3)'...'',
|
1784
|
+
'a.next(*a)'...'',
|
1785
|
+
'a.next(1,*b)'...'',
|
1786
|
+
'a.next(1,2,*c)'...'',
|
1787
|
+
'a.next(&a)'...'',
|
1788
|
+
'a.next(1,&b)'...'',
|
1789
|
+
'a.next(1,2,&c)'...'',
|
1790
|
+
'a.next(*a,&b)'...'',
|
1791
|
+
'a.next(1,*b,&c)'...'',
|
1792
|
+
'a.next(1,2,*c,&d)'...'',
|
1793
|
+
'[*a]'...'',
|
1794
|
+
'[a,*b]'...'',
|
1795
|
+
'[a,b,*c]'...'',
|
1796
|
+
'a="0";class<<a; b end'...'',
|
1797
|
+
'k=Hash;class CornedBeef<k; end'...'',
|
1798
|
+
'a+b'...'',
|
1799
|
+
'a +b'...'',
|
1800
|
+
'a+ b'...'',
|
1801
|
+
'a + b'...'',
|
1802
|
+
'a-b'...'',
|
1803
|
+
'a -b'...'',
|
1804
|
+
'a- b'...'',
|
1805
|
+
'a - b'...'',
|
1806
|
+
'a*b'...'',
|
1807
|
+
'a *b'...'',
|
1808
|
+
'a* b'...'',
|
1809
|
+
'a * b'...'',
|
1810
|
+
'a&b'...'',
|
1811
|
+
'a &b'...'',
|
1812
|
+
'a& b'...'',
|
1813
|
+
'a & b'...'',
|
1814
|
+
|
1815
|
+
'A::B'...'',
|
1816
|
+
'A ::B'...'',
|
1817
|
+
'A:: B'...'',
|
1818
|
+
'A :: B'...'',
|
1819
|
+
|
1820
|
+
'a(&b)'...'',
|
1821
|
+
'/[}]/'...'',
|
1822
|
+
'%{\}}'...'',
|
1823
|
+
'/\}/'...'',
|
1824
|
+
'/\@/'...'',
|
1825
|
+
'/\y/'...'',
|
1826
|
+
'/\ /x'...'',
|
1827
|
+
'"\}"'...'',
|
1828
|
+
'i?::R'...'',
|
1829
|
+
'i? ::R'...'',
|
1830
|
+
'i? +R'...'',
|
1831
|
+
'i? -R'...'',
|
1832
|
+
'i? *R'...'',
|
1833
|
+
'i? &R'...'',
|
1834
|
+
'%w[\|\|]'...'',
|
1835
|
+
'%W[\|\|]'...'',
|
1836
|
+
'%x[\|\|]'...'',
|
1837
|
+
'%s[\|\|]'...'',
|
1838
|
+
'%q[\|\|]'...'',
|
1839
|
+
'%Q[\|\|]'...'',
|
1840
|
+
'%r[\|\|]'...'',
|
1841
|
+
|
1842
|
+
'def evaluate rule; rescue Exception; puts ""; end'...'',
|
1843
|
+
'def evaluate rule; foo; rescue Exception; puts ""; end'...'',
|
1844
|
+
'def evaluate rule; foo; rescue Exception=>e; puts e; end'...'',
|
1845
|
+
'def evaluate rule; foo; rescue RX; f(g); rescue Exception=>e; puts e; end'...'',
|
1846
|
+
'def evaluate rule; foo; rescue RX; f(g); rescue Exception=>e; puts e; else k end'...'',
|
1847
|
+
|
1848
|
+
'def evaluate rule; foo; bar;rescue Exception; puts ""; end'...'',
|
1849
|
+
'def evaluate rule; foo; bar;rescue Exception=>e; puts e; end'...'',
|
1850
|
+
'def evaluate rule; foo; bar;rescue RX; f(g); rescue Exception=>e; puts e; end'...'',
|
1851
|
+
'def evaluate rule; foo; bar;rescue RX; f(g); rescue Exception=>e; puts e; else k end'...'',
|
1852
|
+
'def a(b,c,d,e=f,g=h,*i,&j) k;l;m rescue n; rescue o,p,q=>r: s; rescue t; u; rescue; v else w ensure x end'...'',
|
1853
|
+
'begin k;l;m rescue n; rescue o,p,q=>r: s; rescue t; u; rescue; v else w ensure x end'...'',
|
1854
|
+
|
1855
|
+
'%w[ ]'...'',
|
1856
|
+
'%W[ ]'...'',
|
1857
|
+
'%w[\ ]'...'',
|
1858
|
+
'%W[\ ]'...'',
|
1859
|
+
'%w[\ ]'...'',
|
1860
|
+
'%W[\ ]'...'',
|
1861
|
+
'%W[\n]'...'',
|
1862
|
+
'%W[\q]'...'',
|
1863
|
+
|
1864
|
+
|
1865
|
+
'%W[ #{}]'...'',
|
1866
|
+
'%W[\ #{}]'...'',
|
1867
|
+
'%W[\ #{}]'...'',
|
1868
|
+
'%W[\n#{}]'...'',
|
1869
|
+
'%W[\q#{}]'...'',
|
1870
|
+
|
1871
|
+
'%[\"]'...'',
|
1872
|
+
'%W[\"]'...'',
|
1873
|
+
'%W[\C-a]'...'',
|
1874
|
+
'%W[\"#{}]'...'',
|
1875
|
+
'%W[\C-a#{}]'...'',
|
1876
|
+
'"\M-\M-\M-\M-\c4"'...'',
|
1877
|
+
'"\M-\M-\M-\M-\M-4"'...'',
|
1878
|
+
'"\M-\C-4"' ...'',
|
1879
|
+
'"\C-\M-4"'...'',
|
1880
|
+
'"\\C-\\C-\\C-\\c\\C-a"'...'',
|
1881
|
+
'"\c6"'...'',
|
1882
|
+
':"y"'...'',
|
1883
|
+
':"y?"'...'',
|
1884
|
+
':"y!"'...'',
|
1885
|
+
':"y="'...'',
|
1886
|
+
':"\y"'...'',
|
1887
|
+
':"\\y"'...'',
|
1888
|
+
':"\\\\y"'...'',
|
1889
|
+
':"y\""'...'',
|
1890
|
+
'%{\\C-\\\\}'...'',
|
1891
|
+
'%{\\C-\\}}'...'',
|
1892
|
+
'%{\\C-\\{}'...'',
|
1893
|
+
'%{\\C-\\"}'...'',
|
1894
|
+
'%{\\C-"}'...'',
|
1895
|
+
'"\\C-\\""'...'',
|
1896
|
+
":'\\\\'"...'',
|
1897
|
+
'%W[\\#]'...'',
|
1898
|
+
'%W[\\"]'...'',
|
1899
|
+
'%W[\\\\]'...'',
|
1900
|
+
'%W[\\##{}]'...'',
|
1901
|
+
'%W[\\"#{}]'...'',
|
1902
|
+
'%W[\\\\#{}]'...'',
|
1903
|
+
|
1904
|
+
'"\\\\M-\\C-?"'...'',
|
1905
|
+
'"\\C-?"'...'',
|
1906
|
+
|
1907
|
+
"%w[\\\v]"...'',
|
1908
|
+
"%W[\\\v]"...'',
|
1909
|
+
"%W[\\\v#{}]"...'',
|
1910
|
+
"%w[\v]"...'',
|
1911
|
+
"%W[\v]"...'',
|
1912
|
+
"%W[\v#{}]"...'',
|
1913
|
+
|
1914
|
+
'+?c'...'',
|
1915
|
+
'+:s'...'',
|
1916
|
+
'+%s{s}'...'',
|
1917
|
+
'+/r/'...'',
|
1918
|
+
'+%r{r}'...'',
|
1919
|
+
'+:"s"'...'',
|
1920
|
+
"+:'s'"...'',
|
1921
|
+
|
1922
|
+
'+/r#{1}/'...'',
|
1923
|
+
'+%r{r#{1}}'...'',
|
1924
|
+
'+:"s#{1}"'...'',
|
1925
|
+
|
1926
|
+
'+ ?c'...'',
|
1927
|
+
'+ :s'...'',
|
1928
|
+
'+ %s{s}'...'',
|
1929
|
+
'+ /r/'...'',
|
1930
|
+
'+ %r{r}'...'',
|
1931
|
+
'+ :"s"'...'',
|
1932
|
+
"+ :'s'"...'',
|
1933
|
+
|
1934
|
+
'+ /r#{1}/'...'',
|
1935
|
+
'+ %r{r#{1}}'...'',
|
1936
|
+
'+ :"s#{1}"'...'',
|
1937
|
+
|
1938
|
+
'+1'...'',
|
1939
|
+
'+ 1'...'',
|
1940
|
+
'def a; 0..0 end'...'',
|
1941
|
+
|
1942
|
+
'0.0;a'...'',
|
1943
|
+
'0..0;a'...'',
|
1944
|
+
'0...0;a'...'',
|
1945
|
+
|
1946
|
+
'+++++++++++1'...'',
|
1947
|
+
'+++++++++++-1'...'',
|
1948
|
+
'++++++-+++++1'...'',
|
1949
|
+
'-+++++++++++1'...'',
|
1950
|
+
'--1'...'',
|
1951
|
+
'- 1'...'',
|
1952
|
+
'"\C-""'...'',
|
1953
|
+
'+/reg#{exp}/'...'',
|
1954
|
+
'?\C-\?'...'',
|
1955
|
+
'?\C-?'...'',
|
1956
|
+
'a=b rescue c'...'',
|
1957
|
+
'a=b=d rescue c'...'',
|
1958
|
+
'(a=b) rescue c'...'',
|
1959
|
+
'a.d=b rescue c'...'',
|
1960
|
+
'a[d]=b rescue c'...'',
|
1961
|
+
# 'A::D=b rescue c'...'', #segfaults ParseTree 2.1.1
|
1962
|
+
'a,=b rescue c'...'',
|
1963
|
+
'a,* =b rescue c'...'',
|
1964
|
+
'a,d=b rescue c'...'',
|
1965
|
+
'a,*d=b rescue c'...'',
|
1966
|
+
'(a,)=b rescue c'...'',
|
1967
|
+
'(a,*)=b rescue c'...'',
|
1968
|
+
'(a,d)=b rescue c'...'',
|
1969
|
+
'(a,*d)=b rescue c'...'',
|
1970
|
+
|
1971
|
+
'*a=b rescue c'...'',
|
1972
|
+
'a=*b rescue c'...'',
|
1973
|
+
'a=b,d rescue c'...'',
|
1974
|
+
'a+=b rescue c'...'',
|
1975
|
+
'"#{__FILE__}"'...'',
|
1976
|
+
'"#{__LINE__}"'...'',
|
1977
|
+
'"#{nil}"'...'',
|
1978
|
+
'"#{true}"'...'',
|
1979
|
+
'"#{false}"'...'',
|
1980
|
+
'"#{self}"'...'',
|
1981
|
+
'"#{()}"'...'',
|
1982
|
+
'"sdfe#{g5}4t#{(((((__FILE__)))))}dfsd#{g}"'...'',
|
1983
|
+
'"#{"foo"}"'...'',
|
1984
|
+
'"#{("foo")}"'...'',
|
1985
|
+
'"#{"foo"}bar#{baz}"'...'',
|
1986
|
+
|
1987
|
+
'begin; a; rescue b; end; c'...'',
|
1988
|
+
'if begin; a; rescue b; end then c end'...'',
|
1989
|
+
'while begin; a; rescue b; end ; end'...'',
|
1990
|
+
'begin; m; rescue begin; a; rescue b; end: end'...'',
|
1991
|
+
'begin; m; rescue begin; a; rescue b; end,o: end'...'',
|
1992
|
+
'def l; m; rescue begin; a; rescue b; end: end'...'',
|
1993
|
+
'def l; m; rescue begin; a; rescue b; end,o: end'...'',
|
1994
|
+
'for i in begin; a; rescue b; end do gf end'...'',
|
1995
|
+
'def m n=begin; a; rescue b; end; end'...'',
|
1996
|
+
'def (begin; a; rescue b; end).m; end'...'',
|
1997
|
+
'def ((begin; a; rescue b; end)).m; end'...'',
|
1998
|
+
'begin; a; rescue b; end.m'...'',
|
1999
|
+
'(begin; a; rescue b; end).m'...'',
|
2000
|
+
'c=begin; a; rescue b; end'...'',
|
2001
|
+
'c+=begin; a; rescue b; end'...'',
|
2002
|
+
'p begin; a; rescue b; end'...'',
|
2003
|
+
'p(begin; a; rescue b; end)'...'',
|
2004
|
+
'c=begin; a; rescue b; end,0'...'',
|
2005
|
+
'c=0,begin; a; rescue b; end'...'',
|
2006
|
+
'c=0,begin; a; rescue b; end,0'...'',
|
2007
|
+
'[begin; a; rescue b; end]'...'',
|
2008
|
+
'{begin; a; rescue b; end=>m}'...'',
|
2009
|
+
'{m=>begin; a; rescue b; end}'...'',
|
2010
|
+
'begin; a; rescue b; end+m'...'',
|
2011
|
+
'm+begin; a; rescue b; end'...'',
|
2012
|
+
'+begin; a; rescue b; end'...'',
|
2013
|
+
'-begin; a; rescue b; end'...'',
|
2014
|
+
'~begin; a; rescue b; end'...'',
|
2015
|
+
'p(*begin; a; rescue b; end)'...'',
|
2016
|
+
'p(&begin; a; rescue b; end)'...'',
|
2017
|
+
'begin; a; rescue b; end ? m : n'...'',
|
2018
|
+
'm rescue begin; a; rescue b; end'...'',
|
2019
|
+
'm > begin; a; rescue b; end'...'',
|
2020
|
+
'm < begin; a; rescue b; end'...'',
|
2021
|
+
'm >= begin; a; rescue b; end'...'',
|
2022
|
+
'm <= begin; a; rescue b; end'...'',
|
2023
|
+
'm <=> begin; a; rescue b; end'...'',
|
2024
|
+
'm === begin; a; rescue b; end'...'',
|
2025
|
+
'm == begin; a; rescue b; end'...'',
|
2026
|
+
'm = begin; a; rescue b; end'...'',
|
2027
|
+
'm % begin; a; rescue b; end'...'',
|
2028
|
+
'm %= begin; a; rescue b; end'...'',
|
2029
|
+
'm >> begin; a; rescue b; end'...'',
|
2030
|
+
'm << begin; a; rescue b; end'...'',
|
2031
|
+
'm >>= begin; a; rescue b; end'...'',
|
2032
|
+
'm <<= begin; a; rescue b; end'...'',
|
2033
|
+
'm **= begin; a; rescue b; end'...'',
|
2034
|
+
'm *= begin; a; rescue b; end'...'',
|
2035
|
+
'm /= begin; a; rescue b; end'...'',
|
2036
|
+
'm -= begin; a; rescue b; end'...'',
|
2037
|
+
'm += begin; a; rescue b; end'...'',
|
2038
|
+
'm ^= begin; a; rescue b; end'...'',
|
2039
|
+
'm &= begin; a; rescue b; end'...'',
|
2040
|
+
'm |= begin; a; rescue b; end'...'',
|
2041
|
+
'm &&= begin; a; rescue b; end'...'',
|
2042
|
+
'm ||= begin; a; rescue b; end'...'',
|
2043
|
+
'm * begin; a; rescue b; end'...'',
|
2044
|
+
'm ** begin; a; rescue b; end'...'',
|
2045
|
+
'm / begin; a; rescue b; end'...'',
|
2046
|
+
'm - begin; a; rescue b; end'...'',
|
2047
|
+
'm + begin; a; rescue b; end'...'',
|
2048
|
+
'm ^ begin; a; rescue b; end'...'',
|
2049
|
+
'm & begin; a; rescue b; end'...'',
|
2050
|
+
'm | begin; a; rescue b; end'...'',
|
2051
|
+
|
2052
|
+
'm ; begin; a; rescue b; end'...'',
|
2053
|
+
'begin; a; rescue b; end ; m'...'',
|
2054
|
+
'begin; a; rescue b; end if m'...'',
|
2055
|
+
'begin; a; rescue b; end while m'...'',
|
2056
|
+
'begin begin; a; rescue b; end end'...'',
|
2057
|
+
'begin; a; rescue b; end[m]'...'',
|
2058
|
+
'begin; a; rescue b; end[m]=n'...'',
|
2059
|
+
'begin; a; rescue b; end.each'...'',
|
2060
|
+
|
2061
|
+
|
2062
|
+
'm ? begin; a; rescue b; end : nil'...'',
|
2063
|
+
'm ? nil : begin; a; rescue b; end'...'',
|
2064
|
+
'm && begin; a; rescue b; end'...'',
|
2065
|
+
'm and begin; a; rescue b; end'...'',
|
2066
|
+
'm or begin; a; rescue b; end'...'',
|
2067
|
+
'm || begin; a; rescue b; end'...'',
|
2068
|
+
|
2069
|
+
'm ? !begin; a; rescue b; end : nil'...'',
|
2070
|
+
'm ? nil : !begin; a; rescue b; end'...'',
|
2071
|
+
'm && !begin; a; rescue b; end'...'',
|
2072
|
+
'm and !begin; a; rescue b; end'...'',
|
2073
|
+
'm or !begin; a; rescue b; end'...'',
|
2074
|
+
'm || !begin; a; rescue b; end'...'',
|
2075
|
+
|
2076
|
+
'm ? (begin; a; rescue b; end) : nil'...'',
|
2077
|
+
'm ? nil : (begin; a; rescue b; end)'...'',
|
2078
|
+
'm && (begin; a; rescue b; end)'...'',
|
2079
|
+
'm and (begin; a; rescue b; end)'...'',
|
2080
|
+
'm or (begin; a; rescue b; end)'...'',
|
2081
|
+
'm || (begin; a; rescue b; end)'...'',
|
2082
|
+
|
2083
|
+
'begin; a; rescue b; end and m'...'',
|
2084
|
+
'begin; a; rescue b; end && m'...'',
|
2085
|
+
'begin; a; rescue b; end or m'...'',
|
2086
|
+
'begin; a; rescue b; end || m'...'',
|
2087
|
+
'not begin; a; rescue b; end'...'',
|
2088
|
+
'!begin; a; rescue b; end'...'',
|
2089
|
+
'if m; n; elsif begin; a; rescue b; end then o end'...'',
|
2090
|
+
'begin; a; rescue b; end if m'...'',
|
2091
|
+
'm if begin; a; rescue b; end'...'',
|
2092
|
+
'm unless begin; a; rescue b; end'...'',
|
2093
|
+
'm while begin; a; rescue b; end'...'',
|
2094
|
+
'm until begin; a; rescue b; end'...'',
|
2095
|
+
'case m; when begin; a; rescue b; end; j; when n; o end'...'',
|
2096
|
+
'case m; when begin; a; rescue b; end,k; j; when n; o end'...'',
|
2097
|
+
'case m; when k,begin; a; rescue b; end; j; when n; o end'...'',
|
2098
|
+
'case m; when k,begin; a; rescue b; end,k; j; when n; o end'...'',
|
2099
|
+
'"#{begin; a; rescue b; end}"'...'',
|
2100
|
+
'"foo#{(__FILE__)}quux#{"biff"}" "baz"'...'',
|
2101
|
+
'"foo#{("bar")}quux#{"biff"}" "baz"'...'',
|
2102
|
+
'"foo#{"bar"}quux#{"biff"}" "baz"'...'',
|
2103
|
+
'"foo#{bar}quux#{"biff"}" "baz"'...'',
|
2104
|
+
'"foo#{bar}quux#{biff}" "baz"'...'',
|
2105
|
+
'"foo#{bar}quux" "baz"'...'',
|
2106
|
+
'"foo#{"bar"}" "baz"'...'',
|
2107
|
+
'"foo" "bar#{}" "baz"'...'',
|
2108
|
+
'p(&a.b)'...'',
|
2109
|
+
'p(*a+b)'...'',
|
2110
|
+
'm &begin; a; rescue b; end'...'',
|
2111
|
+
'm *begin; a; rescue b; end'...'',
|
2112
|
+
'm(&begin; a; rescue b; end)'...'',
|
2113
|
+
'm(*begin; a; rescue b; end)'...'',
|
2114
|
+
'm=*begin; a; rescue b; end'...'',
|
2115
|
+
'p begin; a; rescue b; end=>d'...'',
|
2116
|
+
'p d=>begin; a; rescue b; end'...'',
|
2117
|
+
'p d=>b'...'',
|
2118
|
+
'p d=>b,*h'...'',
|
2119
|
+
'p a,b,d=>b,*h,&g'...'',
|
2120
|
+
'p d=>b,*h,&g'...'',
|
2121
|
+
'p d=>b,&g'...'',
|
2122
|
+
'p(a,b,d=>b,*h){g}'...'',
|
2123
|
+
'p(d=>b,*h){g}'...'',
|
2124
|
+
'p(d=>b){g}'...'',
|
2125
|
+
'p a,b,d=>b,*h do g end'...'',
|
2126
|
+
'p d=>b,*h do g end'...'',
|
2127
|
+
'p d=>b do g end'...'',
|
2128
|
+
'"#{""}"'...'',
|
2129
|
+
'%[a#{"b"}c#{__FILE__}e#{"f"}]'...'',
|
2130
|
+
'/a#{"b"}c#{__FILE__}e#{"f"}/'...'',
|
2131
|
+
'/a#{"b"}c#{__FILE__}e#{"f"}/o'...'',
|
2132
|
+
'`a#{"b"}c#{__FILE__}e#{"f"}`'...'',
|
2133
|
+
'%W[a#{"b"}c#{__FILE__}e#{"f"}]'...'',
|
2134
|
+
':"s#{1}"'...'',
|
2135
|
+
'while a; end'...'',
|
2136
|
+
'while a: end'...'',
|
2137
|
+
'while a do end'...'',
|
2138
|
+
'%W[a#{"b"}c]'...'',
|
2139
|
+
'%W[a#{"b"}]'...'',
|
2140
|
+
'%W[#{"b"}c]'...'',
|
2141
|
+
'%W[a#{" b "}]'...'',
|
2142
|
+
'a[b=>c]'...'',
|
2143
|
+
'a[b=>c,*d]'...'',
|
2144
|
+
'a[*b]'...'',
|
2145
|
+
'a[b=>c]=d'...'',
|
2146
|
+
'a[b=>c,*d]=e'...'',
|
2147
|
+
'a[*b]=c'...'',
|
2148
|
+
|
2149
|
+
'a[z,b=>c]'...'',
|
2150
|
+
'a[z,b=>c,*d]'...'',
|
2151
|
+
'a[z,*b]'...'',
|
2152
|
+
'a[z,b=>c]=d'...'',
|
2153
|
+
'a[z,b=>c,*d]=e'...'',
|
2154
|
+
'a[z,*b]=c'...'',
|
2155
|
+
|
2156
|
+
'a[y,z,b=>c]'...'',
|
2157
|
+
'a[y,z,b=>c,*d]'...'',
|
2158
|
+
'a[y,z,*b]'...'',
|
2159
|
+
'a[y,z,b=>c]=d'...'',
|
2160
|
+
'a[y,z,b=>c,*d]=e'...'',
|
2161
|
+
'a[y,z,*b]=c'...'',
|
2162
|
+
|
2163
|
+
|
2164
|
+
'a[b=>c]+=d'...'',
|
2165
|
+
'a[b=>c,*d]+=e'...'',
|
2166
|
+
'a[*b]+=c'...'',
|
2167
|
+
'a[z,*b]+=c'...'',
|
2168
|
+
'a[y,z,*b]+=c'...'',
|
2169
|
+
|
2170
|
+
'a[b=>c]||=d'...'',
|
2171
|
+
'a[b=>c,*d]||=e'...'',
|
2172
|
+
'a[*b]||=c'...'',
|
2173
|
+
'a[z,*b]||=c'...'',
|
2174
|
+
'a[y,z,*b]||=c'...'',
|
2175
|
+
|
2176
|
+
'a[b=>c],z=d'...'',
|
2177
|
+
'a[b=>c,*d],z=e'...'',
|
2178
|
+
'a[*b],z=c'...'',
|
2179
|
+
'a[z,*b],z=c'...'',
|
2180
|
+
'a[y,z,*b],z=c'...'',
|
2181
|
+
|
2182
|
+
'a[b=>c],z=d,y'...'',
|
2183
|
+
'a[b=>c,*d],z=e,y'...'',
|
2184
|
+
'a[*b],z=c,y'...'',
|
2185
|
+
'a[z,*b],z=c,y'...'',
|
2186
|
+
'a[y,z,*b],z=c,y'...'',
|
2187
|
+
|
2188
|
+
'*a[b=>c]=d'...'',
|
2189
|
+
'*a[b=>c,*d]=e'...'',
|
2190
|
+
'*a[*b]=c'...'',
|
2191
|
+
'*a[z,*b]=c'...'',
|
2192
|
+
'*a[y,z,*b]=c'...'',
|
2193
|
+
|
2194
|
+
|
2195
|
+
'm,*a[b=>c]=d'...'',
|
2196
|
+
'm,*a[b=>c,*d]=e'...'',
|
2197
|
+
'm,*a[*b]=c'...'',
|
2198
|
+
'm,*a[z,*b]=c'...'',
|
2199
|
+
'm,*a[y,z,*b]=c'...'',
|
2200
|
+
|
2201
|
+
'm,(a[b=>c],)=d'...'',
|
2202
|
+
'm,(a[b=>c,*d],)=e'...'',
|
2203
|
+
'm,(a[*b],)=c'...'',
|
2204
|
+
'm,(a[z,*b],)=c'...'',
|
2205
|
+
'm,(a[y,z,*b],)=c'...'',
|
2206
|
+
|
2207
|
+
'for a[b=>c] in d do end'...'',
|
2208
|
+
'for a[b=>c,*d] in e do end'...'',
|
2209
|
+
'for a[*b] in c do end'...'',
|
2210
|
+
'for a[z,*b] in c do end'...'',
|
2211
|
+
'for a[y,z,*b] in c do end'...'',
|
2212
|
+
|
2213
|
+
'm{|a[b=>c]| d}'...'',
|
2214
|
+
'm{|a[b=>c,*d]| e}'...'',
|
2215
|
+
'm{|a[*b]| c}'...'',
|
2216
|
+
'm{|a[z,*b]| c}'...'',
|
2217
|
+
'm{|a[y,z,*b]| c}'...'',
|
2218
|
+
|
2219
|
+
|
2220
|
+
'm{|(a[b=>c],)| d}'...'',
|
2221
|
+
'm{|(a[b=>c,*d,)]| e}'...'',
|
2222
|
+
'm{|(a[*b],)| c}'...'',
|
2223
|
+
'm{|(a[z,*b],)| c}'...'',
|
2224
|
+
'm{|(a[y,z,*b],)| c}'...'',
|
2225
|
+
|
2226
|
+
|
2227
|
+
|
2228
|
+
|
2229
|
+
|
2230
|
+
'[b=>c]'...'',
|
2231
|
+
'[b=>c,d=>e]'...'',
|
2232
|
+
'[*b]'...'',
|
2233
|
+
|
2234
|
+
'[z,*b]'...'',
|
2235
|
+
|
2236
|
+
'[y,z,*b]'...'',
|
2237
|
+
'def a; l=if b; else; end; super *l; end'...'',
|
2238
|
+
'def a; super *c; end'...'',
|
2239
|
+
'def a; super b,*c; end'...'',
|
2240
|
+
'super *c'...'',
|
2241
|
+
'super b,*c'...'',
|
2242
|
+
'yield *c'...'',
|
2243
|
+
'yield b,*c'...'',
|
2244
|
+
'break *c'...'',
|
2245
|
+
'break b,*c'...'',
|
2246
|
+
'next *c'...'',
|
2247
|
+
'next b,*c'...'',
|
2248
|
+
' T.c[:u]=w'...'',
|
2249
|
+
'next a,b,*c do d end'...'',
|
2250
|
+
'yield a,b,*c do d end'...'',
|
2251
|
+
'break a,b,*c do d end'...'',
|
2252
|
+
'super a,b,*c do d end'...'',
|
2253
|
+
'return a,b,*c do d end'...'',
|
2254
|
+
'm{|(a[b],t)| c }'...'',
|
2255
|
+
'm{|(a[b],)| c }'...'',
|
2256
|
+
'm{|(a[],)| c }'...'',
|
2257
|
+
'z[begin; a; rescue b; end]'...'',
|
2258
|
+
'z[begin; a; rescue b; end]=c'...'',
|
2259
|
+
'z[begin; a; rescue b; end]=*c'...'',
|
2260
|
+
'*z[begin; a; rescue b; end]=*c'...'',
|
2261
|
+
'(z[begin; a; rescue b; end],)=c'...'',
|
2262
|
+
'(z[begin; a; rescue b; end],*)=c'...'',
|
2263
|
+
'(z[begin; a; rescue b; end],*f),g=c'...'',
|
2264
|
+
|
2265
|
+
'y{|z[begin; a; rescue b; end]|c}'...'',
|
2266
|
+
'(size-1).downto(0){|i| expr=self[i]}'...'',
|
2267
|
+
'self[]'...'',
|
2268
|
+
'self[a]'...'',
|
2269
|
+
'self[]=b'...'',
|
2270
|
+
'self[a]=b'...'',
|
2271
|
+
'm{|(a,)| }'...'',
|
2272
|
+
'm{|(a,b)| }'...'',
|
2273
|
+
'for (a,) in b do c end'...'',
|
2274
|
+
'm{|a,| }'...'',
|
2275
|
+
'for a, in b do c end'...'',
|
2276
|
+
'm{|((a,),),j| }'...'',
|
2277
|
+
'm{|((a,)),j| }'...'',
|
2278
|
+
'm{|(*h)| }'...'',
|
2279
|
+
'def (@@foo=bar).baz; quux end'...'',
|
2280
|
+
'def a; @@b=c; end'...'',
|
2281
|
+
'def a.b; @@c=d; end'...'',
|
2282
|
+
|
2283
|
+
'def a(b=(@@foo=bar)) end'...'',
|
2284
|
+
'def a(b=@@foo=bar) end'...'',
|
2285
|
+
'def a b=@@foo=bar; end'...'',
|
2286
|
+
'a[-b]'...'',
|
2287
|
+
'//!~a'...'',
|
2288
|
+
'%w(1067595299 955945823 477289528 4107218783 4228976476)'...'',
|
2289
|
+
|
2290
|
+
'break if /vt100/ =~ line'...'',
|
2291
|
+
'b if /vt100/ =~ line'...'',
|
2292
|
+
'/vt100/ =~ line and f'...'',
|
2293
|
+
'/vt100/ =~ line'...'',
|
2294
|
+
'BEGIN{a=1};a'...'',
|
2295
|
+
'proc{ BEGIN{a=1};a }'...'',
|
2296
|
+
'END{ BEGIN{a=1};a }'...'',
|
2297
|
+
'proc{ proc{ BEGIN{a=1};a } }'...'',
|
2298
|
+
'END{a=1};a'...'',
|
2299
|
+
'proc{ END{a=1};a }'...'',
|
2300
|
+
'BEGIN{ END{a=1};a }'...'',
|
2301
|
+
'proc{ proc{ END{a=1};a } }'...'',
|
2302
|
+
'def mo4(a, *b, &c) end'...'',
|
2303
|
+
'assert_equal "\177\377\377\377", [-2**31-1].pack("N")'...'',
|
2304
|
+
'def tt3(&b) tt2(&b) end'...'',
|
2305
|
+
'def tt3(&b) end'...'',
|
2306
|
+
'def self.defin(foo) end'...'',
|
2307
|
+
'def self.defin?(foo) end'...'',
|
2308
|
+
'def self.defined?(foo) end'...'',
|
2309
|
+
'def x.defin(foo) end'...'',
|
2310
|
+
'def x.defin?(foo) end'...'',
|
2311
|
+
'def x.defined?(foo) end'...'',
|
2312
|
+
'def defined?(foo) end'...'',
|
2313
|
+
|
2314
|
+
'def self.defin(foo) hh end'...'',
|
2315
|
+
'def self.defin?(foo) hh end'...'',
|
2316
|
+
'def self.defined?(foo) hh end'...'',
|
2317
|
+
'def x.defin(foo) hh end'...'',
|
2318
|
+
'def x.defin?(foo) hh end'...'',
|
2319
|
+
'def x.defined?(foo) hh end'...'',
|
2320
|
+
'def defined?(foo) hh end'...'',
|
2321
|
+
|
2322
|
+
'def self.defin(foo) nil end'...'',
|
2323
|
+
'def self.defin?(foo) nil end'...'',
|
2324
|
+
'def self.defined?(foo) nil end'...'',
|
2325
|
+
'def x.defin(foo) nil end'...'',
|
2326
|
+
'def x.defin?(foo) nil end'...'',
|
2327
|
+
'def x.defined?(foo) nil end'...'',
|
2328
|
+
'def defined?(foo) nil end'...'',
|
2329
|
+
|
2330
|
+
'def self.defin(foo) () end'...'',
|
2331
|
+
'def self.defin?(foo) () end'...'',
|
2332
|
+
'def self.defined?(foo) () end'...'',
|
2333
|
+
'def x.defin(foo) () end'...'',
|
2334
|
+
'def x.defin?(foo) () end'...'',
|
2335
|
+
'def x.defined?(foo) () end'...'',
|
2336
|
+
'def defined?(foo) () end'...'',
|
2337
|
+
|
2338
|
+
'def self.defin(foo) {} end'...'',
|
2339
|
+
'def self.defin?(foo) {} end'...'',
|
2340
|
+
'def self.defined?(foo) {} end'...'',
|
2341
|
+
'def x.defin(foo) {} end'...'',
|
2342
|
+
'def x.defin?(foo) {} end'...'',
|
2343
|
+
'def x.defined?(foo) {} end'...'',
|
2344
|
+
'def defined?(foo) {} end'...'',
|
2345
|
+
|
2346
|
+
'def self.defin(foo) [] end'...'',
|
2347
|
+
'def self.defin?(foo) [] end'...'',
|
2348
|
+
'def self.defined?(foo) [] end'...'',
|
2349
|
+
'def x.defin(foo) [] end'...'',
|
2350
|
+
'def x.defin?(foo) [] end'...'',
|
2351
|
+
'def x.defined?(foo) [] end'...'',
|
2352
|
+
'def defined?(foo) [] end'...'',
|
2353
|
+
|
2354
|
+
"$`"...'',
|
2355
|
+
"$'"...'',
|
2356
|
+
"$+"...'',
|
2357
|
+
"case\n when true; 4 end"...'',
|
2358
|
+
"case when true; 4 end"...'',
|
2359
|
+
'$2'...'',
|
2360
|
+
'$11'...'',
|
2361
|
+
'$111'...'',
|
2362
|
+
'$111111'...'',
|
2363
|
+
'$11111111111111111111111111111111111111111111111111111111111111111111'...'',
|
2364
|
+
'-2::c'...'',
|
2365
|
+
'-2.c'...'',
|
2366
|
+
'-2[3]'...'',
|
2367
|
+
'-2[3]=4'...'',
|
2368
|
+
'-2**3.1'...'',
|
2369
|
+
'-2**31'...'',
|
2370
|
+
'-2.7**31'...'',
|
2371
|
+
'-2e7**31'...'',
|
2372
|
+
'-2.7e8**31'...'',
|
2373
|
+
'-0**31'...'',
|
2374
|
+
'-0.0**31'...'',
|
2375
|
+
'-0e0**31'...'',
|
2376
|
+
'-0.0e0**31'...'',
|
2377
|
+
'$-1'...'',
|
2378
|
+
'$-9'...'',
|
2379
|
+
'$-0'...'',
|
2380
|
+
'$-a'...'',
|
2381
|
+
"$-\v"...'',
|
2382
|
+
'$-[]'...'',
|
2383
|
+
'a,b=(*c=b,a)'...'',
|
2384
|
+
|
2385
|
+
]
|
2386
|
+
NOTWORKINGYET=[
|
2387
|
+
#later...
|
2388
|
+
]
|
2389
|
+
|
2390
|
+
|
2391
|
+
STANZAS=%q[
|
2392
|
+
begin
|
2393
|
+
a
|
2394
|
+
rescue B=>c
|
2395
|
+
d
|
2396
|
+
else
|
2397
|
+
f
|
2398
|
+
ensure
|
2399
|
+
e
|
2400
|
+
end
|
2401
|
+
|
2402
|
+
begin
|
2403
|
+
a
|
2404
|
+
else
|
2405
|
+
f
|
2406
|
+
ensure
|
2407
|
+
e
|
2408
|
+
end
|
2409
|
+
|
2410
|
+
begin
|
2411
|
+
a
|
2412
|
+
rescue B=>c
|
2413
|
+
d
|
2414
|
+
else
|
2415
|
+
f
|
2416
|
+
end
|
2417
|
+
|
2418
|
+
begin
|
2419
|
+
a
|
2420
|
+
rescue B=>c
|
2421
|
+
d
|
2422
|
+
ensure
|
2423
|
+
e
|
2424
|
+
end
|
2425
|
+
|
2426
|
+
begin
|
2427
|
+
a
|
2428
|
+
else
|
2429
|
+
f
|
2430
|
+
end
|
2431
|
+
|
2432
|
+
begin
|
2433
|
+
a
|
2434
|
+
rescue B=>c
|
2435
|
+
d
|
2436
|
+
end
|
2437
|
+
|
2438
|
+
begin
|
2439
|
+
a
|
2440
|
+
rescue B=>c
|
2441
|
+
d
|
2442
|
+
else
|
2443
|
+
f
|
2444
|
+
end
|
2445
|
+
|
2446
|
+
begin
|
2447
|
+
a
|
2448
|
+
rescue B
|
2449
|
+
c
|
2450
|
+
end
|
2451
|
+
|
2452
|
+
begin
|
2453
|
+
a
|
2454
|
+
rescue B=>c
|
2455
|
+
end
|
2456
|
+
|
2457
|
+
begin
|
2458
|
+
a
|
2459
|
+
rescue
|
2460
|
+
b
|
2461
|
+
end
|
2462
|
+
|
2463
|
+
<<heredoc
|
2464
|
+
a b c
|
2465
|
+
heredoc
|
2466
|
+
|
2467
|
+
<<-heredoc
|
2468
|
+
heredoc
|
2469
|
+
|
2470
|
+
<<-heredoc
|
2471
|
+
a b c
|
2472
|
+
heredoc
|
2473
|
+
|
2474
|
+
<<-"heredoc"
|
2475
|
+
a b c
|
2476
|
+
heredoc
|
2477
|
+
|
2478
|
+
<<-"heredoc"
|
2479
|
+
a b c #{d}
|
2480
|
+
heredoc
|
2481
|
+
|
2482
|
+
<<-"heredoz"
|
2483
|
+
a b c #{d}
|
2484
|
+
heredoz
|
2485
|
+
|
2486
|
+
<<-'heredoc'
|
2487
|
+
a b c
|
2488
|
+
heredoc
|
2489
|
+
|
2490
|
+
<<-'heredoc'
|
2491
|
+
a b c #{d}
|
2492
|
+
heredoc
|
2493
|
+
|
2494
|
+
<<-`heredoc`
|
2495
|
+
a b c
|
2496
|
+
heredoc
|
2497
|
+
|
2498
|
+
<<`heredoc`
|
2499
|
+
a b c
|
2500
|
+
heredoc
|
2501
|
+
|
2502
|
+
<<-`heredoc`
|
2503
|
+
a b c #{d}
|
2504
|
+
heredoc
|
2505
|
+
|
2506
|
+
<<`heredoc`
|
2507
|
+
a b c #{d}
|
2508
|
+
heredoc
|
2509
|
+
|
2510
|
+
p(<<-heredoc)
|
2511
|
+
a b c
|
2512
|
+
heredoc
|
2513
|
+
|
2514
|
+
p <<-heredoc
|
2515
|
+
a b c
|
2516
|
+
heredoc
|
2517
|
+
|
2518
|
+
p <<-heredoc + "dfgsf"
|
2519
|
+
a b c
|
2520
|
+
heredoc
|
2521
|
+
|
2522
|
+
p <<-heredoc + "sdfsdF" and 5
|
2523
|
+
a b c
|
2524
|
+
heredoc
|
2525
|
+
|
2526
|
+
p <<-heredoc "x y z" and 5
|
2527
|
+
a b c
|
2528
|
+
heredoc
|
2529
|
+
|
2530
|
+
=begin
|
2531
|
+
=end
|
2532
|
+
|
2533
|
+
=begin a
|
2534
|
+
b
|
2535
|
+
=end c
|
2536
|
+
|
2537
|
+
if a
|
2538
|
+
then b
|
2539
|
+
else c
|
2540
|
+
end
|
2541
|
+
|
2542
|
+
if a;
|
2543
|
+
then b
|
2544
|
+
else c
|
2545
|
+
end
|
2546
|
+
|
2547
|
+
if a; then b
|
2548
|
+
else c
|
2549
|
+
end
|
2550
|
+
|
2551
|
+
if a
|
2552
|
+
then b else c
|
2553
|
+
end
|
2554
|
+
|
2555
|
+
if a
|
2556
|
+
else c
|
2557
|
+
end
|
2558
|
+
|
2559
|
+
if a; else c
|
2560
|
+
end
|
2561
|
+
|
2562
|
+
if
|
2563
|
+
a
|
2564
|
+
then
|
2565
|
+
b
|
2566
|
+
end
|
2567
|
+
|
2568
|
+
if
|
2569
|
+
a
|
2570
|
+
then
|
2571
|
+
b
|
2572
|
+
else
|
2573
|
+
c
|
2574
|
+
end
|
2575
|
+
|
2576
|
+
<<-foo+<<-bar
|
2577
|
+
a b c
|
2578
|
+
foo
|
2579
|
+
d e f
|
2580
|
+
bar
|
2581
|
+
|
2582
|
+
<<-foo+'123
|
2583
|
+
abc
|
2584
|
+
foo
|
2585
|
+
456'
|
2586
|
+
|
2587
|
+
case a
|
2588
|
+
when b
|
2589
|
+
then c
|
2590
|
+
end
|
2591
|
+
|
2592
|
+
|
2593
|
+
case
|
2594
|
+
a
|
2595
|
+
when
|
2596
|
+
b
|
2597
|
+
then
|
2598
|
+
c
|
2599
|
+
end
|
2600
|
+
|
2601
|
+
case
|
2602
|
+
a;
|
2603
|
+
when
|
2604
|
+
b;
|
2605
|
+
then
|
2606
|
+
c;
|
2607
|
+
end
|
2608
|
+
|
2609
|
+
result=[
|
2610
|
+
MethNameToken.new(old.ident,old.offset),
|
2611
|
+
ImplicitParamListStartToken.new(input_position),
|
2612
|
+
ImplicitParamListEndToken.new(input_position),
|
2613
|
+
*ignored_tokens
|
2614
|
+
]
|
2615
|
+
|
2616
|
+
%r{^(
|
2617
|
+
class|module|end|self|true|false|nil|def|
|
2618
|
+
__FILE__|__LINE__|(\\})\\)
|
2619
|
+
)$}x
|
2620
|
+
|
2621
|
+
/sdf
|
2622
|
+
sdf
|
2623
|
+
sdfsdf
|
2624
|
+
sdfsf/
|
2625
|
+
|
2626
|
+
/sdf
|
2627
|
+
sdf\\
|
2628
|
+
sdfsdf
|
2629
|
+
sdfsf/
|
2630
|
+
|
2631
|
+
def evaluate rule,stack
|
2632
|
+
#dissect the rule
|
2633
|
+
rescue Exception
|
2634
|
+
puts "error while executing rule: #{}"
|
2635
|
+
end
|
2636
|
+
|
2637
|
+
def self.has_return_hash_fix?
|
2638
|
+
rl=RubyLexer.new("","return {}.size")
|
2639
|
+
end
|
2640
|
+
|
2641
|
+
%[\\
|
2642
|
+
]
|
2643
|
+
|
2644
|
+
%q[\\
|
2645
|
+
]
|
2646
|
+
|
2647
|
+
%Q[\\
|
2648
|
+
]
|
2649
|
+
|
2650
|
+
%r[\\
|
2651
|
+
]
|
2652
|
+
|
2653
|
+
%s[\\
|
2654
|
+
]
|
2655
|
+
|
2656
|
+
%x[\\
|
2657
|
+
]
|
2658
|
+
|
2659
|
+
%w[\\
|
2660
|
+
]
|
2661
|
+
|
2662
|
+
%w[
|
2663
|
+
]
|
2664
|
+
|
2665
|
+
/\\
|
2666
|
+
/
|
2667
|
+
|
2668
|
+
%r[\\
|
2669
|
+
]
|
2670
|
+
|
2671
|
+
%W[\\
|
2672
|
+
]
|
2673
|
+
|
2674
|
+
%W[a\\
|
2675
|
+
]
|
2676
|
+
|
2677
|
+
%W[a b\\
|
2678
|
+
]
|
2679
|
+
|
2680
|
+
%W[a b \\
|
2681
|
+
]
|
2682
|
+
|
2683
|
+
%W[
|
2684
|
+
]
|
2685
|
+
|
2686
|
+
"\\C-\\
|
2687
|
+
"
|
2688
|
+
|
2689
|
+
:"
|
2690
|
+
"
|
2691
|
+
|
2692
|
+
p "#{__FILE__}"
|
2693
|
+
p "#{__LINE__}"
|
2694
|
+
|
2695
|
+
a b, c
|
2696
|
+
__END__
|
2697
|
+
d e, f
|
2698
|
+
|
2699
|
+
a b, c
|
2700
|
+
=begin x
|
2701
|
+
y
|
2702
|
+
=end z
|
2703
|
+
__END__
|
2704
|
+
d e, f
|
2705
|
+
|
2706
|
+
a{<<-f;b}
|
2707
|
+
#{b=1}
|
2708
|
+
f
|
2709
|
+
|
2710
|
+
a{<<-f;b}+
|
2711
|
+
#{b=1}
|
2712
|
+
f
|
2713
|
+
c
|
2714
|
+
|
2715
|
+
a{<<-f;b}\\
|
2716
|
+
#{b=1}
|
2717
|
+
f
|
2718
|
+
+c
|
2719
|
+
|
2720
|
+
funcnames.collect{|fn| <<-endeval; hn }.to_s(fn,hn,gn=1)
|
2721
|
+
#{fn} #{gn} #{hn=2}
|
2722
|
+
endeval
|
2723
|
+
p fn,gn,hn
|
2724
|
+
|
2725
|
+
<<-foo+"str"
|
2726
|
+
foo
|
2727
|
+
|
2728
|
+
BEGIN {
|
2729
|
+
puts "b1"
|
2730
|
+
local_begin1 = "local_begin1"
|
2731
|
+
$global_begin1 = "global_begin1"
|
2732
|
+
ConstBegin1 = "ConstBegin1"
|
2733
|
+
}
|
2734
|
+
BEGIN {
|
2735
|
+
puts "b2"
|
2736
|
+
BEGIN {
|
2737
|
+
puts "b2-1"
|
2738
|
+
local_begin2=33
|
2739
|
+
}
|
2740
|
+
}
|
2741
|
+
# for scope check
|
2742
|
+
raise if defined?(local_begin1)
|
2743
|
+
raise if defined?(local_begin2)
|
2744
|
+
raise unless defined?($global_begin1)
|
2745
|
+
raise unless defined?(::ConstBegin1)
|
2746
|
+
local_for_end2 = "e2"
|
2747
|
+
$global_for_end1 = "e1"
|
2748
|
+
|
2749
|
+
END {
|
2750
|
+
puts "b1"
|
2751
|
+
local_begin1 = "local_begin1"
|
2752
|
+
$global_begin1 = "global_begin1"
|
2753
|
+
ConstBegin1 = "ConstBegin1"
|
2754
|
+
}
|
2755
|
+
END {
|
2756
|
+
puts "b2"
|
2757
|
+
END {
|
2758
|
+
puts "b2-1"
|
2759
|
+
local_begin2=33
|
2760
|
+
}
|
2761
|
+
}
|
2762
|
+
# for scope check
|
2763
|
+
raise if defined?(local_begin1)
|
2764
|
+
raise if defined?(local_begin2)
|
2765
|
+
raise unless defined?($global_begin1)
|
2766
|
+
raise unless defined?(::ConstBegin1)
|
2767
|
+
local_for_end2 = "e2"
|
2768
|
+
$global_for_end1 = "e1"
|
2769
|
+
|
2770
|
+
events=[]
|
2771
|
+
set_trace_func(Proc.new { |event, file, lineno, mid, bidning, klass|
|
2772
|
+
events << [event, lineno, mid, klass]
|
2773
|
+
})
|
2774
|
+
a = 1
|
2775
|
+
foo
|
2776
|
+
a
|
2777
|
+
b = 1 + 2
|
2778
|
+
if b == 3
|
2779
|
+
case b
|
2780
|
+
when 2
|
2781
|
+
c = "b == 2"
|
2782
|
+
when 3
|
2783
|
+
c = "b == 3"
|
2784
|
+
end
|
2785
|
+
end
|
2786
|
+
|
2787
|
+
proc{q=1;def q.foo; end} #q should be varnametoken, both times
|
2788
|
+
module Defined_p_syntax_tests
|
2789
|
+
def self.defined?(foo) :baz end #should be methname
|
2790
|
+
def defined?(foo) :bar end #should be methname
|
2791
|
+
def ameth
|
2792
|
+
p(defined? 44) #should be keyword
|
2793
|
+
p(self.defined? 44) #should be methname
|
2794
|
+
end
|
2795
|
+
end
|
2796
|
+
|
2797
|
+
def x# [ruby-dev:24228]
|
2798
|
+
assert_nothing_raised {
|
2799
|
+
def temporally_method_for_test_eval_and_define_method(&block)
|
2800
|
+
lambda {
|
2801
|
+
class << Object.new; self end.__send__(:define_method, :zzz, &block)
|
2802
|
+
}
|
2803
|
+
end
|
2804
|
+
v = eval("temporally_method_for_test_eval_and_define_method {}")
|
2805
|
+
{}[0] = {}
|
2806
|
+
v.call
|
2807
|
+
}
|
2808
|
+
end
|
2809
|
+
|
2810
|
+
def tt3(&block)
|
2811
|
+
tt2(raise(ArgumentError,""),&block)
|
2812
|
+
end
|
2813
|
+
|
2814
|
+
|
2815
|
+
def test_char
|
2816
|
+
# character constants(assumes ASCII)
|
2817
|
+
assert_equal(?a, "a"[0])
|
2818
|
+
assert_equal(?a, ?a)
|
2819
|
+
assert_equal(1, ?\\C-a)
|
2820
|
+
assert_equal(225, ?\\M-a)
|
2821
|
+
assert_equal(129, ?\\M-\\C-a)
|
2822
|
+
assert_equal(?A, "a".upcase![0])
|
2823
|
+
assert_equal(?a, "A".downcase![0])
|
2824
|
+
assert_equal("ABC", "abc".tr!("a-z", "A-Z"))
|
2825
|
+
assert_equal("ABC", "aabbcccc".tr_s!("a-z", "A-Z"))
|
2826
|
+
assert_equal("abc", "abcc".squeeze!("a-z"))
|
2827
|
+
assert_equal("ad", "abcd".delete!("bc"))
|
2828
|
+
$x = "abcdef"
|
2829
|
+
$y = [ ?a, ?b, ?c, ?d, ?e, ?f ]
|
2830
|
+
$bad = false
|
2831
|
+
$x.each_byte {|i|
|
2832
|
+
if i != $y.shift
|
2833
|
+
$bad = true
|
2834
|
+
break
|
2835
|
+
end
|
2836
|
+
}
|
2837
|
+
assert(!$bad)
|
2838
|
+
s = "a string"
|
2839
|
+
s[0..s.size]="another string"
|
2840
|
+
assert_equal("another string", s)
|
2841
|
+
s = <<EOS
|
2842
|
+
#{
|
2843
|
+
[1,2,3].join(",")
|
2844
|
+
}
|
2845
|
+
EOS
|
2846
|
+
assert_equal("1,2,3\\n", s)
|
2847
|
+
assert_equal(926381, "Just".to_i(36))
|
2848
|
+
assert_equal(-23200231779, "-another".to_i(36))
|
2849
|
+
assert_equal("ruby", 1299022.to_s(36))
|
2850
|
+
assert_equal("-hacker", -1045307475.to_s(36))
|
2851
|
+
assert_equal(265419172580680477752431643787347, "Just_another_Ruby_hacker".to_i(36))
|
2852
|
+
assert_equal("-justanotherrubyhacker", -265419172580680477752431643787347.to_s(36))
|
2853
|
+
a = []
|
2854
|
+
(0..255).each {|n|
|
2855
|
+
ch = [n].pack("C")
|
2856
|
+
a.push ch if /a#{Regexp.quote ch}b/x =~ "ab"
|
2857
|
+
}
|
2858
|
+
assert_equal(0, a.size)
|
2859
|
+
end
|
2860
|
+
|
2861
|
+
/:(\\d+)/ =~ caller[0]
|
2862
|
+
file = $`
|
2863
|
+
line = $1.to_i
|
2864
|
+
code = <<"End"
|
2865
|
+
define_method("test_id2ref_#{line}") {\\
|
2866
|
+
o = ObjectSpace._id2ref(obj.object_id);\\
|
2867
|
+
assert_same(obj, o, "didn't round trip: \\#{obj.inspect}");\\
|
2868
|
+
}
|
2869
|
+
End
|
2870
|
+
|
2871
|
+
assert(begin
|
2872
|
+
for k,v in y
|
2873
|
+
raise if k*2 != v
|
2874
|
+
end
|
2875
|
+
true
|
2876
|
+
rescue
|
2877
|
+
false
|
2878
|
+
end)
|
2879
|
+
|
2880
|
+
case
|
2881
|
+
when true
|
2882
|
+
assert(true)
|
2883
|
+
when false, nil
|
2884
|
+
assert(false)
|
2885
|
+
else
|
2886
|
+
assert(false)
|
2887
|
+
end
|
2888
|
+
|
2889
|
+
def test_endblockwarn
|
2890
|
+
ruby = EnvUtil.rubybin
|
2891
|
+
# Use Tempfile to create temporary file path.
|
2892
|
+
launcher = Tempfile.new(self.class.name)
|
2893
|
+
errout = Tempfile.new(self.class.name)
|
2894
|
+
launcher << <<EOF
|
2895
|
+
errout = ARGV.shift
|
2896
|
+
STDERR.reopen(File.open(errout, "w"))
|
2897
|
+
STDERR.sync = true
|
2898
|
+
Dir.chdir(#{q(DIR)})
|
2899
|
+
cmd = "\\"#{ruby}\\" \\"endblockwarn.rb\\""
|
2900
|
+
system(cmd)
|
2901
|
+
EOF
|
2902
|
+
launcher.close
|
2903
|
+
launcherpath = launcher.path
|
2904
|
+
errout.close
|
2905
|
+
erroutpath = errout.path
|
2906
|
+
system("#{q(ruby)} #{q(launcherpath)} #{q(erroutpath)}")
|
2907
|
+
expected = <<EOW
|
2908
|
+
endblockwarn.rb:2: warning: END in method; use at_exit
|
2909
|
+
(eval):2: warning: END in method; use at_exit
|
2910
|
+
EOW
|
2911
|
+
assert_equal(expected, File.read(erroutpath))
|
2912
|
+
# expecting Tempfile to unlink launcher and errout file.
|
2913
|
+
end
|
2914
|
+
|
2915
|
+
module TYDFG
|
2916
|
+
p a ;
|
2917
|
+
end
|
2918
|
+
|
2919
|
+
p <<ggg; def
|
2920
|
+
kleegarts() p 'kkkkkkk' end
|
2921
|
+
dfgdgfdf
|
2922
|
+
ggg
|
2923
|
+
koomblatz!() p 'jdkfsk' end
|
2924
|
+
|
2925
|
+
class
|
2926
|
+
A; end
|
2927
|
+
|
2928
|
+
module
|
2929
|
+
A; end
|
2930
|
+
|
2931
|
+
class
|
2932
|
+
A<B; end
|
2933
|
+
|
2934
|
+
undef
|
2935
|
+
A
|
2936
|
+
|
2937
|
+
undef
|
2938
|
+
A,B
|
2939
|
+
|
2940
|
+
def
|
2941
|
+
A; b end
|
2942
|
+
|
2943
|
+
alias
|
2944
|
+
q
|
2945
|
+
p
|
2946
|
+
|
2947
|
+
alias
|
2948
|
+
q p
|
2949
|
+
|
2950
|
+
p <<'p'
|
2951
|
+
\\n\\t\\r\\v\\\\
|
2952
|
+
p
|
2953
|
+
|
2954
|
+
p 1==2
|
2955
|
+
p 1===2
|
2956
|
+
p 1[2] #keyword
|
2957
|
+
p 1;2 #keyword
|
2958
|
+
p 1,2 #keyword
|
2959
|
+
p 1.2
|
2960
|
+
|
2961
|
+
before_time = Time.now
|
2962
|
+
ARGV.each do |fname|
|
2963
|
+
if fname == '-v'
|
2964
|
+
verbose = true
|
2965
|
+
next
|
2966
|
+
end
|
2967
|
+
rss = nil
|
2968
|
+
f = File.new(fname).read
|
2969
|
+
begin
|
2970
|
+
## do validate parse
|
2971
|
+
rss = RSS::Parser.parse(f)
|
2972
|
+
rescue RSS::InvalidRSSError
|
2973
|
+
error($!) if verbose
|
2974
|
+
## do non validate parse for invalid RSS 1.0
|
2975
|
+
begin
|
2976
|
+
rss = RSS::Parser.parse(f, false)
|
2977
|
+
rescue RSS::Error
|
2978
|
+
## invalid RSS.
|
2979
|
+
error($!) if verbose
|
2980
|
+
end
|
2981
|
+
rescue RSS::Error
|
2982
|
+
error($!) if verbose
|
2983
|
+
end
|
2984
|
+
end
|
2985
|
+
|
2986
|
+
begin
|
2987
|
+
lcode = IO::readlines( @xGAsaFile.untaint ).untaint
|
2988
|
+
code = lcode.join( " " )
|
2989
|
+
@oAspHandler.load_code( code )
|
2990
|
+
rescue => e
|
2991
|
+
if Asp::Common::debug == 1
|
2992
|
+
result = @oApacheRequest.escape_html(e.message)
|
2993
|
+
@oApacheRequest.server.log_error( "[Ruby/ASP] [%d] : (%s #%d) : %s", $$, __FILE__, __LINE__, result )
|
2994
|
+
end
|
2995
|
+
return false
|
2996
|
+
end
|
2997
|
+
|
2998
|
+
begin
|
2999
|
+
xOutCode = @oXmlScript.script( xCode )
|
3000
|
+
rescue XmlScriptError => e
|
3001
|
+
@error_line = e.line
|
3002
|
+
@error_message = e.message
|
3003
|
+
end
|
3004
|
+
|
3005
|
+
location_display = if(location.size == 1)
|
3006
|
+
location[0].sub(/\A(.+:\d+).*/, ' [\\1]')
|
3007
|
+
else
|
3008
|
+
"\n#{location.join("\n")}"
|
3009
|
+
end
|
3010
|
+
"Failure:\n#@test_name#{location_display}:\n#@message"
|
3011
|
+
|
3012
|
+
def parse_date(aString)
|
3013
|
+
return Time.rfc822(aString) rescue Time.parse(aString)
|
3014
|
+
end
|
3015
|
+
|
3016
|
+
%w(
|
3017
|
+
CVS SCCS)
|
3018
|
+
|
3019
|
+
raise AttributeConstraintError(
|
3020
|
+
)
|
3021
|
+
|
3022
|
+
raise AttributeConstraintError( #and a comment here
|
3023
|
+
)
|
3024
|
+
|
3025
|
+
raise AttributeConstraintError( #and a comment here
|
3026
|
+
#and here
|
3027
|
+
)
|
3028
|
+
|
3029
|
+
raise AttributeConstraintError( #and a comment here
|
3030
|
+
#and here
|
3031
|
+
=begin
|
3032
|
+
=end
|
3033
|
+
)
|
3034
|
+
|
3035
|
+
raise AttributeConstraintError( #and a comment here
|
3036
|
+
#and here
|
3037
|
+
=begin
|
3038
|
+
and here too
|
3039
|
+
=end
|
3040
|
+
)
|
3041
|
+
|
3042
|
+
raise AttributeConstraintError( #and a comment here
|
3043
|
+
#and here
|
3044
|
+
=begin look!
|
3045
|
+
and here too
|
3046
|
+
=end
|
3047
|
+
)
|
3048
|
+
|
3049
|
+
raise AttributeConstraintError( #and a comment here
|
3050
|
+
#and here
|
3051
|
+
=begin
|
3052
|
+
and here too
|
3053
|
+
=end look!
|
3054
|
+
)
|
3055
|
+
|
3056
|
+
raise AttributeConstraintError( #and a comment here
|
3057
|
+
#and here
|
3058
|
+
=begin look!
|
3059
|
+
and here too
|
3060
|
+
=end look!
|
3061
|
+
)
|
3062
|
+
|
3063
|
+
l rescue
|
3064
|
+
r
|
3065
|
+
|
3066
|
+
undef new_master, new_slave, new_safe_slave
|
3067
|
+
undef new_trusted_slave, new_safeTk
|
3068
|
+
|
3069
|
+
"\\xa5\\xaa\\xa5\\xd6\\xa5\\xb8\\xa5\\xa7\\xa5\\xaf\\xa5\\xc8\\xbb\\xd8\\xb8\\xfe\\
|
3070
|
+
\\xa5\\xb9\\xa5\\xaf\\xa5\\xea\\xa5\\xd7\\xa5\\xc8\\xb8\\xc0\\xb8\\xec\\
|
3071
|
+
Ruby"
|
3072
|
+
|
3073
|
+
"f"
|
3074
|
+
d
|
3075
|
+
|
3076
|
+
begin; rescue A=>b.c
|
3077
|
+
end
|
3078
|
+
|
3079
|
+
%W[#{G}
|
3080
|
+
Z]
|
3081
|
+
|
3082
|
+
<<-EOS<<__LINE__
|
3083
|
+
EOS
|
3084
|
+
|
3085
|
+
] ##############################END OF STANZAS#################################################
|
3086
|
+
###############################################################################################
|
3087
|
+
|
3088
|
+
|
3089
|
+
SINGLE_OPEN2CLOSE={
|
3090
|
+
"'"=>"'",
|
3091
|
+
":'"=>"'",
|
3092
|
+
'%q['=>']',
|
3093
|
+
'%s['=>']',
|
3094
|
+
'%w['=>']',
|
3095
|
+
}
|
3096
|
+
DOUBLE_OPEN2CLOSE={
|
3097
|
+
'"'=>'"',
|
3098
|
+
':"'=>'"',
|
3099
|
+
'`'=>'`',
|
3100
|
+
'/'=>'/',
|
3101
|
+
'%['=>']',
|
3102
|
+
'%Q['=>']',
|
3103
|
+
'%r['=>']',
|
3104
|
+
'%x['=>']',
|
3105
|
+
'%W['=>']',
|
3106
|
+
''=>'',
|
3107
|
+
}
|
3108
|
+
DOUBLE_CHAR_DECORATORS=['\c','\C-','\M-']
|
3109
|
+
SINGLE_CHAR_DECORATORS=['\\','']
|
3110
|
+
CHAR_DECORATORS=SINGLE_CHAR_DECORATORS+DOUBLE_CHAR_DECORATORS
|
3111
|
+
ESC_SEQS=[]
|
3112
|
+
(0..0x7F).each{|ch| ch=ch.chr
|
3113
|
+
SINGLE_OPEN2CLOSE.each_pair{|open,close|
|
3114
|
+
#next if "\0"==ch and /^(:|%s)/===open
|
3115
|
+
SINGLE_CHAR_DECORATORS.each{|dec|
|
3116
|
+
ESC_SEQS << open+dec+ch+close #unless dec=='' and (open+close)[ch]
|
3117
|
+
}
|
3118
|
+
}
|
3119
|
+
DOUBLE_OPEN2CLOSE.each_pair{|open,close|
|
3120
|
+
#next if /[xcCM0-7]/===ch
|
3121
|
+
#next if "\0"==ch and /^:/===open
|
3122
|
+
CHAR_DECORATORS.each{|dec|
|
3123
|
+
#next if dec=='' and (open+close)[ch]
|
3124
|
+
ESC_SEQS << open+dec+"\\"+ch+close
|
3125
|
+
ESC_SEQS << open+dec+ch+close #unless %r{^(/|%r)}===open
|
3126
|
+
}
|
3127
|
+
num=CHAR_DECORATORS.size
|
3128
|
+
ESC_SEQS << open+(0...rand(num)).inject(ch){|sum,i|
|
3129
|
+
CHAR_DECORATORS[rand(num)]+sum
|
3130
|
+
}+close
|
3131
|
+
}
|
3132
|
+
} unless ENV['FAST']
|
3133
|
+
|
3134
|
+
from_rubinius=[]
|
3135
|
+
if File.exist? "../rubinius"
|
3136
|
+
load "../rubinius/spec/parser/fixtures/sexp_expectations.rb"
|
3137
|
+
from_rubinius=SEXP_EXPECTATIONS.values.map{|v| v["Ruby"] }
|
3138
|
+
end
|
3139
|
+
|
3140
|
+
EXAMPLES=ONELINERS.map{|rng| rng.first}+STANZAS.split(/\n( *\n)+/)+TestCases::TESTCASES+
|
3141
|
+
from_rubinius #+ESC_SEQS
|
3142
|
+
|
3143
|
+
WRAPPERS=[ #enable at most 2 or tests take forever!!!
|
3144
|
+
'(...)', #normal mode, should usually be enabled
|
3145
|
+
# 'a0 = (...) rescue b0',
|
3146
|
+
# 'a0 = ((...)) rescue b0',
|
3147
|
+
# '(...) #with a comment',
|
3148
|
+
# "(...)#with comment and newline\n",
|
3149
|
+
# "(...)\n",
|
3150
|
+
# "(...);p __LINE__",
|
3151
|
+
# "defined? (...)",
|
3152
|
+
# "a=a (...)",
|
3153
|
+
# "b=1;b (...)",
|
3154
|
+
# "return (...)"
|
3155
|
+
]
|
3156
|
+
INJECTABLES=[ #take it easy with these too
|
3157
|
+
# 'p (1..10).method(:each)',
|
3158
|
+
# 'a0 rescue b0',
|
3159
|
+
# 'begin; r; t end',
|
3160
|
+
# 'a=b,c=d',
|
3161
|
+
]
|
3162
|
+
puts "warning: most data fuzzing is disabled for now"
|
3163
|
+
puts "warning: unparser tests disabled for now"
|
3164
|
+
|
3165
|
+
RUBYIDENT=/((?:$|@@?)?[a-z_][a-z_0-9]*[?!]?)/i
|
3166
|
+
|
3167
|
+
def self.snippet2testmethod(snippet)
|
3168
|
+
escaped=snippet.gsub(/[\\']/){"\\"+$&}
|
3169
|
+
safe=escaped.gsub(/([^ -~])/){
|
3170
|
+
x=$1[0].to_s(16)
|
3171
|
+
x.size==1 and x="0"+x
|
3172
|
+
"\\x"+x
|
3173
|
+
}
|
3174
|
+
safe.gsub! /\\\\/,"__"
|
3175
|
+
safe[/[^ -~]|\\\\/] and fail
|
3176
|
+
"
|
3177
|
+
define_method 'test_parsing_of_#{safe}' do
|
3178
|
+
#puts 'test_parsing_of_#{safe}'
|
3179
|
+
pt=ParseTree.new
|
3180
|
+
check_parsing '#{escaped}',pt
|
3181
|
+
end
|
3182
|
+
"
|
3183
|
+
end
|
3184
|
+
|
3185
|
+
i=0
|
3186
|
+
code=EXAMPLES.map{|xmpl|
|
3187
|
+
#remove comment if present
|
3188
|
+
/\A(.*)\s*\Z/===xmpl and xmpl=$1
|
3189
|
+
#remove x{...} wrapper if present
|
3190
|
+
/\A\s*x\s*\{(.*)\}\Z/===xmpl and xmpl=$1
|
3191
|
+
# xmpl= (xmpl[/\A\s*x\s*\{(.*)\}\s*(#.*)?\Z/,1] rescue xmpl)
|
3192
|
+
|
3193
|
+
wrapped=WRAPPERS.map{|wrap|
|
3194
|
+
#apply wrapper
|
3195
|
+
snippet2testmethod(wrap.gsub('(...)', xmpl))
|
3196
|
+
}
|
3197
|
+
injected=INJECTABLES.map{|inj|
|
3198
|
+
xlist=xmpl.split(RUBYIDENT)
|
3199
|
+
if xlist.size>1
|
3200
|
+
i=rand(xlist.size&~1)|1
|
3201
|
+
i&1==1 or fail
|
3202
|
+
/\A#{RUBYIDENT}\Z/o===xlist[i] or fail
|
3203
|
+
xlist[i]=inj
|
3204
|
+
snippet2testmethod(xlist.to_s)
|
3205
|
+
end
|
3206
|
+
}
|
3207
|
+
wrapped+injected
|
3208
|
+
}.to_s
|
3209
|
+
#puts code.split("\n")[5880..5890].join("\n")
|
3210
|
+
eval code
|
3211
|
+
|
3212
|
+
def test_case_that_segfaults_ruby185
|
3213
|
+
assert_equal \
|
3214
|
+
[[:op_asgn1, [:call, [:vcall, :a], :b], [:zarray], :%, [:vcall, :d]]],
|
3215
|
+
RedParse.new('a.b[]%=d','-').parse.to_parsetree(:quirks)
|
3216
|
+
end
|
3217
|
+
|
3218
|
+
def test_case_that_segfaults_ruby186_slash_parsetree211
|
3219
|
+
assert_equal [[:cdecl, [:colon3, :B], [:lit,1]]],
|
3220
|
+
RedParse.new('::B=1','-').parse.to_parsetree(:quirks)
|
3221
|
+
assert_equal [[:cdecl, [:colon2, [:const, :A], :B], [:lit,1]]],
|
3222
|
+
RedParse.new('A::B=1','-').parse.to_parsetree(:quirks)
|
3223
|
+
end
|
3224
|
+
|
3225
|
+
def test_case_that_segfaults_ruby187_slash_parsetree220
|
3226
|
+
assert_equal [[:iter, [:fcall, :Proc], [:block_pass, [:dasgn_curr, :b], 0]]],
|
3227
|
+
RedParse.new('Proc{|&b|}','-').parse.to_parsetree(:quirks)
|
3228
|
+
end
|
3229
|
+
|
3230
|
+
def assert_hopefully_raises_Exception xmpl
|
3231
|
+
begin
|
3232
|
+
yield
|
3233
|
+
rescue Exception
|
3234
|
+
assert true
|
3235
|
+
else
|
3236
|
+
puts "warning: syntax error expected, but none was seen, expression: <<< #{xmpl} >>>"
|
3237
|
+
end
|
3238
|
+
end
|
3239
|
+
|
3240
|
+
BEGIN{p Dir.getwd; File.unlink "problemexprs" rescue nil}
|
3241
|
+
def problem_exprs
|
3242
|
+
@problem_exprs||=nil
|
3243
|
+
return @problem_exprs if @problem_exprs
|
3244
|
+
|
3245
|
+
@problem_exprs=File.open("problemexprs","a")
|
3246
|
+
|
3247
|
+
rescue Exception
|
3248
|
+
@problem_exprs=$stdout
|
3249
|
+
end
|
3250
|
+
|
3251
|
+
def check_parsing xmpl,pt=ParseTree.new
|
3252
|
+
/unparse/===xmpl and warn 'unparse in parser test data!'
|
3253
|
+
problem_exprs=problem_exprs()
|
3254
|
+
=begin
|
3255
|
+
xmpl=<<-prefix+xmpl+<<-suffix
|
3256
|
+
BEGIN{throw :never_exec_parse_data_try1,1}
|
3257
|
+
BEGIN{throw :never_exec_parse_data_try2,2}
|
3258
|
+
BEGIN{throw :never_exec_parse_data_try3,3}
|
3259
|
+
BEGIN{raise "never_exec_parse_data_try4"}
|
3260
|
+
BEGIN{raise "never_exec_parse_data_try5"}
|
3261
|
+
prefix
|
3262
|
+
;0
|
3263
|
+
suffix
|
3264
|
+
=end
|
3265
|
+
# tree=nil
|
3266
|
+
# output=false
|
3267
|
+
# loops=0
|
3268
|
+
begin
|
3269
|
+
# output=
|
3270
|
+
# catch(:never_exec_parse_data_try1){
|
3271
|
+
# catch(:never_exec_parse_data_try2){
|
3272
|
+
# catch(:never_exec_parse_data_try3){
|
3273
|
+
tree=pt.parse_tree_for_string(xmpl)
|
3274
|
+
# }
|
3275
|
+
# }
|
3276
|
+
# }
|
3277
|
+
# break if loops+=1 > 3
|
3278
|
+
rescue Interrupt: raise
|
3279
|
+
rescue Exception=>e:
|
3280
|
+
#raise "last gasp ParseTree exec catcher failed!"
|
3281
|
+
tree=e
|
3282
|
+
tree2=nodes=nil
|
3283
|
+
assert_hopefully_raises_Exception(xmpl){
|
3284
|
+
nodes=RedParse.new(xmpl,"-").parse
|
3285
|
+
tree2=nodes.to_parsetree(:quirks)
|
3286
|
+
}
|
3287
|
+
else
|
3288
|
+
begin
|
3289
|
+
nodes=RedParse.new(xmpl,"-").parse
|
3290
|
+
tree2=nodes.to_parsetree(:quirks)
|
3291
|
+
assert_equal tree, tree2
|
3292
|
+
rescue Exception=>e
|
3293
|
+
if problem_exprs
|
3294
|
+
problem_exprs.write xmpl+"\n"
|
3295
|
+
problem_exprs.flush
|
3296
|
+
end
|
3297
|
+
raise e
|
3298
|
+
else
|
3299
|
+
if false and problem_exprs and tree!=tree2
|
3300
|
+
problem_exprs.write xmpl+"\n"
|
3301
|
+
problem_exprs.flush
|
3302
|
+
end
|
3303
|
+
end #rescue false
|
3304
|
+
|
3305
|
+
end #until output.equal? tree
|
3306
|
+
|
3307
|
+
return #skip unparse tests for now
|
3308
|
+
|
3309
|
+
reparsed= RedParse.new(nodes.unparse({}),"-").parse
|
3310
|
+
assert_equal nodes.delete_extraneous_ivars!,
|
3311
|
+
reparsed.delete_extraneous_ivars!
|
3312
|
+
|
3313
|
+
tree3=reparsed.to_parsetree(:quirks)
|
3314
|
+
assert_equal tree, tree3
|
3315
|
+
|
3316
|
+
# rescue Exception=>e:
|
3317
|
+
# raise "error: #{e}:#{e.class} while testing '#{xmpl}'"
|
3318
|
+
end
|
3319
|
+
end
|