redparse 0.8.3 → 0.8.4
Sign up to get free protection for your applications and to get access to all the features.
- 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]
|