rdoc 5.1.0 → 6.3.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rdoc might be problematic. Click here for more details.

Files changed (158) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.rdoc +4 -4
  3. data/Gemfile +9 -0
  4. data/History.rdoc +4 -4
  5. data/README.rdoc +5 -6
  6. data/Rakefile +35 -67
  7. data/lib/rdoc/alias.rb +1 -1
  8. data/lib/rdoc/anon_class.rb +1 -1
  9. data/lib/rdoc/any_method.rb +59 -15
  10. data/lib/rdoc/attr.rb +1 -1
  11. data/lib/rdoc/class_module.rb +5 -3
  12. data/lib/rdoc/code_object.rb +2 -9
  13. data/lib/rdoc/code_objects.rb +1 -1
  14. data/lib/rdoc/comment.rb +32 -11
  15. data/lib/rdoc/constant.rb +3 -3
  16. data/lib/rdoc/context/section.rb +1 -14
  17. data/lib/rdoc/context.rb +63 -20
  18. data/lib/rdoc/cross_reference.rb +33 -15
  19. data/lib/rdoc/encoding.rb +58 -30
  20. data/lib/rdoc/erb_partial.rb +2 -2
  21. data/lib/rdoc/erbio.rb +8 -4
  22. data/lib/rdoc/extend.rb +1 -1
  23. data/lib/rdoc/generator/darkfish.rb +60 -29
  24. data/lib/rdoc/generator/json_index.rb +6 -3
  25. data/lib/rdoc/generator/markup.rb +3 -13
  26. data/lib/rdoc/generator/pot/message_extractor.rb +1 -1
  27. data/lib/rdoc/generator/pot/po.rb +3 -3
  28. data/lib/rdoc/generator/pot/po_entry.rb +11 -11
  29. data/lib/rdoc/generator/pot.rb +4 -4
  30. data/lib/rdoc/generator/ri.rb +1 -1
  31. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
  32. data/lib/rdoc/generator/template/darkfish/_head.rhtml +9 -7
  33. data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
  34. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
  35. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
  36. data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
  37. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
  38. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
  39. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
  40. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
  41. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
  42. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
  43. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
  44. data/lib/rdoc/generator/template/darkfish/class.rhtml +45 -47
  45. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -6
  46. data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
  47. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +22 -99
  48. data/lib/rdoc/generator/template/darkfish/js/search.js +32 -31
  49. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
  50. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
  51. data/lib/rdoc/generator/template/json_index/js/navigation.js +4 -41
  52. data/lib/rdoc/generator/template/json_index/js/searcher.js +6 -6
  53. data/lib/rdoc/generator.rb +1 -1
  54. data/lib/rdoc/ghost_method.rb +1 -1
  55. data/lib/rdoc/i18n/locale.rb +1 -1
  56. data/lib/rdoc/i18n/text.rb +5 -5
  57. data/lib/rdoc/i18n.rb +3 -3
  58. data/lib/rdoc/include.rb +1 -1
  59. data/lib/rdoc/known_classes.rb +1 -1
  60. data/lib/rdoc/markdown/entities.rb +1 -1
  61. data/lib/rdoc/markdown/literals.kpeg +1 -0
  62. data/lib/rdoc/markdown/literals.rb +19 -7
  63. data/lib/rdoc/markdown.kpeg +92 -44
  64. data/lib/rdoc/markdown.rb +1171 -610
  65. data/lib/rdoc/markup/attr_changer.rb +1 -1
  66. data/lib/rdoc/markup/attr_span.rb +9 -3
  67. data/lib/rdoc/markup/attribute_manager.rb +115 -50
  68. data/lib/rdoc/markup/attributes.rb +7 -7
  69. data/lib/rdoc/markup/blank_line.rb +1 -1
  70. data/lib/rdoc/markup/block_quote.rb +1 -1
  71. data/lib/rdoc/markup/document.rb +1 -1
  72. data/lib/rdoc/markup/formatter.rb +25 -24
  73. data/lib/rdoc/markup/hard_break.rb +1 -1
  74. data/lib/rdoc/markup/heading.rb +4 -4
  75. data/lib/rdoc/markup/include.rb +1 -1
  76. data/lib/rdoc/markup/indented_paragraph.rb +1 -1
  77. data/lib/rdoc/markup/list.rb +1 -1
  78. data/lib/rdoc/markup/list_item.rb +1 -1
  79. data/lib/rdoc/markup/paragraph.rb +1 -1
  80. data/lib/rdoc/markup/parser.rb +79 -47
  81. data/lib/rdoc/markup/pre_process.rb +11 -6
  82. data/lib/rdoc/markup/raw.rb +1 -1
  83. data/lib/rdoc/markup/regexp_handling.rb +41 -0
  84. data/lib/rdoc/markup/rule.rb +1 -1
  85. data/lib/rdoc/markup/to_ansi.rb +1 -1
  86. data/lib/rdoc/markup/to_bs.rb +4 -4
  87. data/lib/rdoc/markup/to_html.rb +68 -26
  88. data/lib/rdoc/markup/to_html_crossref.rb +41 -26
  89. data/lib/rdoc/markup/to_html_snippet.rb +10 -10
  90. data/lib/rdoc/markup/to_joined_paragraph.rb +7 -32
  91. data/lib/rdoc/markup/to_label.rb +10 -10
  92. data/lib/rdoc/markup/to_markdown.rb +9 -9
  93. data/lib/rdoc/markup/to_rdoc.rb +35 -7
  94. data/lib/rdoc/markup/to_table_of_contents.rb +2 -1
  95. data/lib/rdoc/markup/to_test.rb +1 -1
  96. data/lib/rdoc/markup/to_tt_only.rb +3 -3
  97. data/lib/rdoc/markup/verbatim.rb +1 -1
  98. data/lib/rdoc/markup.rb +14 -17
  99. data/lib/rdoc/meta_method.rb +1 -1
  100. data/lib/rdoc/method_attr.rb +2 -2
  101. data/lib/rdoc/mixin.rb +1 -1
  102. data/lib/rdoc/normal_class.rb +3 -3
  103. data/lib/rdoc/normal_module.rb +1 -1
  104. data/lib/rdoc/options.rb +79 -21
  105. data/lib/rdoc/parser/c.rb +147 -194
  106. data/lib/rdoc/parser/changelog.rb +150 -19
  107. data/lib/rdoc/parser/markdown.rb +1 -1
  108. data/lib/rdoc/parser/rd.rb +1 -1
  109. data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
  110. data/lib/rdoc/parser/ruby.rb +632 -466
  111. data/lib/rdoc/parser/ruby_tools.rb +33 -34
  112. data/lib/rdoc/parser/simple.rb +3 -3
  113. data/lib/rdoc/parser/text.rb +1 -1
  114. data/lib/rdoc/parser.rb +9 -34
  115. data/lib/rdoc/rd/block_parser.rb +47 -46
  116. data/lib/rdoc/rd/block_parser.ry +2 -2
  117. data/lib/rdoc/rd/inline.rb +5 -5
  118. data/lib/rdoc/rd/inline_parser.rb +139 -138
  119. data/lib/rdoc/rd/inline_parser.ry +1 -1
  120. data/lib/rdoc/rd.rb +1 -1
  121. data/lib/rdoc/rdoc.rb +54 -41
  122. data/lib/rdoc/require.rb +1 -1
  123. data/lib/rdoc/ri/driver.rb +132 -42
  124. data/lib/rdoc/ri/formatter.rb +1 -1
  125. data/lib/rdoc/ri/paths.rb +4 -18
  126. data/lib/rdoc/ri/store.rb +1 -1
  127. data/lib/rdoc/ri/task.rb +2 -2
  128. data/lib/rdoc/ri.rb +1 -1
  129. data/lib/rdoc/rubygems_hook.rb +3 -3
  130. data/lib/rdoc/servlet.rb +21 -12
  131. data/lib/rdoc/single_class.rb +1 -1
  132. data/lib/rdoc/stats/normal.rb +24 -18
  133. data/lib/rdoc/stats/quiet.rb +1 -1
  134. data/lib/rdoc/stats/verbose.rb +1 -1
  135. data/lib/rdoc/stats.rb +1 -1
  136. data/lib/rdoc/store.rb +38 -27
  137. data/lib/rdoc/task.rb +2 -2
  138. data/lib/rdoc/text.rb +16 -21
  139. data/lib/rdoc/token_stream.rb +56 -33
  140. data/lib/rdoc/tom_doc.rb +17 -12
  141. data/lib/rdoc/top_level.rb +9 -3
  142. data/lib/rdoc/version.rb +8 -0
  143. data/lib/rdoc.rb +24 -10
  144. data/man/ri.1 +247 -0
  145. data/rdoc.gemspec +206 -15
  146. metadata +15 -64
  147. data/.document +0 -5
  148. data/.gitignore +0 -13
  149. data/.travis.yml +0 -24
  150. data/lib/gauntlet_rdoc.rb +0 -82
  151. data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
  152. data/lib/rdoc/markup/formatter_test_case.rb +0 -764
  153. data/lib/rdoc/markup/inline.rb +0 -2
  154. data/lib/rdoc/markup/special.rb +0 -41
  155. data/lib/rdoc/markup/text_formatter_test_case.rb +0 -115
  156. data/lib/rdoc/ruby_lex.rb +0 -1367
  157. data/lib/rdoc/ruby_token.rb +0 -461
  158. data/lib/rdoc/test_case.rb +0 -204
@@ -1,461 +0,0 @@
1
- # frozen_string_literal: false
2
- #--
3
- # irb/ruby-token.rb - ruby tokens
4
- # $Release Version: 0.9.5$
5
- # $Revision: 11708 $
6
- # $Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $
7
- # by Keiju ISHITSUKA(keiju@ruby-lang.org)
8
- #++
9
- # Definitions of all tokens involved in the lexical analysis.
10
- #
11
- # This class is not documented because it is so deep in the internals.
12
-
13
- module RDoc::RubyToken
14
- # :stopdoc:
15
-
16
- EXPR_BEG = :EXPR_BEG
17
- EXPR_MID = :EXPR_MID
18
- EXPR_END = :EXPR_END
19
- EXPR_ARG = :EXPR_ARG
20
- EXPR_FNAME = :EXPR_FNAME
21
- EXPR_DOT = :EXPR_DOT
22
- EXPR_CLASS = :EXPR_CLASS
23
-
24
- # for ruby 1.4X
25
- if !defined?(Symbol)
26
- Symbol = Integer
27
- end
28
-
29
- def set_token_position(line, char)
30
- @prev_line_no = line
31
- @prev_char_no = char
32
- end
33
-
34
- class Token
35
- def initialize(seek, line_no, char_no, text = nil)
36
- @seek = seek
37
- @line_no = line_no
38
- @char_no = char_no
39
- @text = text
40
- end
41
-
42
- attr_reader :seek
43
- attr_reader :line_no
44
- attr_reader :char_no
45
-
46
- attr_accessor :text
47
-
48
- def ==(other)
49
- self.class == other.class and
50
- other.line_no == @line_no and
51
- other.char_no == @char_no and
52
- other.text == @text
53
- end
54
-
55
- ##
56
- # Because we're used in contexts that expect to return a token, we set the
57
- # text string and then return ourselves
58
-
59
- def set_text(text)
60
- @text = text
61
- self
62
- end
63
-
64
- def inspect # :nodoc:
65
- klass = self.class.name.split('::').last
66
- "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @text]
67
- end
68
-
69
- end
70
-
71
- class TkNode < Token
72
- def initialize(seek, line_no, char_no, node = nil)
73
- super seek, line_no, char_no
74
- @node = node
75
- end
76
-
77
- attr_reader:node
78
-
79
- def ==(other)
80
- self.class == other.class and
81
- other.line_no == @line_no and
82
- other.char_no == @char_no and
83
- other.node == @node
84
- end
85
-
86
- def set_text text
87
- @node = text
88
- self
89
- end
90
-
91
- alias text node
92
-
93
- def inspect # :nodoc:
94
- klass = self.class.name.split('::').last
95
- "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @node]
96
- end
97
-
98
- end
99
-
100
- class TkId < Token
101
- def initialize(seek, line_no, char_no, name)
102
- super(seek, line_no, char_no)
103
- @name = name
104
- end
105
- attr_reader:name
106
-
107
- def ==(other)
108
- self.class == other.class and
109
- other.line_no == @line_no and
110
- other.char_no == @char_no and
111
- other.name == @name
112
- end
113
-
114
- def set_text text
115
- @name = text
116
- self
117
- end
118
-
119
- alias text name
120
-
121
- def inspect # :nodoc:
122
- klass = self.class.name.split('::').last
123
- "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @name]
124
- end
125
-
126
- end
127
-
128
- class TkKW < TkId
129
- end
130
-
131
- class TkVal < Token
132
- def initialize(seek, line_no, char_no, value = nil)
133
- super(seek, line_no, char_no)
134
- @value = value
135
- end
136
- attr_accessor :value
137
-
138
- def ==(other)
139
- self.class == other.class and
140
- other.line_no == @line_no and
141
- other.char_no == @char_no and
142
- other.value == @value
143
- end
144
-
145
- def set_text text
146
- @value = text
147
- self
148
- end
149
-
150
- alias text value
151
-
152
- def inspect # :nodoc:
153
- klass = self.class.name.split('::').last
154
- "{%s %s, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @value]
155
- end
156
-
157
- end
158
-
159
- class TkOp < Token
160
- def initialize(seek, line_no, char_no, name = nil)
161
- super seek, line_no, char_no
162
- @name = name
163
- end
164
-
165
- attr_accessor :name
166
-
167
- def ==(other)
168
- self.class == other.class and
169
- other.line_no == @line_no and
170
- other.char_no == @char_no and
171
- other.name == @name
172
- end
173
-
174
- def set_text text
175
- @name = text
176
- self
177
- end
178
-
179
- alias text name
180
-
181
- def inspect # :nodoc:
182
- klass = self.class.name.split('::').last
183
- "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @name]
184
- end
185
-
186
- end
187
-
188
- class TkOPASGN < TkOp
189
- def initialize(seek, line_no, char_no, op)
190
- super(seek, line_no, char_no)
191
- op = TkReading2Token[op][0] unless op.kind_of?(Symbol)
192
- @op = op
193
- @text = nil
194
- end
195
-
196
- attr_reader:op
197
-
198
- def ==(other)
199
- self.class == other.class and
200
- other.line_no == @line_no and
201
- other.char_no == @char_no and
202
- other.op == @op
203
- end
204
-
205
- def text
206
- @text ||= "#{TkToken2Reading[op]}="
207
- end
208
-
209
- def inspect # :nodoc:
210
- klass = self.class.name.split('::').last
211
- "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @op]
212
- end
213
-
214
- end
215
-
216
- class TkUnknownChar < Token
217
- def initialize(seek, line_no, char_no, name)
218
- super(seek, line_no, char_no)
219
- @name = name
220
- end
221
- attr_reader:name
222
-
223
- def ==(other)
224
- self.class == other.class and
225
- other.line_no == @line_no and
226
- other.char_no == @char_no and
227
- other.name == @name
228
- end
229
-
230
- def set_text text
231
- @name = text
232
- self
233
- end
234
-
235
- alias text name
236
-
237
- def inspect # :nodoc:
238
- klass = self.class.name.split('::').last
239
- "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @name]
240
- end
241
-
242
- end
243
-
244
- class TkError < Token
245
- end
246
-
247
- def Token(token, value = nil)
248
- value ||= TkToken2Reading[token]
249
-
250
- case token
251
- when String
252
- if (tk = TkReading2Token[token]).nil?
253
- IRB.fail TkReading2TokenNoKey, token
254
- end
255
-
256
- tk = Token(tk[0], value)
257
-
258
- if tk.kind_of?(TkOp) then
259
- tk.name = token
260
- end
261
- when Symbol
262
- if (tk = TkSymbol2Token[token]).nil?
263
- IRB.fail TkSymbol2TokenNoKey, token
264
- end
265
-
266
- tk = Token(tk[0], value)
267
- else
268
- if token.instance_method(:initialize).arity == 3 then
269
- tk = token.new(@prev_seek, @prev_line_no, @prev_char_no)
270
- tk.set_text value
271
- else
272
- tk = token.new(@prev_seek, @prev_line_no, @prev_char_no, value)
273
- end
274
- end
275
-
276
- tk
277
- end
278
-
279
- TokenDefinitions = [
280
- [:TkCLASS, TkKW, "class", :EXPR_CLASS],
281
- [:TkMODULE, TkKW, "module", :EXPR_BEG],
282
- [:TkDEF, TkKW, "def", :EXPR_FNAME],
283
- [:TkUNDEF, TkKW, "undef", :EXPR_FNAME],
284
- [:TkBEGIN, TkKW, "begin", :EXPR_BEG],
285
- [:TkRESCUE, TkKW, "rescue", :EXPR_MID],
286
- [:TkENSURE, TkKW, "ensure", :EXPR_BEG],
287
- [:TkEND, TkKW, "end", :EXPR_END],
288
- [:TkIF, TkKW, "if", :EXPR_BEG, :TkIF_MOD],
289
- [:TkUNLESS, TkKW, "unless", :EXPR_BEG, :TkUNLESS_MOD],
290
- [:TkTHEN, TkKW, "then", :EXPR_BEG],
291
- [:TkELSIF, TkKW, "elsif", :EXPR_BEG],
292
- [:TkELSE, TkKW, "else", :EXPR_BEG],
293
- [:TkCASE, TkKW, "case", :EXPR_BEG],
294
- [:TkWHEN, TkKW, "when", :EXPR_BEG],
295
- [:TkWHILE, TkKW, "while", :EXPR_BEG, :TkWHILE_MOD],
296
- [:TkUNTIL, TkKW, "until", :EXPR_BEG, :TkUNTIL_MOD],
297
- [:TkFOR, TkKW, "for", :EXPR_BEG],
298
- [:TkBREAK, TkKW, "break", :EXPR_MID],
299
- [:TkNEXT, TkKW, "next", :EXPR_END],
300
- [:TkREDO, TkKW, "redo", :EXPR_END],
301
- [:TkRETRY, TkKW, "retry", :EXPR_END],
302
- [:TkIN, TkKW, "in", :EXPR_BEG],
303
- [:TkDO, TkKW, "do", :EXPR_BEG],
304
- [:TkRETURN, TkKW, "return", :EXPR_MID],
305
- [:TkYIELD, TkKW, "yield", :EXPR_END],
306
- [:TkSUPER, TkKW, "super", :EXPR_END],
307
- [:TkSELF, TkKW, "self", :EXPR_END],
308
- [:TkNIL, TkKW, "nil", :EXPR_END],
309
- [:TkTRUE, TkKW, "true", :EXPR_END],
310
- [:TkFALSE, TkKW, "false", :EXPR_END],
311
- [:TkAND, TkKW, "and", :EXPR_BEG],
312
- [:TkOR, TkKW, "or", :EXPR_BEG],
313
- [:TkNOT, TkKW, "not", :EXPR_BEG],
314
- [:TkIF_MOD, TkKW],
315
- [:TkUNLESS_MOD, TkKW],
316
- [:TkWHILE_MOD, TkKW],
317
- [:TkUNTIL_MOD, TkKW],
318
- [:TkALIAS, TkKW, "alias", :EXPR_FNAME],
319
- [:TkDEFINED, TkKW, "defined?", :EXPR_END],
320
- [:TklBEGIN, TkKW, "BEGIN", :EXPR_END],
321
- [:TklEND, TkKW, "END", :EXPR_END],
322
- [:Tk__LINE__, TkKW, "__LINE__", :EXPR_END],
323
- [:Tk__FILE__, TkKW, "__FILE__", :EXPR_END],
324
-
325
- [:TkIDENTIFIER, TkId],
326
- [:TkFID, TkId],
327
- [:TkGVAR, TkId],
328
- [:TkCVAR, TkId],
329
- [:TkIVAR, TkId],
330
- [:TkCONSTANT, TkId],
331
-
332
- [:TkINTEGER, TkVal],
333
- [:TkFLOAT, TkVal],
334
- [:TkSTRING, TkVal],
335
- [:TkHEREDOC, TkVal],
336
- [:TkXSTRING, TkVal],
337
- [:TkREGEXP, TkVal],
338
- [:TkSYMBOL, TkVal],
339
- [:TkCHAR, TkVal],
340
-
341
- [:TkDSTRING, TkNode],
342
- [:TkDXSTRING, TkNode],
343
- [:TkDREGEXP, TkNode],
344
- [:TkNTH_REF, TkNode],
345
- [:TkBACK_REF, TkNode],
346
-
347
- [:TkUPLUS, TkOp, "+@"],
348
- [:TkUMINUS, TkOp, "-@"],
349
- [:TkPOW, TkOp, "**"],
350
- [:TkCMP, TkOp, "<=>"],
351
- [:TkEQ, TkOp, "=="],
352
- [:TkEQQ, TkOp, "==="],
353
- [:TkNEQ, TkOp, "!="],
354
- [:TkGEQ, TkOp, ">="],
355
- [:TkLEQ, TkOp, "<="],
356
- [:TkANDOP, TkOp, "&&"],
357
- [:TkOROP, TkOp, "||"],
358
- [:TkMATCH, TkOp, "=~"],
359
- [:TkNMATCH, TkOp, "!~"],
360
- [:TkDOT2, TkOp, ".."],
361
- [:TkDOT3, TkOp, "..."],
362
- [:TkAREF, TkOp, "[]"],
363
- [:TkASET, TkOp, "[]="],
364
- [:TkLSHFT, TkOp, "<<"],
365
- [:TkRSHFT, TkOp, ">>"],
366
- [:TkCOLON2, TkOp, '::'],
367
- [:TkCOLON3, TkOp, '::'],
368
- #[:OPASGN, TkOp], # +=, -= etc. #
369
- [:TkASSOC, TkOp, "=>"],
370
- [:TkQUESTION, TkOp, "?"], #?
371
- [:TkCOLON, TkOp, ":"], #:
372
-
373
- [:TkfLPAREN, Token, "("], # func( #
374
- [:TkfLBRACK, Token, "["], # func[ #
375
- [:TkfLBRACE, Token, "{"], # func{ #
376
- [:TkSYMBEG, Token, ":"], # :SYMBOL
377
-
378
- [:TkAMPER, TkOp, "&"],
379
- [:TkGT, TkOp, ">"],
380
- [:TkLT, TkOp, "<"],
381
- [:TkPLUS, TkOp, "+"],
382
- [:TkSTAR, TkOp, "*"],
383
- [:TkMINUS, TkOp, "-"],
384
- [:TkMULT, TkOp, "*"],
385
- [:TkDIV, TkOp, "/"],
386
- [:TkMOD, TkOp, "%"],
387
- [:TkBITOR, TkOp, "|"],
388
- [:TkBITXOR, TkOp, "^"],
389
- [:TkBITAND, TkOp, "&"],
390
- [:TkBITNOT, TkOp, "~"],
391
- [:TkNOTOP, TkOp, "!"],
392
-
393
- [:TkBACKQUOTE, TkOp, "`"],
394
-
395
- [:TkASSIGN, Token, "="],
396
- [:TkDOT, Token, "."],
397
- [:TkLPAREN, Token, "("], #(exp)
398
- [:TkLBRACK, Token, "["], #[arry]
399
- [:TkLBRACE, Token, "{"], #{hash}
400
- [:TkRPAREN, Token, ")"],
401
- [:TkRBRACK, Token, "]"],
402
- [:TkRBRACE, Token, "}"],
403
- [:TkCOMMA, Token, ","],
404
- [:TkSEMICOLON, Token, ";"],
405
-
406
- [:TkCOMMENT, TkVal],
407
- [:TkSPACE, Token, " "],
408
- [:TkNL, Token, "\n"],
409
- [:TkEND_OF_SCRIPT],
410
-
411
- [:TkBACKSLASH, TkUnknownChar, "\\"],
412
- [:TkAT, TkUnknownChar, "@"],
413
- [:TkDOLLAR, TkUnknownChar, "$"],
414
- ]
415
-
416
- # {reading => token_class}
417
- # {reading => [token_class, *opt]}
418
- TkReading2Token = {}
419
- TkToken2Reading = {}
420
- TkSymbol2Token = {}
421
-
422
- def self.def_token(token_n, super_token = Token, reading = nil, *opts)
423
- token_n = token_n.id2name if token_n.kind_of?(Symbol)
424
- if const_defined?(token_n)
425
- IRB.fail AlreadyDefinedToken, token_n
426
- end
427
- token_c = eval("class #{token_n} < #{super_token}; end; #{token_n}")
428
-
429
- if reading
430
- TkToken2Reading[token_c] = reading
431
-
432
- return if TkReading2Token[reading]
433
-
434
- if opts.empty?
435
- TkReading2Token[reading] = [token_c]
436
- else
437
- TkReading2Token[reading] = [token_c].concat(opts)
438
- end
439
- end
440
- TkSymbol2Token[token_n.intern] = token_c
441
- end
442
-
443
- for defs in TokenDefinitions
444
- def_token(*defs)
445
- end
446
-
447
- def_token :TkRD_COMMENT, TkCOMMENT
448
-
449
- NEWLINE_TOKEN = TkNL.new 0, 0, 0, "\n"
450
-
451
- class TkSYMBOL
452
-
453
- def to_sym
454
- @sym ||= text[1..-1].intern
455
- end
456
-
457
- end
458
-
459
- # :startdoc:
460
- end
461
-
@@ -1,204 +0,0 @@
1
- # frozen_string_literal: false
2
- begin
3
- gem 'minitest', '~> 4.0' unless defined?(Test::Unit)
4
- rescue NoMethodError, Gem::LoadError
5
- # for ruby tests
6
- end
7
-
8
- require 'minitest/autorun'
9
- require 'minitest/benchmark' if ENV['BENCHMARK']
10
-
11
- require 'fileutils'
12
- require 'pp'
13
- require 'tempfile'
14
- require 'tmpdir'
15
- require 'stringio'
16
-
17
- require 'rdoc'
18
-
19
- ##
20
- # RDoc::TestCase is an abstract TestCase to provide common setup and teardown
21
- # across all RDoc tests. The test case uses minitest, so all the assertions
22
- # of minitest may be used.
23
- #
24
- # The testcase provides the following:
25
- #
26
- # * A reset code-object tree
27
- # * A reset markup preprocessor (RDoc::Markup::PreProcess)
28
- # * The <code>@RM</code> alias of RDoc::Markup (for less typing)
29
- # * <code>@pwd</code> containing the current working directory
30
- # * FileUtils, pp, Tempfile, Dir.tmpdir and StringIO
31
-
32
- class RDoc::TestCase < MiniTest::Unit::TestCase
33
-
34
- ##
35
- # Abstract test-case setup
36
-
37
- def setup
38
- super
39
-
40
- @top_level = nil
41
-
42
- @RM = RDoc::Markup
43
-
44
- RDoc::Markup::PreProcess.reset
45
-
46
- @pwd = Dir.pwd
47
-
48
- @store = RDoc::Store.new
49
-
50
- @rdoc = RDoc::RDoc.new
51
- @rdoc.store = @store
52
- @rdoc.options = RDoc::Options.new
53
-
54
- g = Object.new
55
- def g.class_dir() end
56
- def g.file_dir() end
57
- @rdoc.generator = g
58
- end
59
-
60
- ##
61
- # Asserts +path+ is a file
62
-
63
- def assert_file path
64
- assert File.file?(path), "#{path} is not a file"
65
- end
66
-
67
- ##
68
- # Asserts +path+ is a directory
69
-
70
- def assert_directory path
71
- assert File.directory?(path), "#{path} is not a directory"
72
- end
73
-
74
- ##
75
- # Refutes +path+ exists
76
-
77
- def refute_file path
78
- refute File.exist?(path), "#{path} exists"
79
- end
80
-
81
- ##
82
- # Shortcut for RDoc::Markup::BlankLine.new
83
-
84
- def blank_line
85
- @RM::BlankLine.new
86
- end
87
-
88
- ##
89
- # Shortcut for RDoc::Markup::BlockQuote.new with +contents+
90
-
91
- def block *contents
92
- @RM::BlockQuote.new(*contents)
93
- end
94
-
95
- ##
96
- # Creates an RDoc::Comment with +text+ which was defined on +top_level+.
97
- # By default the comment has the 'rdoc' format.
98
-
99
- def comment text, top_level = @top_level
100
- RDoc::Comment.new text, top_level
101
- end
102
-
103
- ##
104
- # Shortcut for RDoc::Markup::Document.new with +contents+
105
-
106
- def doc *contents
107
- @RM::Document.new(*contents)
108
- end
109
-
110
- ##
111
- # Shortcut for RDoc::Markup::HardBreak.new
112
-
113
- def hard_break
114
- @RM::HardBreak.new
115
- end
116
-
117
- ##
118
- # Shortcut for RDoc::Markup::Heading.new with +level+ and +text+
119
-
120
- def head level, text
121
- @RM::Heading.new level, text
122
- end
123
-
124
- ##
125
- # Shortcut for RDoc::Markup::ListItem.new with +label+ and +parts+
126
-
127
- def item label = nil, *parts
128
- @RM::ListItem.new label, *parts
129
- end
130
-
131
- ##
132
- # Shortcut for RDoc::Markup::List.new with +type+ and +items+
133
-
134
- def list type = nil, *items
135
- @RM::List.new type, *items
136
- end
137
-
138
- ##
139
- # Enables pretty-print output
140
-
141
- def mu_pp obj # :nodoc:
142
- s = ''
143
- s = PP.pp obj, s
144
- s = s.force_encoding Encoding.default_external
145
- s.chomp
146
- end
147
-
148
- ##
149
- # Shortcut for RDoc::Markup::Paragraph.new with +contents+
150
-
151
- def para *a
152
- @RM::Paragraph.new(*a)
153
- end
154
-
155
- ##
156
- # Shortcut for RDoc::Markup::Rule.new with +weight+
157
-
158
- def rule weight
159
- @RM::Rule.new weight
160
- end
161
-
162
- ##
163
- # Shortcut for RDoc::Markup::Raw.new with +contents+
164
-
165
- def raw *contents
166
- @RM::Raw.new(*contents)
167
- end
168
-
169
- ##
170
- # Creates a temporary directory changes the current directory to it for the
171
- # duration of the block.
172
- #
173
- # Depends upon Dir.mktmpdir
174
-
175
- def temp_dir
176
- Dir.mktmpdir do |temp_dir|
177
- Dir.chdir temp_dir do
178
- yield temp_dir
179
- end
180
- end
181
- end
182
-
183
- ##
184
- # Shortcut for RDoc::Markup::Verbatim.new with +parts+
185
-
186
- def verb *parts
187
- @RM::Verbatim.new(*parts)
188
- end
189
-
190
- ##
191
- # run capture_io with setting $VERBOSE = true
192
-
193
- def verbose_capture_io
194
- capture_io do
195
- begin
196
- orig_verbose = $VERBOSE
197
- $VERBOSE = true
198
- yield
199
- ensure
200
- $VERBOSE = orig_verbose
201
- end
202
- end
203
- end
204
- end