redparse 0.8.3 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +63 -4
- data/Makefile +43 -0
- data/README.txt +101 -166
- data/Rakefile +1 -1
- data/bin/redparse +49 -21
- data/lib/redparse.rb +88 -1654
- data/lib/redparse/cache.rb +172 -0
- data/lib/redparse/compile.rb +1648 -0
- data/lib/redparse/float_accurate_to_s.rb +162 -0
- data/lib/redparse/generate.rb +6 -2
- data/lib/redparse/node.rb +677 -397
- data/lib/redparse/parse_tree_server.rb +129 -0
- data/lib/redparse/pthelper.rb +43 -0
- data/lib/redparse/reg_more_sugar.rb +5 -5
- data/lib/redparse/version.rb +1 -1
- data/redparse.gemspec +43 -0
- data/test/data/skkdictools.rb +3 -0
- data/test/generate_parse_tree_server_rc.rb +43 -0
- data/test/rp-locatetest.rb +41 -1
- data/test/test_1.9.rb +114 -0
- data/test/test_all.rb +3 -0
- data/test/test_redparse.rb +283 -124
- data/test/test_xform_tree.rb +66 -0
- metadata +57 -56
data/History.txt
CHANGED
@@ -1,4 +1,63 @@
|
|
1
|
-
=== 0.8.
|
1
|
+
=== 0.8.4 / 21dec2009
|
2
|
+
* 5 Major Enhancements:
|
3
|
+
* OpNode and related modules are now classes
|
4
|
+
* parse results are now cached -> substantial speedup on reparse
|
5
|
+
* moderate performance improvements for regular parser too
|
6
|
+
* inspect now dumps node trees in more readable tree-like output
|
7
|
+
* tests now ignore (with a warning) differences in just a :begin node
|
8
|
+
|
9
|
+
* 18 Minor Enhancements:
|
10
|
+
* single code path utility now converts bare => in calls and between [ and ]
|
11
|
+
* reworked the way ternary rescue is parsed
|
12
|
+
* new build script & gemspec
|
13
|
+
* better way to deal with default of :rubyversion parser option
|
14
|
+
* various fixes to xform_tree! rewriter utility (still doesn't work, tho)
|
15
|
+
* improvements to constructors to make creating nodes by hand more pleasant
|
16
|
+
* parser now creates nodes via Node.create
|
17
|
+
* use AssignmentRhsListStart/EndToken to delimit right hand sides
|
18
|
+
* lhs* and rhs* should be considered unary ops again
|
19
|
+
* when parens in assign lhs, treat unary* and single arg like no parens
|
20
|
+
* VarNode#ident is now kept in a slot, not an ivar
|
21
|
+
* force body of a block to always be a SequenceNode
|
22
|
+
* added RedParse::Nodes; include it to get all the redparse node classes
|
23
|
+
* have each node class remember a list of its slot names
|
24
|
+
* added aliases and accessors in various nodes to make the api nicer
|
25
|
+
* moved some utilities into the support libraries where they belong
|
26
|
+
* slight improvements to parser compiler
|
27
|
+
* added a version of depthwalk which just visits the Nodes of the tree
|
28
|
+
|
29
|
+
* 18 Bugfixes:
|
30
|
+
* parser now runs under MRI 1.9
|
31
|
+
* (more?) accurate version of Float#to_s, for 1.8
|
32
|
+
* minor tweaks to #unparse
|
33
|
+
* value of () is nil, not false
|
34
|
+
* get redparse/version.rb relative to current directory from gemspec
|
35
|
+
* when comparing trees, more insignificant differences are ignored
|
36
|
+
* Node#deep_copy makes more faithful copies now
|
37
|
+
* node marshalling should be more reliable
|
38
|
+
* tweaks to parse_tree support to improve conformance
|
39
|
+
* support automagicness of integer®exp in flipflop (in parse_tree output)
|
40
|
+
* parse_tree's placement of :begin nodes is somewhat better emulated
|
41
|
+
* always put parse inputs into binary mode
|
42
|
+
* changed some operators (lhs, rescue3 unary* rhs*) to proper precedence
|
43
|
+
* numeric literals inserted directly in parsetrees should be autoquoted
|
44
|
+
* ensure @lhs_parens set in AssignNode when it should be
|
45
|
+
* make sure ListInNode is extended into arrays added to Nodes via writers
|
46
|
+
* permit empty symbol LiteralNode to be made
|
47
|
+
* fixed bad permissions in gem file
|
48
|
+
|
49
|
+
* 9 Changes To Tests:
|
50
|
+
* test Node trees surviving Marshal/Ron round-trip and deep_copy unscathed
|
51
|
+
* tests for many of the new 1.9 syntax constructions
|
52
|
+
* parse_tree server process now started in a more portable way
|
53
|
+
* lots of new test cases
|
54
|
+
* rp-locatetest now has docs on how to use it
|
55
|
+
* keep track of problematic files if even the slightest problem occurs
|
56
|
+
* enable/disable fuzzing with ENV var rather than comments
|
57
|
+
* make sure inputs are unchanged by parse
|
58
|
+
* better organized some of the known failing testcases
|
59
|
+
|
60
|
+
=== 0.8.3 / 1jul2009
|
2
61
|
* 7 Minor Enhancements:
|
3
62
|
* most nodes now have startline, endline, and offset
|
4
63
|
* Node.[] is more fun to use now (most attributes can be left off)
|
@@ -12,7 +71,7 @@
|
|
12
71
|
* more faithful ParseTree emulation in a couple of cases
|
13
72
|
* minor fixes in node processing for some rare conditions
|
14
73
|
|
15
|
-
=== 0.8.2 /
|
74
|
+
=== 0.8.2 / 21apr2009
|
16
75
|
* 14 Minor Enhancements:
|
17
76
|
* should be no tokens left in Node tree now
|
18
77
|
* lots of code trying to make things faster (no luck so far)
|
@@ -43,14 +102,14 @@
|
|
43
102
|
* (so escape translation has to be done later, when Nodes are used)
|
44
103
|
* #to_parsetree of an empty source text should be happier now
|
45
104
|
|
46
|
-
=== 0.8.1 /
|
105
|
+
=== 0.8.1 / 21apr2009
|
47
106
|
* 4 Minor Enhancements:
|
48
107
|
* fixed embarassing permissions problems
|
49
108
|
* version.rb and History.txt were missing from the release
|
50
109
|
* I left off the dependancy on reg, oops!
|
51
110
|
* hacked up tests to ignore sudden problem with extra nils
|
52
111
|
|
53
|
-
=== 0.8.0 /
|
112
|
+
=== 0.8.0 / 10oct2008
|
54
113
|
* 1 Major Enhancement:
|
55
114
|
* Birthday!
|
56
115
|
|
data/Makefile
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
name=RedParse
|
2
|
+
lname=redparse
|
3
|
+
gemname=redparse
|
4
|
+
|
5
|
+
#everything after this line is generic
|
6
|
+
|
7
|
+
version=$(shell ruby -r ./lib/$(lname)/version.rb -e "puts $(name)::VERSION")
|
8
|
+
filelist=$(shell git ls-files)
|
9
|
+
|
10
|
+
.PHONY: all test docs gem tar pkg email
|
11
|
+
all: test
|
12
|
+
|
13
|
+
test:
|
14
|
+
ruby -Ilib test/test_all.rb
|
15
|
+
|
16
|
+
docs:
|
17
|
+
rdoc lib/*
|
18
|
+
|
19
|
+
pkg: gem tar
|
20
|
+
|
21
|
+
gem:
|
22
|
+
gem build $(lname).gemspec
|
23
|
+
|
24
|
+
tar:
|
25
|
+
tar cf - $(filelist) | ( mkdir $(gemname)-$(version); cd $(gemname)-$(version); tar xf - )
|
26
|
+
tar czf $(gemname)-$(version).tar.gz $(gemname)-$(version)
|
27
|
+
rm -rf $(gemname)-$(version)
|
28
|
+
|
29
|
+
email: README.txt History.txt
|
30
|
+
ruby -e ' \
|
31
|
+
require "rubygems"; \
|
32
|
+
load "./$(lname).gemspec"; \
|
33
|
+
spec= Gem::Specification.list.find{|x| x.name=="$(gemname)"}; \
|
34
|
+
puts "\
|
35
|
+
Subject: [ANN] $(name) #{spec.version} Released \
|
36
|
+
\n\n$(name) version #{spec.version} has been released! \n\n\
|
37
|
+
#{Array(spec.homepage).map{|url| " * #{url}\n" }} \
|
38
|
+
\n\
|
39
|
+
#{$(name)::Description} \
|
40
|
+
\n\nChanges:\n\n \
|
41
|
+
#{$(name)::Latest_changes} \
|
42
|
+
"\
|
43
|
+
'
|
data/README.txt
CHANGED
@@ -10,9 +10,11 @@ tool is LALR(1)-equivalent and the 'parse language' is pretty nice,
|
|
10
10
|
even in it's current crude form.)
|
11
11
|
|
12
12
|
My intent is to have a completely correct parser for ruby, in 100%
|
13
|
-
ruby.
|
14
|
-
|
15
|
-
|
13
|
+
ruby. Currently, RedParse can parse all known ruby 1.8 constructions
|
14
|
+
correctly. There might be some problems with unparsing or otherwise
|
15
|
+
working with texts in a character set other than ascii. Some of the
|
16
|
+
new ruby 1.9 constructions are supported in 1.9 mode. For more
|
17
|
+
details on known problems, see below.
|
16
18
|
|
17
19
|
== REQUIREMENTS:
|
18
20
|
* RedParse requires RubyLexer, my hand-coded lexer for ruby. It also
|
@@ -41,6 +43,7 @@ Please see COPYING.LGPL for details.
|
|
41
43
|
* Pretty AST trees (at least, I think so). (To program for, not
|
42
44
|
necessarily to look at.)
|
43
45
|
* AST trees closely mirror the actual structure of source code.
|
46
|
+
* unparser is built in
|
44
47
|
* ParseTree format output too, if you want that.
|
45
48
|
* Did I mention that there's no YACC at all? YACC grammars are
|
46
49
|
notoriously difficult to modify, (I've never successfully done it)
|
@@ -63,7 +66,6 @@ Please see COPYING.LGPL for details.
|
|
63
66
|
* Pathetically, ridiculously slow (ok, compiler-compilers are hard...)
|
64
67
|
* Error handling is very minimal right now.
|
65
68
|
* No warnings at all.
|
66
|
-
* Some expressions aren't parsed correctly. see below.
|
67
69
|
* Unit test takes a fairly long time.
|
68
70
|
* Lots of warnings printed during unit test.
|
69
71
|
* Debugging parse rules is not straightforward.
|
@@ -71,6 +73,8 @@ Please see COPYING.LGPL for details.
|
|
71
73
|
* "loosey-goosey" parser happily parses many expressions which normal
|
72
74
|
ruby considers errors.
|
73
75
|
|
76
|
+
|
77
|
+
|
74
78
|
== SYNOPSIS:
|
75
79
|
|
76
80
|
#simple example of usage:
|
@@ -140,219 +144,150 @@ existing format in the future, but no incompatibility-creating changes.
|
|
140
144
|
UnAmpNode means UnOpNode with op == "&"
|
141
145
|
|
142
146
|
Node<Array #abstract ancestor of all nodes
|
143
|
-
|
147
|
+
+-RescueNode #a rescue clause in a def or begin statement
|
144
148
|
| (exceptions: Array[Expr*], varname: VarNode|nil, action: Expr)
|
145
|
-
|
149
|
+
+-WhenNode #a when clause in a case statement
|
146
150
|
| (when: Expr|Array[Expr+] then: Expr|nil )
|
147
|
-
|
151
|
+
+-ElsifNode #an elsif clause in an if statement
|
148
152
|
| (elsif: Expr, then: Expr|nil)
|
149
|
-
|
150
|
-
|
153
|
+
+-ValueNode #abstract, a node which has a value (an expression)
|
154
|
+
|+-VarNode #represents variables and constants
|
151
155
|
|| (ident: String)
|
152
|
-
|
156
|
+
|+-ListOpNode #abstract, ancestor for nodes which are lists of
|
153
157
|
||| #things separated by some op
|
154
|
-
|
158
|
+
||+-SequenceNode #a sequence of statements
|
155
159
|
||| (Array[Expr*])
|
156
|
-
|
160
|
+
||+-ConstantNode #a constant expression of the form A::B::C or the like
|
157
161
|
|| #first expression can be anything
|
158
162
|
|| (Array[String|Expr|nil,String+])
|
159
|
-
|
163
|
+
|+-RawOpNode #ancestor of all binary operators (except . :: ; , ?..:)
|
160
164
|
||| (left: Expr, op: String, right: Expr)
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
165
|
+
||+-RangeNode #a range literal node
|
166
|
+
||+-KeywordOpNode #abstract, ancestor of keyword operators
|
167
|
+
|||+-LogicalNode #and or && || expressions
|
168
|
+
|||+-WhileOpNode #while as an operator
|
169
|
+
|||+-UntilOpNode #until as an operator
|
170
|
+
|||+-IfOpNode #if as an operator
|
171
|
+
|||+-UnlessOpNode #unless as an operator
|
172
|
+
|||+-RescueOpNode #rescue as an operator
|
173
|
+
||| (body: Expr, rescues: Array[RescueNode*])
|
174
|
+
||+-OpNode #ancestor of some binary operators (those with methods hidden in them)
|
175
|
+
|||+-NotEqualNode #!= expressions
|
176
|
+
|||+-MatchNode #=~ expressions
|
177
|
+
|||+-NotMatchNode #!~ expressions
|
178
|
+
|+-LiteralNode #literal symbols, integers
|
175
179
|
|| (val: Numeric|Symbol|StringNode)
|
176
|
-
|
180
|
+
|+-StringNode #literal strings
|
177
181
|
||| (Array[(String|Expr)+])
|
178
|
-
|
179
|
-
|
182
|
+
||+-HereDocNode #here documents
|
183
|
+
|+-StringCatNode #adjacent strings are catenated ("foo" "bar" == "foobar")
|
180
184
|
|| (Array[StringNode+])
|
181
|
-
|
185
|
+
|+-NopNode #an expression with no tokens at all in it
|
182
186
|
|| (no attributes)
|
183
|
-
|
187
|
+
|+-VarLikeNode #nil,false,true,__FILE__,__LINE__,self
|
184
188
|
|| (name: String)
|
185
|
-
|
189
|
+
|+-UnOpNode #unary operators
|
186
190
|
|| (op: String, val: Expr)
|
187
|
-
|
188
|
-
|
189
|
-
|||||
|
190
|
-
|
191
|
-
||
|
192
|
-
|
191
|
+
||+-UnaryStarNode #unary star (splat)
|
192
|
+
|||+-DanglingStarNode #unary star with no argument
|
193
|
+
||||| (no attributes)
|
194
|
+
||||+-DanglingCommaNode #comma with no rhs
|
195
|
+
|| (no attributes)
|
196
|
+
|+-BeginNode #begin..end block
|
193
197
|
|| (body: Expr|nil, rescues: Array[RescueNode*],
|
194
198
|
|| else: Expr|nil, ensure: Expr|nil)
|
195
|
-
|
199
|
+
|+-ParenedNode #parenthesized expressions
|
196
200
|
|| (body: Expr)
|
197
|
-
|
201
|
+
|+-AssignNode #assignment (including eg +=)
|
198
202
|
|| (left:AssigneeList|LValue, op:String ,right:Array[Expr*]|Expr)
|
199
|
-
|
203
|
+
|+-AssigneeList #abstract, comma-delimited list of assignables
|
200
204
|
||| (Array[LValue*])
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
+
||+-NestedAssign #nested lhs, in parentheses
|
206
|
+
||+-MultiAssign #regular top-level lhs
|
207
|
+
||+-BlockParams #block formal parameter list
|
208
|
+
|+-CallSiteNode #abstract, method calls
|
205
209
|
||| (receiver: Expr|nil, name: String, params: nil|Array[Expr+,UnaryStarNode?,UnAmpNode?],
|
206
210
|
||| blockparams: BlockParams|nil, block: Expr|nil)
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
||
|
211
|
-
|
211
|
+
||+-CallNode #normal method calls
|
212
|
+
||+-KWCallNode #keywords that look (more or less) like methods (BEGIN END yield return break continue next)
|
213
|
+
|+-ArrayLiteralNode #[..]
|
214
|
+
|| (Array[Expr*])
|
215
|
+
|+-IfNode #if..end and unless..end
|
212
216
|
|| (if: Expr, then: Expr|nil, elsifs: Array[ElsifNode+]|nil, else: Expr|nil)
|
213
|
-
|
217
|
+
|+-LoopNode #while..end and until..end
|
214
218
|
|| (while: Expr, do: Expr:nil)
|
215
|
-
|
219
|
+
|+-CaseNode #case..end
|
216
220
|
|| (case: Expr|nil, whens: Array[WhenNode*], else: Expr|nil)
|
217
|
-
|
221
|
+
|+-ForNode #for..end
|
218
222
|
|| (for: LValue, in: Expr, do: Expr|nil)
|
219
|
-
|
220
|
-
||
|
221
|
-
|
223
|
+
|+-HashLiteralNode #{..}
|
224
|
+
|| (Array[Expr*]) (size must be even)
|
225
|
+
|+-TernaryNode # ? .. :
|
222
226
|
|| (if: Expr, then: Expr, else: Expr)
|
223
|
-
|
227
|
+
|+-MethodNode #def..end
|
224
228
|
|| (receiver:Expr|nil, name:String,
|
225
229
|
|| params:Array[VarNode*,AssignNode*,UnaryStarNode?,UnAmpNode?]|nil,
|
226
230
|
|| body: Expr|nil, rescues: Array[RescueNode+]|nil, else: Expr|nil, ensure: Expr|nil)
|
227
|
-
|
231
|
+
|+-AliasNode #alias foo bar
|
228
232
|
|| (to: String|VarNode|StringNode, from: String|VarNode|StringNode)
|
229
|
-
|
233
|
+
|+-UndefNode #undef foo
|
230
234
|
|| (Array[String|StringNode+])
|
231
|
-
|
232
|
-
|
235
|
+
|+-NamespaceNode #abstract
|
236
|
+
||+-ModuleNode #module..end
|
233
237
|
||| (name: VarNode|ConstantNode, body: Expr|nil
|
234
238
|
||| rescues: Array[RescueNode+]|nil, else: Expr|nil, ensure: Expr|nil)
|
235
|
-
|
239
|
+
||+-ClassNode #class..end
|
236
240
|
||| (name: VarNode|ConstantNode, parent: Expr|nil, body: Expr|nil,
|
237
241
|
||| rescues: Array[RescueNode+]|nil, else: Expr|nil, ensure: Expr|nil)
|
238
|
-
|
242
|
+
||+-MetaClassNode #class<<x..end
|
239
243
|
|| (val: Expr, body: Expr|nil,
|
240
244
|
|| rescues: Array[RescueNode+]|nil, else: Expr|nil, ensure: Expr|nil)
|
241
|
-
|
245
|
+
|+-BracketsGetNode #a[b]
|
242
246
|
| (receiver: Expr, params: Array[Expr+,UnaryStarNode?]|nil)
|
243
247
|
|
|
244
248
|
ErrorNode #mixed in to nodes with a syntax error
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
*
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
*
|
258
|
-
|
259
|
-
*
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
*
|
265
|
-
*
|
266
|
-
|
267
|
-
*
|
268
|
-
*
|
269
|
-
|
270
|
-
*
|
249
|
+
+-MisparsedNode #mismatched braces or begin..end or the like
|
250
|
+
|
251
|
+
== Known problems with the parser:
|
252
|
+
* Encoding of the input is not stored anywhere in resulting parse tree.
|
253
|
+
* Ascii, binary, utf-8, and euc encodings are supported, but sjis is not.
|
254
|
+
|
255
|
+
== Known problems with the unparser:
|
256
|
+
* On unparse, here documents are converted into regular strings. For the most
|
257
|
+
part, these are exactly equivalent to the original. However, whatever tokens
|
258
|
+
appeared between the here document header and body will now show up on a
|
259
|
+
different line. If one of those tokens was __LINE__, it will have a
|
260
|
+
different value in the unparsed code than it had originally.
|
261
|
+
* some floating-point literals don't survive parse/unparse roundtrip intact,
|
262
|
+
due to bugs in MRI 1.8's Float#to_s/String#to_f.
|
263
|
+
* unparsing of trees whose input was in a character set other than ascii may
|
264
|
+
not work.
|
265
|
+
|
266
|
+
== Known problems with ParseTree compatibility
|
267
|
+
* Major:
|
268
|
+
* converting non-ascii encoded parsetrees to ParseTree format doesn't work
|
269
|
+
* Minor:
|
270
|
+
* :begin is not always emitted in the same places as ParseTree does:
|
271
|
+
* return begin; f; end
|
272
|
+
* string nodes don't always come out the same way as in ParseTree...
|
273
|
+
but what I emit is equivalent.
|
274
|
+
* %W"is #{"Slim #{2?"W":"S"}"}#{xx}."
|
275
|
+
* silly empty case nodes aren't always optimized to nop like in ParseTree.
|
271
276
|
|
272
277
|
== Bugs in ruby
|
273
278
|
* These expressions don't parse the same as in MRI because of bug(s) in MRI:
|
274
279
|
* p = p m %(1)
|
275
280
|
* p=556;p (e) /a
|
276
|
-
* c do p (110).m end
|
281
|
+
* c do p (110).m end #buggy in 1.8 only, fixed in 1.9
|
282
|
+
* module Array ([Array]).first::E; end #buggy in 1.8 only, fixed in 1.9
|
277
283
|
|
278
284
|
== Bugs in ParseTree
|
279
285
|
* Unit tests see failures in these cases, but due to bugs in ParseTree:
|
286
|
+
* doc_status, err_args = Documeh_status{fcgi_state = 3; docespond do doc_response =fcgi_state = 1; end }
|
280
287
|
* case F;when G; else;case; when j; end;end
|
281
288
|
* def foo(a=b=c={}) end
|
282
289
|
* $11111111111111111111111111111111111111111111111111111111111111111111
|
283
290
|
* proc{|&b| }
|
284
291
|
* def sum(options = {:weights => weights = Hash.new(1)}); opt; end
|
285
|
-
|
286
|
-
|
287
|
-
* And here's a list of files which are known to parse incorrectly:
|
288
|
-
|
289
|
-
|
290
|
-
activerdf-1.6.10/lib/active_rdf/queryengine/query2jars2.rb
|
291
|
-
aquarium-0.4.2/spec/aquarium/aspects/aspect_spec.rb
|
292
|
-
aspectr-0-3-5/lib/aspectr.rb
|
293
|
-
authorails-1.0.0/lib/initializer.rb
|
294
|
-
bibliomori-0.2.3/src/filter.rb
|
295
|
-
cursor-0.9/cursor/circular.rb
|
296
|
-
cursor-0.9/duck.rb
|
297
|
-
data_objects-0.9.2/lib/data_objects/transaction.rb
|
298
|
-
docdiff-0.3.2/docdiff/charstring.rb
|
299
|
-
extract_curves-0.0.1/ruby_libs/pav/string/observable.rb
|
300
|
-
extract-curves-0.1.1/ruby_libs/pav/string/observable.rb
|
301
|
-
gecoder-with-gecode-0.8.2/lib/gecoder/interface/constraints/set/connection.rb
|
302
|
-
gettext-1.91.0/test/test_gettext.rb
|
303
|
-
lazytools-0.1.0/lib/dirstructure.rb
|
304
|
-
lockfile-1.4.3/lib/lockfile-1.4.3.rb
|
305
|
-
lockfile-1.4.3/lib/lockfile.rb
|
306
|
-
logging-0.8.0/test/test_logger.rb
|
307
|
-
logmerge-1.0.0/lib/logmerge/resolv.rb
|
308
|
-
main-2.8.0/lib/main/base.rb
|
309
|
-
muding-0.2.0/lib/initializer.rb
|
310
|
-
net-mdns-0.4/lib/net/dns/resolv.rb
|
311
|
-
not_naughty-0.5.1/spec/not_naughty_spec.rb
|
312
|
-
radiant-0.6.7/vendor/rails/railties/lib/initializer.rb
|
313
|
-
redparse/test/data/def_spec.rb
|
314
|
-
reg/regcompiler.rb
|
315
|
-
rgen-0.4.2/redist/xmlscan/tests/deftestcase.rb
|
316
|
-
rq-3.4.0/lib/rq/lockfile.rb
|
317
|
-
ruby-ajp-0.2.1/lib/net/ajp13.rb
|
318
|
-
ruby-contract-0.1.1/lib/contract/overrides.rb
|
319
|
-
ruby-debug-0.10.0/cli/ruby-debug/processor.rb
|
320
|
-
rubygame-2.3.0/lib/rubygame/rect.rb
|
321
|
-
rubygems-update-1.2.0/lib/rubygems/test_utilities.rb
|
322
|
-
rubylexer/test/data/heremonsters_dos.rb
|
323
|
-
ruby-nuggets-0.2.1.246/lib/nuggets/array/to_hash.rb
|
324
|
-
sequel_core-2.2.0/lib/sequel_core/core_sql.rb
|
325
|
-
skktools/filters/skkdictools.rb
|
326
|
-
stick-1.3.3/lib/stick/matrix.rb
|
327
|
-
stomp-1.0.5/lib/stomp.rb
|
328
|
-
syntax-1.0.0/lib/syntax/lang/ruby.rb
|
329
|
-
tournament-1.1.0/lib/tournament/bracket.rb
|
330
|
-
typo-5.0.3.98.1/config/environment.rb
|
331
|
-
typo-5.0.3.98.1/vendor/syntax/lib/syntax/lang/ruby.rb
|
332
|
-
/usr/lib/ruby/1.8/docdiff/charstring.rb
|
333
|
-
/usr/lib/ruby/1.8/puppet/provider/nameservice.rb
|
334
|
-
/usr/lib/ruby/1.8/qwik/util-css.rb
|
335
|
-
/usr/lib/ruby/1.8/resolv.rb
|
336
|
-
/usr/lib/ruby/1.8/rexml/doctype.rb
|
337
|
-
/usr/lib/ruby/1.8/tkextlib/bwidget/buttonbox.rb
|
338
|
-
/usr/lib/ruby/1.9.0/resolv.rb
|
339
|
-
/usr/lib/ruby/1.9.0/rexml/doctype.rb
|
340
|
-
/usr/share/doc/libtcltk-ruby1.8/examples/tkextlib/tkHTML/ss.rb
|
341
|
-
/usr/share/doc/libtcltk-ruby1.9/examples/tkextlib/tkHTML/ss.rb
|
342
|
-
/usr/share/doc/libxml-ruby/tests/tc_xml_parser8.rb
|
343
|
-
/usr/share/glark/options.rb
|
344
|
-
/usr/share/hiki/hiki/docdiff/charstring.rb
|
345
|
-
/usr/share/nadoka/rice/irc.rb
|
346
|
-
/usr/share/rails/actionpack/test/controller/caching_test.rb
|
347
|
-
/usr/share/rails/actionpack/test/controller/fragment_store_setting_test.rb
|
348
|
-
/usr/share/rails/activesupport/lib/active_support/multibyte/handlers/utf8_handler.rb
|
349
|
-
/usr/share/rails/railties/builtin/rails_info/rails/info.rb
|
350
|
-
/usr/share/rails/railties/lib/initializer.rb
|
351
|
-
/usr/share/skktools/filters/skkdictools.rb
|
352
|
-
/usr/share/tdiary/TC_tdiary-setup.rb
|
353
|
-
wwwsrv-0.15.3/wwwsrv/fastcgi.rb
|
354
|
-
xmlscan-0.2.3/tests/deftestcase.rb
|
355
|
-
ya2yaml-0.26/lib/ya2yaml.rb
|
356
|
-
ActiveRecord-JDBC-0.5/lib/jdbc_adapter/jdbc_hsqldb.rb
|
357
|
-
ruby-web-1.1.1/lib/webunit/parser.rb
|
358
|
-
filemanager-0.2.0/filemanager/app/controllers/fm/filemanager_controller.rb
|
292
|
+
* def foo(a = 1) end; def foo(a=b=c={}) end; def bar(a=b=c=1,d=2) end
|
293
|
+
* yield [a_i, *p]
|