rdoc 6.0.0.beta2 → 6.0.0.beta3
This diff has not been reviewed by any users.
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +3 -3
- data/CONTRIBUTING.rdoc +4 -4
- data/README.rdoc +1 -1
- data/Rakefile +5 -3
- data/appveyor.yml +22 -8
- data/lib/rdoc.rb +1 -1
- data/lib/rdoc/any_method.rb +1 -2
- data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/class.rhtml +1 -1
- data/lib/rdoc/i18n.rb +1 -1
- data/lib/rdoc/markdown.kpeg +1 -1
- data/lib/rdoc/markup.rb +2 -2
- data/lib/rdoc/markup/to_html.rb +1 -1
- data/lib/rdoc/parser.rb +0 -25
- data/lib/rdoc/parser/ruby.rb +10 -12
- data/lib/rdoc/ri/driver.rb +55 -5
- data/lib/rdoc/servlet.rb +1 -1
- data/lib/rdoc/stats/normal.rb +8 -2
- data/lib/rdoc/text.rb +0 -11
- data/lib/rdoc/token_stream.rb +2 -15
- data/rdoc.gemspec +12 -6
- metadata +4 -3
- data/lib/rdoc/ruby_token.rb +0 -470
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2f0664803866527a745f0bd9497407b3fb2efecff918b205368ad1c429a63954
|
4
|
+
data.tar.gz: 98336bc89aab5c3b779b518a8a51b5dd4d48fbc9c592cf5b57b41d8876c725e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4602b0b46be7eec1d5efbdbdb9dc029b6e0bdd074c3a513dae02c9fb227bf9faadc7cbfefb6423531f3b9939116534d3f24ec63c4d48964c96a16607814aa2a
|
7
|
+
data.tar.gz: 67e6b12048e14cacf0f96b6480b63acf90348990fc28f1bc34ed7c2df42375c56c3ee44a9ad30ae5f6b7d462ea35b7f1e5ead35b64e80bc077c6ec1dee2bcc66
|
data/.travis.yml
CHANGED
data/CONTRIBUTING.rdoc
CHANGED
@@ -8,7 +8,7 @@ classes for each feature.
|
|
8
8
|
== Bugs
|
9
9
|
|
10
10
|
If you think you found a bug, file a ticket on the {issues
|
11
|
-
tracker}[https://github.com/
|
11
|
+
tracker}[https://github.com/ruby/rdoc/issues] on github.
|
12
12
|
|
13
13
|
If your bug involves an error RDoc produced please include a sample file that
|
14
14
|
illustrates the problem or link to the repository or gem that is associated
|
@@ -17,8 +17,8 @@ with the bug.
|
|
17
17
|
Please include steps to reproduce the issue. Here are some examples of good
|
18
18
|
issues:
|
19
19
|
|
20
|
-
* https://github.com/
|
21
|
-
* https://github.com/
|
20
|
+
* https://github.com/ruby/rdoc/issues/55
|
21
|
+
* https://github.com/ruby/rdoc/issues/61
|
22
22
|
|
23
23
|
== Developer Quick Start
|
24
24
|
|
@@ -35,7 +35,7 @@ This will install all the necessary dependencies for development with rake,
|
|
35
35
|
generate documentation and run the tests for the first time.
|
36
36
|
|
37
37
|
If the tests don't pass on the first run check the {Travis CI page for
|
38
|
-
RDoc}[https://travis-ci.org/
|
38
|
+
RDoc}[https://travis-ci.org/ruby/rdoc] to see if there are any known failures
|
39
39
|
(there shouldn't be).
|
40
40
|
|
41
41
|
You can now use `rake` and `autotest` to run the tests.
|
data/README.rdoc
CHANGED
@@ -47,7 +47,7 @@ contain just Markup-style markup (with or without leading '#' comment
|
|
47
47
|
markers). If directory names are passed to RDoc, they are scanned
|
48
48
|
recursively for C and Ruby source files only.
|
49
49
|
|
50
|
-
To generate documentation using +rake+ see RDoc::Task[https://
|
50
|
+
To generate documentation using +rake+ see RDoc::Task[https://ruby.github.io/rdoc/RDocTask.html].
|
51
51
|
|
52
52
|
To generate documentation programmatically:
|
53
53
|
|
data/Rakefile
CHANGED
@@ -62,11 +62,11 @@ parsed_files = PARSER_FILES.map do |parser_file|
|
|
62
62
|
if parser_file =~ /\.ry\z/ # need racc
|
63
63
|
racc = Gem.bin_path 'racc', 'racc'
|
64
64
|
rb_file = parser_file.gsub(/\.ry\z/, ".rb")
|
65
|
-
ruby "
|
65
|
+
ruby "#{racc} -l -o #{rb_file} #{parser_file}"
|
66
66
|
elsif parser_file =~ /\.kpeg\z/ # need kpeg
|
67
67
|
kpeg = Gem.bin_path 'kpeg', 'kpeg'
|
68
68
|
rb_file = parser_file.gsub(/\.kpeg\z/, ".rb")
|
69
|
-
ruby "
|
69
|
+
ruby "#{kpeg} -fsv -o #{rb_file} #{parser_file}"
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
@@ -74,9 +74,11 @@ parsed_files = PARSER_FILES.map do |parser_file|
|
|
74
74
|
end
|
75
75
|
|
76
76
|
task "#{path}.gem" => package_parser_files
|
77
|
-
task :generate => parsed_files
|
78
77
|
task :check_manifest => :generate
|
79
78
|
|
79
|
+
desc "Genrate all files used racc and kpeg"
|
80
|
+
task :generate => parsed_files
|
81
|
+
|
80
82
|
# These tasks expect to have the following directory structure:
|
81
83
|
#
|
82
84
|
# git/git.rubini.us/code # Rubinius git HEAD checkout
|
data/appveyor.yml
CHANGED
@@ -1,18 +1,32 @@
|
|
1
1
|
---
|
2
|
+
init:
|
3
|
+
# To avoid duplicated executables in PATH, see https://github.com/ruby/spec/pull/468
|
4
|
+
- set PATH=C:\ruby%RUBY_VERSION%\bin;C:\msys64\usr\bin;C:\Program Files\7-Zip;C:\Program Files\AppVeyor\BuildAgent;C:\Program Files\Git\cmd;C:\Windows\system32;C:\Program Files;C:\Windows
|
5
|
+
# Loads trunk build and updates MSYS2 / MinGW to most recent gcc compiler
|
6
|
+
- if %ruby_version%==_trunk (
|
7
|
+
appveyor DownloadFile %APPVEYOR_URL%/api/projects/MSP-Greg/ruby-loco/artifacts/ruby_trunk.7z -FileName C:\ruby_trunk.7z &
|
8
|
+
7z x C:\ruby_trunk.7z -oC:\ruby_trunk)
|
9
|
+
|
2
10
|
install:
|
3
|
-
- SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
|
4
|
-
- gem install bundler --no-document
|
5
11
|
- bundle install
|
12
|
+
|
6
13
|
build: off
|
14
|
+
|
7
15
|
test_script:
|
8
16
|
- rake
|
17
|
+
|
18
|
+
on_finish:
|
19
|
+
- ruby -v
|
20
|
+
|
9
21
|
deploy: off
|
22
|
+
|
10
23
|
environment:
|
11
24
|
NOBENCHMARK: 1
|
12
25
|
matrix:
|
13
|
-
- ruby_version:
|
14
|
-
- ruby_version:
|
15
|
-
- ruby_version:
|
16
|
-
- ruby_version:
|
17
|
-
- ruby_version:
|
18
|
-
- ruby_version:
|
26
|
+
- ruby_version: 22
|
27
|
+
- ruby_version: 22-x64
|
28
|
+
- ruby_version: 23
|
29
|
+
- ruby_version: 23-x64
|
30
|
+
- ruby_version: 24
|
31
|
+
- ruby_version: 24-x64
|
32
|
+
- ruby_version: _trunk
|
data/lib/rdoc.rb
CHANGED
data/lib/rdoc/any_method.rb
CHANGED
@@ -276,8 +276,7 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
276
276
|
# &block
|
277
277
|
params.sub!(/,?\s*&\w+/, '')
|
278
278
|
|
279
|
-
block = @block_params.
|
280
|
-
block = block.tr("\n", " ").squeeze(" ")
|
279
|
+
block = @block_params.tr("\n", " ").squeeze(" ")
|
281
280
|
if block[0] == ?(
|
282
281
|
block.sub!(/^\(/, '').sub!(/\)/, '')
|
283
282
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<footer id="validator-badges" role="contentinfo">
|
2
|
-
<p><a href="
|
3
|
-
<p>Generated by <a href="https://
|
2
|
+
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
3
|
+
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> <%= RDoc::VERSION %>.
|
4
4
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
5
5
|
</footer>
|
@@ -114,7 +114,7 @@
|
|
114
114
|
<% else %>
|
115
115
|
<div class="method-heading">
|
116
116
|
<span class="method-name"><%= h method.name %></span><span
|
117
|
-
class="method-args"><%= method.param_seq %></span>
|
117
|
+
class="method-args"><%= h method.param_seq %></span>
|
118
118
|
<% if method.token_stream then %>
|
119
119
|
<span class="method-click-advice">click to toggle source</span>
|
120
120
|
<% end %>
|
data/lib/rdoc/i18n.rb
CHANGED
data/lib/rdoc/markdown.kpeg
CHANGED
@@ -1161,7 +1161,7 @@ CodeFence = &{ github? }
|
|
1161
1161
|
@Newline
|
1162
1162
|
)+ > Ticks3 @Sp @Newline*
|
1163
1163
|
{ verbatim = RDoc::Markup::Verbatim.new text
|
1164
|
-
verbatim.format = format.intern if format
|
1164
|
+
verbatim.format = format.intern if format.instance_of?(String)
|
1165
1165
|
verbatim
|
1166
1166
|
}
|
1167
1167
|
|
data/lib/rdoc/markup.rb
CHANGED
@@ -377,7 +377,7 @@
|
|
377
377
|
#
|
378
378
|
# Example links:
|
379
379
|
#
|
380
|
-
# https://github.com/
|
380
|
+
# https://github.com/ruby/rdoc
|
381
381
|
# mailto:user@example.com
|
382
382
|
# {RDoc Documentation}[http://rdoc.rubyforge.org]
|
383
383
|
# {RDoc Markup}[rdoc-ref:RDoc::Markup]
|
@@ -764,7 +764,7 @@ Ruby #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} #{RUBY_RELEASE_DATE}
|
|
764
764
|
|
765
765
|
Please file a bug report with the above information at:
|
766
766
|
|
767
|
-
https://github.com/
|
767
|
+
https://github.com/ruby/rdoc/issues
|
768
768
|
|
769
769
|
EOF
|
770
770
|
raise
|
data/lib/rdoc/markup/to_html.rb
CHANGED
data/lib/rdoc/parser.rb
CHANGED
@@ -87,31 +87,6 @@ class RDoc::Parser
|
|
87
87
|
not s.valid_encoding?
|
88
88
|
end
|
89
89
|
|
90
|
-
##
|
91
|
-
# Processes common directives for CodeObjects for the C and Ruby parsers.
|
92
|
-
#
|
93
|
-
# Applies +directive+'s +value+ to +code_object+, if appropriate
|
94
|
-
|
95
|
-
def self.process_directive code_object, directive, value
|
96
|
-
warn "RDoc::Parser::process_directive is deprecated and wil be removed in RDoc 4. Use RDoc::Markup::PreProcess#handle_directive instead" if $-w
|
97
|
-
|
98
|
-
case directive
|
99
|
-
when 'nodoc' then
|
100
|
-
code_object.document_self = nil # notify nodoc
|
101
|
-
code_object.document_children = value.downcase != 'all'
|
102
|
-
when 'doc' then
|
103
|
-
code_object.document_self = true
|
104
|
-
code_object.force_documentation = true
|
105
|
-
when 'yield', 'yields' then
|
106
|
-
# remove parameter &block
|
107
|
-
code_object.params.sub!(/,?\s*&\w+/, '') if code_object.params
|
108
|
-
|
109
|
-
code_object.block_params = value
|
110
|
-
when 'arg', 'args' then
|
111
|
-
code_object.params = value
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
90
|
##
|
116
91
|
# Checks if +file+ is a zip file in disguise. Signatures from
|
117
92
|
# http://www.garykessler.net/library/file_sigs.html
|
data/lib/rdoc/parser/ruby.rb
CHANGED
@@ -376,7 +376,11 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
376
376
|
unless :on_const == name_t[:kind] || :on_ident == name_t[:kind]
|
377
377
|
raise RDoc::Error, "Invalid class or module definition: #{given_name}"
|
378
378
|
end
|
379
|
-
|
379
|
+
if prev_container == container and !ignore_constants
|
380
|
+
given_name = name_t[:text]
|
381
|
+
else
|
382
|
+
given_name << '::' << name_t[:text]
|
383
|
+
end
|
380
384
|
end
|
381
385
|
|
382
386
|
skip_tkspace false
|
@@ -872,21 +876,17 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
872
876
|
|
873
877
|
return unless name =~ /^\w+$/
|
874
878
|
|
875
|
-
|
876
|
-
|
877
|
-
if :on_op == eq_tk[:kind] && '::' == eq_tk[:text] then
|
878
|
-
unget_tk eq_tk
|
879
|
+
if :on_op == peek_tk[:kind] && '::' == peek_tk[:text] then
|
879
880
|
unget_tk tk
|
880
881
|
|
881
882
|
container, name_t, = get_class_or_module container, ignore_constants
|
882
883
|
|
883
884
|
name = name_t[:text]
|
884
|
-
|
885
|
-
eq_tk = get_tk
|
886
885
|
end
|
887
886
|
|
888
887
|
is_array_or_hash = false
|
889
|
-
if
|
888
|
+
if peek_tk && :on_lbracket == peek_tk[:kind]
|
889
|
+
get_tk
|
890
890
|
nest = 1
|
891
891
|
while bracket_tk = get_tk
|
892
892
|
case bracket_tk[:kind]
|
@@ -898,14 +898,13 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
898
898
|
end
|
899
899
|
end
|
900
900
|
skip_tkspace false
|
901
|
-
eq_tk = get_tk
|
902
901
|
is_array_or_hash = true
|
903
902
|
end
|
904
903
|
|
905
|
-
unless
|
906
|
-
unget_tk eq_tk
|
904
|
+
unless peek_tk && :on_op == peek_tk[:kind] && '=' == peek_tk[:text] then
|
907
905
|
return false
|
908
906
|
end
|
907
|
+
get_tk
|
909
908
|
|
910
909
|
value = ''
|
911
910
|
con = RDoc::Constant.new name, value, comment
|
@@ -1623,7 +1622,6 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
1623
1622
|
def parse_rescue
|
1624
1623
|
skip_tkspace false
|
1625
1624
|
|
1626
|
-
nest = 0
|
1627
1625
|
while tk = get_tk
|
1628
1626
|
case tk[:kind]
|
1629
1627
|
when :on_nl, :on_semicolon, :on_comment then
|
data/lib/rdoc/ri/driver.rb
CHANGED
@@ -47,13 +47,24 @@ class RDoc::RI::Driver
|
|
47
47
|
|
48
48
|
class NotFoundError < Error
|
49
49
|
|
50
|
+
def initialize(klass, suggestions = nil) # :nodoc:
|
51
|
+
@klass = klass
|
52
|
+
@suggestions = suggestions
|
53
|
+
end
|
54
|
+
|
50
55
|
##
|
51
56
|
# Name that wasn't found
|
52
57
|
|
53
|
-
|
58
|
+
def name
|
59
|
+
@klass
|
60
|
+
end
|
54
61
|
|
55
62
|
def message # :nodoc:
|
56
|
-
"Nothing known about #{
|
63
|
+
str = "Nothing known about #{@klass}"
|
64
|
+
if @suggestions and !@suggestions.empty?
|
65
|
+
str += "\nDid you mean? #{@suggestions.join("\n ")}"
|
66
|
+
end
|
67
|
+
str
|
57
68
|
end
|
58
69
|
end
|
59
70
|
|
@@ -917,13 +928,38 @@ or the PAGER environment variable.
|
|
917
928
|
display out
|
918
929
|
end
|
919
930
|
|
931
|
+
def check_did_you_mean # :nodoc:
|
932
|
+
if defined? DidYouMean::SpellChecker
|
933
|
+
true
|
934
|
+
else
|
935
|
+
begin
|
936
|
+
require 'did_you_mean'
|
937
|
+
if defined? DidYouMean::SpellChecker
|
938
|
+
true
|
939
|
+
else
|
940
|
+
false
|
941
|
+
end
|
942
|
+
rescue LoadError
|
943
|
+
false
|
944
|
+
end
|
945
|
+
end
|
946
|
+
end
|
947
|
+
|
920
948
|
##
|
921
949
|
# Expands abbreviated klass +klass+ into a fully-qualified class. "Zl::Da"
|
922
950
|
# will be expanded to Zlib::DataError.
|
923
951
|
|
924
952
|
def expand_class klass
|
925
|
-
|
926
|
-
|
953
|
+
class_names = classes.keys
|
954
|
+
ary = class_names.grep(Regexp.new("\\A#{klass.gsub(/(?=::|\z)/, '[^:]*')}\\z"))
|
955
|
+
if ary.length != 1 && ary.first != klass
|
956
|
+
if check_did_you_mean
|
957
|
+
suggestions = DidYouMean::SpellChecker.new(dictionary: class_names).correct(klass)
|
958
|
+
raise NotFoundError.new(klass, suggestions)
|
959
|
+
else
|
960
|
+
raise NotFoundError, klass
|
961
|
+
end
|
962
|
+
end
|
927
963
|
ary.first
|
928
964
|
end
|
929
965
|
|
@@ -1235,7 +1271,21 @@ or the PAGER environment variable.
|
|
1235
1271
|
def lookup_method name
|
1236
1272
|
found = load_methods_matching name
|
1237
1273
|
|
1238
|
-
|
1274
|
+
if found.empty?
|
1275
|
+
if check_did_you_mean
|
1276
|
+
methods = []
|
1277
|
+
_, _, method_name = parse_name name
|
1278
|
+
find_methods name do |store, klass, ancestor, types, method|
|
1279
|
+
methods.push(*store.class_methods[klass]) if [:class, :both].include? types
|
1280
|
+
methods.push(*store.instance_methods[klass]) if [:instance, :both].include? types
|
1281
|
+
end
|
1282
|
+
methods = methods.uniq
|
1283
|
+
suggestions = DidYouMean::SpellChecker.new(dictionary: methods).correct(method_name)
|
1284
|
+
raise NotFoundError.new(name, suggestions)
|
1285
|
+
else
|
1286
|
+
raise NotFoundError, name
|
1287
|
+
end
|
1288
|
+
end
|
1239
1289
|
|
1240
1290
|
filter_methods found, name
|
1241
1291
|
end
|
data/lib/rdoc/servlet.rb
CHANGED
@@ -217,7 +217,7 @@ exception:
|
|
217
217
|
<pre>#{ERB::Util.html_escape exception.message}</pre>
|
218
218
|
|
219
219
|
<p>Please report this to the
|
220
|
-
<a href="https://github.com/
|
220
|
+
<a href="https://github.com/ruby/rdoc/issues">RDoc issues tracker</a>. Please
|
221
221
|
include the RDoc version, the URI above and exception class, message and
|
222
222
|
backtrace. If you're viewing a gem's documentation, include the gem name and
|
223
223
|
version. If you're viewing Ruby's documentation, include the version of ruby.
|
data/lib/rdoc/stats/normal.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
|
-
|
2
|
+
begin
|
3
|
+
require 'io/console/size'
|
4
|
+
rescue LoadError
|
5
|
+
# for JRuby
|
6
|
+
require 'io/console'
|
7
|
+
end
|
3
8
|
|
4
9
|
##
|
5
10
|
# Stats printer that prints just the files being documented with a progress
|
@@ -23,7 +28,8 @@ class RDoc::Stats::Normal < RDoc::Stats::Quiet
|
|
23
28
|
|
24
29
|
# Print a progress bar, but make sure it fits on a single line. Filename
|
25
30
|
# will be truncated if necessary.
|
26
|
-
|
31
|
+
size = IO.respond_to?(:console_size) ? IO.console_size : IO.console.winsize
|
32
|
+
terminal_width = size[1].to_i.nonzero? || 80
|
27
33
|
max_filename_size = terminal_width - progress_bar.size
|
28
34
|
|
29
35
|
if filename.size > max_filename_size then
|
data/lib/rdoc/text.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# coding: utf-8
|
2
1
|
# frozen_string_literal: false
|
3
2
|
|
4
3
|
##
|
@@ -6,16 +5,6 @@
|
|
6
5
|
|
7
6
|
require 'strscan'
|
8
7
|
|
9
|
-
##
|
10
|
-
# For RDoc::Text#snippet
|
11
|
-
|
12
|
-
begin
|
13
|
-
gem 'json'
|
14
|
-
rescue NameError => e # --disable-gems
|
15
|
-
raise unless e.name == :gem
|
16
|
-
rescue Gem::LoadError
|
17
|
-
end
|
18
|
-
|
19
8
|
##
|
20
9
|
# Methods for manipulating comment text
|
21
10
|
|
data/lib/rdoc/token_stream.rb
CHANGED
@@ -10,21 +10,8 @@ module RDoc::TokenStream
|
|
10
10
|
|
11
11
|
##
|
12
12
|
# Converts +token_stream+ to HTML wrapping various tokens with
|
13
|
-
# <tt><span></tt> elements.
|
14
|
-
# with the given class names
|
15
|
-
#
|
16
|
-
# TkCONSTANT :: 'ruby-constant'
|
17
|
-
# TkKW :: 'ruby-keyword'
|
18
|
-
# TkIVAR :: 'ruby-ivar'
|
19
|
-
# TkOp :: 'ruby-operator'
|
20
|
-
# TkId :: 'ruby-identifier'
|
21
|
-
# TkNode :: 'ruby-node'
|
22
|
-
# TkCOMMENT :: 'ruby-comment'
|
23
|
-
# TkREGEXP :: 'ruby-regexp'
|
24
|
-
# TkSTRING :: 'ruby-string'
|
25
|
-
# TkVal :: 'ruby-value'
|
26
|
-
#
|
27
|
-
# Other token types are not wrapped in spans.
|
13
|
+
# <tt><span></tt> elements. Some tokens types are wrapped in spans
|
14
|
+
# with the given class names. Other token types are not wrapped in spans.
|
28
15
|
|
29
16
|
def self.to_html token_stream
|
30
17
|
token_stream.map do |t|
|
data/rdoc.gemspec
CHANGED
@@ -1,19 +1,25 @@
|
|
1
|
-
|
1
|
+
begin
|
2
|
+
require_relative "lib/rdoc"
|
3
|
+
rescue LoadError
|
4
|
+
# for Ruby repository
|
5
|
+
require_relative "../rdoc"
|
6
|
+
end
|
2
7
|
|
3
8
|
Gem::Specification.new do |s|
|
4
9
|
s.name = "rdoc"
|
5
10
|
s.version = RDoc::VERSION
|
6
|
-
s.date = "2017-
|
7
|
-
|
11
|
+
s.date = "2017-10-10"
|
12
|
+
|
8
13
|
s.authors = [
|
9
14
|
"Eric Hodel",
|
10
15
|
"Dave Thomas",
|
11
16
|
"Phil Hagelberg",
|
12
17
|
"Tony Strauss",
|
13
18
|
"Zachary Scott",
|
14
|
-
"Hiroshi SHIBATA"
|
19
|
+
"Hiroshi SHIBATA",
|
20
|
+
"ITOYANAGI Sakura"
|
15
21
|
]
|
16
|
-
s.email = ["drbrain@segment7.net", "", "", "", "mail@zzak.io", "hsbt@ruby-lang.org"]
|
22
|
+
s.email = ["drbrain@segment7.net", "", "", "", "mail@zzak.io", "hsbt@ruby-lang.org", "aycabta@gmail.com"]
|
17
23
|
|
18
24
|
s.summary = "RDoc produces HTML and command-line documentation for Ruby projects"
|
19
25
|
s.description = <<-DESCRIPTION
|
@@ -27,7 +33,7 @@ RDoc includes the +rdoc+ and +ri+ tools for generating and displaying documentat
|
|
27
33
|
s.executables = ["rdoc", "ri"]
|
28
34
|
s.require_paths = ["lib"]
|
29
35
|
# for ruby core repository. It was generated by `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
30
|
-
s.files = [".document", ".gitignore", ".travis.yml", "CONTRIBUTING.rdoc", "CVE-2013-0256.rdoc", "ExampleMarkdown.md", "ExampleRDoc.rdoc", "Gemfile", "History.rdoc", "LEGAL.rdoc", "LICENSE.rdoc", "README.rdoc", "RI.rdoc", "Rakefile", "TODO.rdoc", "appveyor.yml", "bin/console", "bin/setup", "exe/rdoc", "exe/ri", "lib/rdoc.rb", "lib/rdoc/alias.rb", "lib/rdoc/anon_class.rb", "lib/rdoc/any_method.rb", "lib/rdoc/attr.rb", "lib/rdoc/class_module.rb", "lib/rdoc/code_object.rb", "lib/rdoc/code_objects.rb", "lib/rdoc/comment.rb", "lib/rdoc/constant.rb", "lib/rdoc/context.rb", "lib/rdoc/context/section.rb", "lib/rdoc/cross_reference.rb", "lib/rdoc/encoding.rb", "lib/rdoc/erb_partial.rb", "lib/rdoc/erbio.rb", "lib/rdoc/extend.rb", "lib/rdoc/generator.rb", "lib/rdoc/generator/darkfish.rb", "lib/rdoc/generator/json_index.rb", "lib/rdoc/generator/markup.rb", "lib/rdoc/generator/pot.rb", "lib/rdoc/generator/pot/message_extractor.rb", "lib/rdoc/generator/pot/po.rb", "lib/rdoc/generator/pot/po_entry.rb", "lib/rdoc/generator/ri.rb", "lib/rdoc/generator/template/darkfish/.document", "lib/rdoc/generator/template/darkfish/_footer.rhtml", "lib/rdoc/generator/template/darkfish/_head.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml", "lib/rdoc/generator/template/darkfish/class.rhtml", "lib/rdoc/generator/template/darkfish/css/fonts.css", "lib/rdoc/generator/template/darkfish/css/rdoc.css", "lib/rdoc/generator/template/darkfish/fonts/Lato-Light.ttf", "lib/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttf", "lib/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttf", "lib/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttf", "lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf", "lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf", "lib/rdoc/generator/template/darkfish/images/add.png", "lib/rdoc/generator/template/darkfish/images/arrow_up.png", "lib/rdoc/generator/template/darkfish/images/brick.png", "lib/rdoc/generator/template/darkfish/images/brick_link.png", "lib/rdoc/generator/template/darkfish/images/bug.png", "lib/rdoc/generator/template/darkfish/images/bullet_black.png", "lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png", "lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png", "lib/rdoc/generator/template/darkfish/images/date.png", "lib/rdoc/generator/template/darkfish/images/delete.png", "lib/rdoc/generator/template/darkfish/images/find.png", "lib/rdoc/generator/template/darkfish/images/loadingAnimation.gif", "lib/rdoc/generator/template/darkfish/images/macFFBgHack.png", "lib/rdoc/generator/template/darkfish/images/package.png", "lib/rdoc/generator/template/darkfish/images/page_green.png", "lib/rdoc/generator/template/darkfish/images/page_white_text.png", "lib/rdoc/generator/template/darkfish/images/page_white_width.png", "lib/rdoc/generator/template/darkfish/images/plugin.png", "lib/rdoc/generator/template/darkfish/images/ruby.png", "lib/rdoc/generator/template/darkfish/images/tag_blue.png", "lib/rdoc/generator/template/darkfish/images/tag_green.png", "lib/rdoc/generator/template/darkfish/images/transparent.png", "lib/rdoc/generator/template/darkfish/images/wrench.png", "lib/rdoc/generator/template/darkfish/images/wrench_orange.png", "lib/rdoc/generator/template/darkfish/images/zoom.png", "lib/rdoc/generator/template/darkfish/index.rhtml", "lib/rdoc/generator/template/darkfish/js/darkfish.js", "lib/rdoc/generator/template/darkfish/js/jquery.js", "lib/rdoc/generator/template/darkfish/js/search.js", "lib/rdoc/generator/template/darkfish/page.rhtml", "lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml", "lib/rdoc/generator/template/darkfish/servlet_root.rhtml", "lib/rdoc/generator/template/darkfish/table_of_contents.rhtml", "lib/rdoc/generator/template/json_index/.document", "lib/rdoc/generator/template/json_index/js/navigation.js", "lib/rdoc/generator/template/json_index/js/searcher.js", "lib/rdoc/ghost_method.rb", "lib/rdoc/i18n.rb", "lib/rdoc/i18n/locale.rb", "lib/rdoc/i18n/text.rb", "lib/rdoc/include.rb", "lib/rdoc/known_classes.rb", "lib/rdoc/markdown.kpeg", "lib/rdoc/markdown/entities.rb", "lib/rdoc/markdown/literals.kpeg", "lib/rdoc/markdown/literals.rb", "lib/rdoc/markup.rb", "lib/rdoc/markup/attr_changer.rb", "lib/rdoc/markup/attr_span.rb", "lib/rdoc/markup/attribute_manager.rb", "lib/rdoc/markup/attributes.rb", "lib/rdoc/markup/blank_line.rb", "lib/rdoc/markup/block_quote.rb", "lib/rdoc/markup/document.rb", "lib/rdoc/markup/formatter.rb", "lib/rdoc/markup/formatter_test_case.rb", "lib/rdoc/markup/hard_break.rb", "lib/rdoc/markup/heading.rb", "lib/rdoc/markup/include.rb", "lib/rdoc/markup/indented_paragraph.rb", "lib/rdoc/markup/inline.rb", "lib/rdoc/markup/list.rb", "lib/rdoc/markup/list_item.rb", "lib/rdoc/markup/paragraph.rb", "lib/rdoc/markup/parser.rb", "lib/rdoc/markup/pre_process.rb", "lib/rdoc/markup/raw.rb", "lib/rdoc/markup/rule.rb", "lib/rdoc/markup/special.rb", "lib/rdoc/markup/text_formatter_test_case.rb", "lib/rdoc/markup/to_ansi.rb", "lib/rdoc/markup/to_bs.rb", "lib/rdoc/markup/to_html.rb", "lib/rdoc/markup/to_html_crossref.rb", "lib/rdoc/markup/to_html_snippet.rb", "lib/rdoc/markup/to_joined_paragraph.rb", "lib/rdoc/markup/to_label.rb", "lib/rdoc/markup/to_markdown.rb", "lib/rdoc/markup/to_rdoc.rb", "lib/rdoc/markup/to_table_of_contents.rb", "lib/rdoc/markup/to_test.rb", "lib/rdoc/markup/to_tt_only.rb", "lib/rdoc/markup/verbatim.rb", "lib/rdoc/meta_method.rb", "lib/rdoc/method_attr.rb", "lib/rdoc/mixin.rb", "lib/rdoc/normal_class.rb", "lib/rdoc/normal_module.rb", "lib/rdoc/options.rb", "lib/rdoc/parser.rb", "lib/rdoc/parser/c.rb", "lib/rdoc/parser/changelog.rb", "lib/rdoc/parser/markdown.rb", "lib/rdoc/parser/rd.rb", "lib/rdoc/parser/ripper_state_lex.rb", "lib/rdoc/parser/ruby.rb", "lib/rdoc/parser/ruby_tools.rb", "lib/rdoc/parser/simple.rb", "lib/rdoc/parser/text.rb", "lib/rdoc/rd.rb", "lib/rdoc/rd/block_parser.ry", "lib/rdoc/rd/inline.rb", "lib/rdoc/rd/inline_parser.ry", "lib/rdoc/rdoc.rb", "lib/rdoc/require.rb", "lib/rdoc/ri.rb", "lib/rdoc/ri/driver.rb", "lib/rdoc/ri/formatter.rb", "lib/rdoc/ri/paths.rb", "lib/rdoc/ri/store.rb", "lib/rdoc/ri/task.rb", "lib/rdoc/
|
36
|
+
s.files = [".document", ".gitignore", ".travis.yml", "CONTRIBUTING.rdoc", "CVE-2013-0256.rdoc", "ExampleMarkdown.md", "ExampleRDoc.rdoc", "Gemfile", "History.rdoc", "LEGAL.rdoc", "LICENSE.rdoc", "README.rdoc", "RI.rdoc", "Rakefile", "TODO.rdoc", "appveyor.yml", "bin/console", "bin/setup", "exe/rdoc", "exe/ri", "lib/rdoc.rb", "lib/rdoc/alias.rb", "lib/rdoc/anon_class.rb", "lib/rdoc/any_method.rb", "lib/rdoc/attr.rb", "lib/rdoc/class_module.rb", "lib/rdoc/code_object.rb", "lib/rdoc/code_objects.rb", "lib/rdoc/comment.rb", "lib/rdoc/constant.rb", "lib/rdoc/context.rb", "lib/rdoc/context/section.rb", "lib/rdoc/cross_reference.rb", "lib/rdoc/encoding.rb", "lib/rdoc/erb_partial.rb", "lib/rdoc/erbio.rb", "lib/rdoc/extend.rb", "lib/rdoc/generator.rb", "lib/rdoc/generator/darkfish.rb", "lib/rdoc/generator/json_index.rb", "lib/rdoc/generator/markup.rb", "lib/rdoc/generator/pot.rb", "lib/rdoc/generator/pot/message_extractor.rb", "lib/rdoc/generator/pot/po.rb", "lib/rdoc/generator/pot/po_entry.rb", "lib/rdoc/generator/ri.rb", "lib/rdoc/generator/template/darkfish/.document", "lib/rdoc/generator/template/darkfish/_footer.rhtml", "lib/rdoc/generator/template/darkfish/_head.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml", "lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml", "lib/rdoc/generator/template/darkfish/class.rhtml", "lib/rdoc/generator/template/darkfish/css/fonts.css", "lib/rdoc/generator/template/darkfish/css/rdoc.css", "lib/rdoc/generator/template/darkfish/fonts/Lato-Light.ttf", "lib/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttf", "lib/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttf", "lib/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttf", "lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf", "lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf", "lib/rdoc/generator/template/darkfish/images/add.png", "lib/rdoc/generator/template/darkfish/images/arrow_up.png", "lib/rdoc/generator/template/darkfish/images/brick.png", "lib/rdoc/generator/template/darkfish/images/brick_link.png", "lib/rdoc/generator/template/darkfish/images/bug.png", "lib/rdoc/generator/template/darkfish/images/bullet_black.png", "lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png", "lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png", "lib/rdoc/generator/template/darkfish/images/date.png", "lib/rdoc/generator/template/darkfish/images/delete.png", "lib/rdoc/generator/template/darkfish/images/find.png", "lib/rdoc/generator/template/darkfish/images/loadingAnimation.gif", "lib/rdoc/generator/template/darkfish/images/macFFBgHack.png", "lib/rdoc/generator/template/darkfish/images/package.png", "lib/rdoc/generator/template/darkfish/images/page_green.png", "lib/rdoc/generator/template/darkfish/images/page_white_text.png", "lib/rdoc/generator/template/darkfish/images/page_white_width.png", "lib/rdoc/generator/template/darkfish/images/plugin.png", "lib/rdoc/generator/template/darkfish/images/ruby.png", "lib/rdoc/generator/template/darkfish/images/tag_blue.png", "lib/rdoc/generator/template/darkfish/images/tag_green.png", "lib/rdoc/generator/template/darkfish/images/transparent.png", "lib/rdoc/generator/template/darkfish/images/wrench.png", "lib/rdoc/generator/template/darkfish/images/wrench_orange.png", "lib/rdoc/generator/template/darkfish/images/zoom.png", "lib/rdoc/generator/template/darkfish/index.rhtml", "lib/rdoc/generator/template/darkfish/js/darkfish.js", "lib/rdoc/generator/template/darkfish/js/jquery.js", "lib/rdoc/generator/template/darkfish/js/search.js", "lib/rdoc/generator/template/darkfish/page.rhtml", "lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml", "lib/rdoc/generator/template/darkfish/servlet_root.rhtml", "lib/rdoc/generator/template/darkfish/table_of_contents.rhtml", "lib/rdoc/generator/template/json_index/.document", "lib/rdoc/generator/template/json_index/js/navigation.js", "lib/rdoc/generator/template/json_index/js/searcher.js", "lib/rdoc/ghost_method.rb", "lib/rdoc/i18n.rb", "lib/rdoc/i18n/locale.rb", "lib/rdoc/i18n/text.rb", "lib/rdoc/include.rb", "lib/rdoc/known_classes.rb", "lib/rdoc/markdown.kpeg", "lib/rdoc/markdown/entities.rb", "lib/rdoc/markdown/literals.kpeg", "lib/rdoc/markdown/literals.rb", "lib/rdoc/markup.rb", "lib/rdoc/markup/attr_changer.rb", "lib/rdoc/markup/attr_span.rb", "lib/rdoc/markup/attribute_manager.rb", "lib/rdoc/markup/attributes.rb", "lib/rdoc/markup/blank_line.rb", "lib/rdoc/markup/block_quote.rb", "lib/rdoc/markup/document.rb", "lib/rdoc/markup/formatter.rb", "lib/rdoc/markup/formatter_test_case.rb", "lib/rdoc/markup/hard_break.rb", "lib/rdoc/markup/heading.rb", "lib/rdoc/markup/include.rb", "lib/rdoc/markup/indented_paragraph.rb", "lib/rdoc/markup/inline.rb", "lib/rdoc/markup/list.rb", "lib/rdoc/markup/list_item.rb", "lib/rdoc/markup/paragraph.rb", "lib/rdoc/markup/parser.rb", "lib/rdoc/markup/pre_process.rb", "lib/rdoc/markup/raw.rb", "lib/rdoc/markup/rule.rb", "lib/rdoc/markup/special.rb", "lib/rdoc/markup/text_formatter_test_case.rb", "lib/rdoc/markup/to_ansi.rb", "lib/rdoc/markup/to_bs.rb", "lib/rdoc/markup/to_html.rb", "lib/rdoc/markup/to_html_crossref.rb", "lib/rdoc/markup/to_html_snippet.rb", "lib/rdoc/markup/to_joined_paragraph.rb", "lib/rdoc/markup/to_label.rb", "lib/rdoc/markup/to_markdown.rb", "lib/rdoc/markup/to_rdoc.rb", "lib/rdoc/markup/to_table_of_contents.rb", "lib/rdoc/markup/to_test.rb", "lib/rdoc/markup/to_tt_only.rb", "lib/rdoc/markup/verbatim.rb", "lib/rdoc/meta_method.rb", "lib/rdoc/method_attr.rb", "lib/rdoc/mixin.rb", "lib/rdoc/normal_class.rb", "lib/rdoc/normal_module.rb", "lib/rdoc/options.rb", "lib/rdoc/parser.rb", "lib/rdoc/parser/c.rb", "lib/rdoc/parser/changelog.rb", "lib/rdoc/parser/markdown.rb", "lib/rdoc/parser/rd.rb", "lib/rdoc/parser/ripper_state_lex.rb", "lib/rdoc/parser/ruby.rb", "lib/rdoc/parser/ruby_tools.rb", "lib/rdoc/parser/simple.rb", "lib/rdoc/parser/text.rb", "lib/rdoc/rd.rb", "lib/rdoc/rd/block_parser.ry", "lib/rdoc/rd/inline.rb", "lib/rdoc/rd/inline_parser.ry", "lib/rdoc/rdoc.rb", "lib/rdoc/require.rb", "lib/rdoc/ri.rb", "lib/rdoc/ri/driver.rb", "lib/rdoc/ri/formatter.rb", "lib/rdoc/ri/paths.rb", "lib/rdoc/ri/store.rb", "lib/rdoc/ri/task.rb", "lib/rdoc/rubygems_hook.rb", "lib/rdoc/servlet.rb", "lib/rdoc/single_class.rb", "lib/rdoc/stats.rb", "lib/rdoc/stats/normal.rb", "lib/rdoc/stats/quiet.rb", "lib/rdoc/stats/verbose.rb", "lib/rdoc/store.rb", "lib/rdoc/task.rb", "lib/rdoc/test_case.rb", "lib/rdoc/text.rb", "lib/rdoc/token_stream.rb", "lib/rdoc/tom_doc.rb", "lib/rdoc/top_level.rb", "rdoc.gemspec"]
|
31
37
|
# files from .gitignore
|
32
38
|
s.files << "lib/rdoc/rd/block_parser.rb" << "lib/rdoc/rd/inline_parser.rb" << "lib/rdoc/markdown.rb"
|
33
39
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.0.
|
4
|
+
version: 6.0.0.beta3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Hodel
|
@@ -10,10 +10,11 @@ authors:
|
|
10
10
|
- Tony Strauss
|
11
11
|
- Zachary Scott
|
12
12
|
- Hiroshi SHIBATA
|
13
|
+
- ITOYANAGI Sakura
|
13
14
|
autorequire:
|
14
15
|
bindir: exe
|
15
16
|
cert_chain: []
|
16
|
-
date: 2017-
|
17
|
+
date: 2017-10-10 00:00:00.000000000 Z
|
17
18
|
dependencies:
|
18
19
|
- !ruby/object:Gem::Dependency
|
19
20
|
name: rake
|
@@ -95,6 +96,7 @@ email:
|
|
95
96
|
- ''
|
96
97
|
- mail@zzak.io
|
97
98
|
- hsbt@ruby-lang.org
|
99
|
+
- aycabta@gmail.com
|
98
100
|
executables:
|
99
101
|
- rdoc
|
100
102
|
- ri
|
@@ -296,7 +298,6 @@ files:
|
|
296
298
|
- lib/rdoc/ri/paths.rb
|
297
299
|
- lib/rdoc/ri/store.rb
|
298
300
|
- lib/rdoc/ri/task.rb
|
299
|
-
- lib/rdoc/ruby_token.rb
|
300
301
|
- lib/rdoc/rubygems_hook.rb
|
301
302
|
- lib/rdoc/servlet.rb
|
302
303
|
- lib/rdoc/single_class.rb
|
data/lib/rdoc/ruby_token.rb
DELETED
@@ -1,470 +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(seek, line, char)
|
30
|
-
@prev_seek = seek
|
31
|
-
@prev_line_no = line
|
32
|
-
@prev_char_no = char
|
33
|
-
end
|
34
|
-
|
35
|
-
class Token
|
36
|
-
def initialize(seek, line_no, char_no, text = nil)
|
37
|
-
@seek = seek
|
38
|
-
@line_no = line_no
|
39
|
-
@char_no = char_no
|
40
|
-
@text = text
|
41
|
-
end
|
42
|
-
|
43
|
-
attr_reader :seek
|
44
|
-
attr_reader :line_no
|
45
|
-
attr_reader :char_no
|
46
|
-
|
47
|
-
attr_accessor :text
|
48
|
-
|
49
|
-
def ==(other)
|
50
|
-
self.class == other.class and
|
51
|
-
other.line_no == @line_no and
|
52
|
-
other.char_no == @char_no and
|
53
|
-
other.text == @text
|
54
|
-
end
|
55
|
-
|
56
|
-
##
|
57
|
-
# Because we're used in contexts that expect to return a token, we set the
|
58
|
-
# text string and then return ourselves
|
59
|
-
|
60
|
-
def set_text(text)
|
61
|
-
@text = text
|
62
|
-
self
|
63
|
-
end
|
64
|
-
|
65
|
-
def inspect # :nodoc:
|
66
|
-
klass = self.class.name.split('::').last
|
67
|
-
"{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @text]
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
71
|
-
|
72
|
-
class TkNode < Token
|
73
|
-
def initialize(seek, line_no, char_no, node = nil)
|
74
|
-
super seek, line_no, char_no
|
75
|
-
@node = node
|
76
|
-
end
|
77
|
-
|
78
|
-
attr_reader:node
|
79
|
-
|
80
|
-
def ==(other)
|
81
|
-
self.class == other.class and
|
82
|
-
other.line_no == @line_no and
|
83
|
-
other.char_no == @char_no and
|
84
|
-
other.node == @node
|
85
|
-
end
|
86
|
-
|
87
|
-
def set_text text
|
88
|
-
@node = text
|
89
|
-
self
|
90
|
-
end
|
91
|
-
|
92
|
-
alias text node
|
93
|
-
|
94
|
-
def inspect # :nodoc:
|
95
|
-
klass = self.class.name.split('::').last
|
96
|
-
"{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @node]
|
97
|
-
end
|
98
|
-
|
99
|
-
end
|
100
|
-
|
101
|
-
class TkId < Token
|
102
|
-
def initialize(seek, line_no, char_no, name)
|
103
|
-
super(seek, line_no, char_no)
|
104
|
-
@name = name
|
105
|
-
end
|
106
|
-
attr_reader:name
|
107
|
-
|
108
|
-
def ==(other)
|
109
|
-
self.class == other.class and
|
110
|
-
other.line_no == @line_no and
|
111
|
-
other.char_no == @char_no and
|
112
|
-
other.name == @name
|
113
|
-
end
|
114
|
-
|
115
|
-
def set_text text
|
116
|
-
@name = text
|
117
|
-
self
|
118
|
-
end
|
119
|
-
|
120
|
-
alias text name
|
121
|
-
|
122
|
-
def inspect # :nodoc:
|
123
|
-
klass = self.class.name.split('::').last
|
124
|
-
"{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @name]
|
125
|
-
end
|
126
|
-
|
127
|
-
end
|
128
|
-
|
129
|
-
class TkKW < TkId
|
130
|
-
end
|
131
|
-
|
132
|
-
class TkVal < Token
|
133
|
-
def initialize(seek, line_no, char_no, value = nil)
|
134
|
-
super(seek, line_no, char_no)
|
135
|
-
@value = value
|
136
|
-
end
|
137
|
-
attr_accessor :value
|
138
|
-
|
139
|
-
def ==(other)
|
140
|
-
self.class == other.class and
|
141
|
-
other.line_no == @line_no and
|
142
|
-
other.char_no == @char_no and
|
143
|
-
other.value == @value
|
144
|
-
end
|
145
|
-
|
146
|
-
def set_text text
|
147
|
-
@value = text
|
148
|
-
self
|
149
|
-
end
|
150
|
-
|
151
|
-
alias text value
|
152
|
-
|
153
|
-
def inspect # :nodoc:
|
154
|
-
klass = self.class.name.split('::').last
|
155
|
-
"{%s %s, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @value]
|
156
|
-
end
|
157
|
-
|
158
|
-
end
|
159
|
-
|
160
|
-
class TkOp < Token
|
161
|
-
def initialize(seek, line_no, char_no, name = nil)
|
162
|
-
super seek, line_no, char_no
|
163
|
-
@name = name
|
164
|
-
end
|
165
|
-
|
166
|
-
attr_accessor :name
|
167
|
-
|
168
|
-
def ==(other)
|
169
|
-
self.class == other.class and
|
170
|
-
other.line_no == @line_no and
|
171
|
-
other.char_no == @char_no and
|
172
|
-
other.name == @name
|
173
|
-
end
|
174
|
-
|
175
|
-
def set_text text
|
176
|
-
@name = text
|
177
|
-
self
|
178
|
-
end
|
179
|
-
|
180
|
-
alias text name
|
181
|
-
|
182
|
-
def inspect # :nodoc:
|
183
|
-
klass = self.class.name.split('::').last
|
184
|
-
"{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @name]
|
185
|
-
end
|
186
|
-
|
187
|
-
end
|
188
|
-
|
189
|
-
class TkOPASGN < TkOp
|
190
|
-
def initialize(seek, line_no, char_no, op)
|
191
|
-
super(seek, line_no, char_no)
|
192
|
-
op = TkReading2Token[op][0] unless op.kind_of?(Symbol)
|
193
|
-
@op = op
|
194
|
-
@text = nil
|
195
|
-
end
|
196
|
-
|
197
|
-
attr_reader:op
|
198
|
-
|
199
|
-
def ==(other)
|
200
|
-
self.class == other.class and
|
201
|
-
other.line_no == @line_no and
|
202
|
-
other.char_no == @char_no and
|
203
|
-
other.op == @op
|
204
|
-
end
|
205
|
-
|
206
|
-
def text
|
207
|
-
@text ||= "#{TkToken2Reading[op]}="
|
208
|
-
end
|
209
|
-
|
210
|
-
def inspect # :nodoc:
|
211
|
-
klass = self.class.name.split('::').last
|
212
|
-
"{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @op]
|
213
|
-
end
|
214
|
-
|
215
|
-
end
|
216
|
-
|
217
|
-
class TkUnknownChar < Token
|
218
|
-
def initialize(seek, line_no, char_no, name)
|
219
|
-
super(seek, line_no, char_no)
|
220
|
-
@name = name
|
221
|
-
end
|
222
|
-
attr_reader:name
|
223
|
-
|
224
|
-
def ==(other)
|
225
|
-
self.class == other.class and
|
226
|
-
other.line_no == @line_no and
|
227
|
-
other.char_no == @char_no and
|
228
|
-
other.name == @name
|
229
|
-
end
|
230
|
-
|
231
|
-
def set_text text
|
232
|
-
@name = text
|
233
|
-
self
|
234
|
-
end
|
235
|
-
|
236
|
-
alias text name
|
237
|
-
|
238
|
-
def inspect # :nodoc:
|
239
|
-
klass = self.class.name.split('::').last
|
240
|
-
"{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @name]
|
241
|
-
end
|
242
|
-
|
243
|
-
end
|
244
|
-
|
245
|
-
class TkError < Token
|
246
|
-
end
|
247
|
-
|
248
|
-
def Token(token, value = nil)
|
249
|
-
value ||= TkToken2Reading[token]
|
250
|
-
|
251
|
-
case token
|
252
|
-
when String
|
253
|
-
if (tk = TkReading2Token[token]).nil?
|
254
|
-
IRB.fail TkReading2TokenNoKey, token
|
255
|
-
end
|
256
|
-
|
257
|
-
tk = Token(tk[0], value)
|
258
|
-
|
259
|
-
if tk.kind_of?(TkOp) then
|
260
|
-
tk.name = token
|
261
|
-
end
|
262
|
-
when Symbol
|
263
|
-
if (tk = TkSymbol2Token[token]).nil?
|
264
|
-
IRB.fail TkSymbol2TokenNoKey, token
|
265
|
-
end
|
266
|
-
|
267
|
-
tk = Token(tk[0], value)
|
268
|
-
else
|
269
|
-
if token.instance_method(:initialize).arity == 3 then
|
270
|
-
tk = token.new(@prev_seek, @prev_line_no, @prev_char_no)
|
271
|
-
tk.set_text value
|
272
|
-
else
|
273
|
-
tk = token.new(@prev_seek, @prev_line_no, @prev_char_no, value)
|
274
|
-
end
|
275
|
-
end
|
276
|
-
|
277
|
-
tk
|
278
|
-
end
|
279
|
-
|
280
|
-
TokenDefinitions = [
|
281
|
-
[:TkCLASS, TkKW, "class", :EXPR_CLASS],
|
282
|
-
[:TkMODULE, TkKW, "module", :EXPR_BEG],
|
283
|
-
[:TkDEF, TkKW, "def", :EXPR_FNAME],
|
284
|
-
[:TkUNDEF, TkKW, "undef", :EXPR_FNAME],
|
285
|
-
[:TkBEGIN, TkKW, "begin", :EXPR_BEG],
|
286
|
-
[:TkRESCUE, TkKW, "rescue", :EXPR_MID],
|
287
|
-
[:TkENSURE, TkKW, "ensure", :EXPR_BEG],
|
288
|
-
[:TkEND, TkKW, "end", :EXPR_END],
|
289
|
-
[:TkIF, TkKW, "if", :EXPR_BEG, :TkIF_MOD],
|
290
|
-
[:TkUNLESS, TkKW, "unless", :EXPR_BEG, :TkUNLESS_MOD],
|
291
|
-
[:TkTHEN, TkKW, "then", :EXPR_BEG],
|
292
|
-
[:TkELSIF, TkKW, "elsif", :EXPR_BEG],
|
293
|
-
[:TkELSE, TkKW, "else", :EXPR_BEG],
|
294
|
-
[:TkCASE, TkKW, "case", :EXPR_BEG],
|
295
|
-
[:TkWHEN, TkKW, "when", :EXPR_BEG],
|
296
|
-
[:TkWHILE, TkKW, "while", :EXPR_BEG, :TkWHILE_MOD],
|
297
|
-
[:TkUNTIL, TkKW, "until", :EXPR_BEG, :TkUNTIL_MOD],
|
298
|
-
[:TkFOR, TkKW, "for", :EXPR_BEG],
|
299
|
-
[:TkBREAK, TkKW, "break", :EXPR_MID],
|
300
|
-
[:TkNEXT, TkKW, "next", :EXPR_END],
|
301
|
-
[:TkREDO, TkKW, "redo", :EXPR_END],
|
302
|
-
[:TkRETRY, TkKW, "retry", :EXPR_END],
|
303
|
-
[:TkIN, TkKW, "in", :EXPR_BEG],
|
304
|
-
[:TkDO, TkKW, "do", :EXPR_BEG],
|
305
|
-
[:TkRETURN, TkKW, "return", :EXPR_MID],
|
306
|
-
[:TkYIELD, TkKW, "yield", :EXPR_ARG],
|
307
|
-
[:TkSUPER, TkKW, "super", :EXPR_ARG],
|
308
|
-
[:TkSELF, TkKW, "self", :EXPR_END],
|
309
|
-
[:TkNIL, TkKW, "nil", :EXPR_END],
|
310
|
-
[:TkTRUE, TkKW, "true", :EXPR_END],
|
311
|
-
[:TkFALSE, TkKW, "false", :EXPR_END],
|
312
|
-
[:TkAND, TkKW, "and", :EXPR_BEG],
|
313
|
-
[:TkOR, TkKW, "or", :EXPR_BEG],
|
314
|
-
[:TkNOT, TkKW, "not", :EXPR_BEG],
|
315
|
-
[:TkIF_MOD, TkKW],
|
316
|
-
[:TkUNLESS_MOD, TkKW],
|
317
|
-
[:TkWHILE_MOD, TkKW],
|
318
|
-
[:TkUNTIL_MOD, TkKW],
|
319
|
-
[:TkALIAS, TkKW, "alias", :EXPR_FNAME],
|
320
|
-
[:TkDEFINED, TkKW, "defined?", :EXPR_ARG],
|
321
|
-
[:TklBEGIN, TkKW, "BEGIN", :EXPR_END],
|
322
|
-
[:TklEND, TkKW, "END", :EXPR_END],
|
323
|
-
[:Tk__LINE__, TkKW, "__LINE__", :EXPR_END],
|
324
|
-
[:Tk__FILE__, TkKW, "__FILE__", :EXPR_END],
|
325
|
-
[:Tk__ENCODING__,TkKW, "__ENCODING__", :EXPR_END],
|
326
|
-
|
327
|
-
[:TkIDENTIFIER, TkId],
|
328
|
-
[:TkFID, TkId],
|
329
|
-
[:TkGVAR, TkId],
|
330
|
-
[:TkCVAR, TkId],
|
331
|
-
[:TkIVAR, TkId],
|
332
|
-
[:TkCONSTANT, TkId],
|
333
|
-
[:TkHEREDOCBEG, TkId],
|
334
|
-
[:TkHEREDOCEND, TkId],
|
335
|
-
|
336
|
-
[:TkINTEGER, TkVal],
|
337
|
-
[:TkFLOAT, TkVal],
|
338
|
-
[:TkRATIONAL, TkVal],
|
339
|
-
[:TkIMAGINARY, TkVal],
|
340
|
-
[:TkSTRING, TkVal],
|
341
|
-
[:TkHEREDOC, TkVal],
|
342
|
-
[:TkXSTRING, TkVal],
|
343
|
-
[:TkREGEXP, TkVal],
|
344
|
-
[:TkSYMBOL, TkVal],
|
345
|
-
[:TkCHAR, TkVal],
|
346
|
-
|
347
|
-
[:TkDSTRING, TkNode],
|
348
|
-
[:TkDXSTRING, TkNode],
|
349
|
-
[:TkDREGEXP, TkNode],
|
350
|
-
[:TkNTH_REF, TkNode],
|
351
|
-
[:TkBACK_REF, TkNode],
|
352
|
-
|
353
|
-
[:TkUPLUS, TkOp, "+@"],
|
354
|
-
[:TkUMINUS, TkOp, "-@"],
|
355
|
-
[:TkPOW, TkOp, "**"],
|
356
|
-
[:TkCMP, TkOp, "<=>"],
|
357
|
-
[:TkEQ, TkOp, "=="],
|
358
|
-
[:TkEQQ, TkOp, "==="],
|
359
|
-
[:TkNEQ, TkOp, "!="],
|
360
|
-
[:TkGEQ, TkOp, ">="],
|
361
|
-
[:TkLEQ, TkOp, "<="],
|
362
|
-
[:TkHASHROCKET, TkOp, "=>"],
|
363
|
-
[:TkANDOP, TkOp, "&&"],
|
364
|
-
[:TkOROP, TkOp, "||"],
|
365
|
-
[:TkMATCH, TkOp, "=~"],
|
366
|
-
[:TkNMATCH, TkOp, "!~"],
|
367
|
-
[:TkDOT2, TkOp, ".."],
|
368
|
-
[:TkDOT3, TkOp, "..."],
|
369
|
-
[:TkAREF, TkOp, "[]"],
|
370
|
-
[:TkASET, TkOp, "[]="],
|
371
|
-
[:TkLSHFT, TkOp, "<<"],
|
372
|
-
[:TkRSHFT, TkOp, ">>"],
|
373
|
-
[:TkCOLON2, TkOp, '::'],
|
374
|
-
[:TkCOLON3, TkOp, '::'],
|
375
|
-
#[:OPASGN, TkOp], # +=, -= etc. #
|
376
|
-
[:TkASSOC, TkOp, "=>"],
|
377
|
-
[:TkLAMBDA, TkOp, "->"],
|
378
|
-
[:TkQUESTION, TkOp, "?"], #?
|
379
|
-
[:TkCOLON, TkOp, ":"], #:
|
380
|
-
|
381
|
-
[:TkfLPAREN, Token, "("], # func( #
|
382
|
-
[:TkfLBRACK, Token, "["], # func[ #
|
383
|
-
[:TkfLBRACE, Token, "{"], # func{ #
|
384
|
-
[:TkSYMBEG, Token, ":"], # :SYMBOL
|
385
|
-
|
386
|
-
[:TkAMPER, TkOp, "&"],
|
387
|
-
[:TkGT, TkOp, ">"],
|
388
|
-
[:TkLT, TkOp, "<"],
|
389
|
-
[:TkPLUS, TkOp, "+"],
|
390
|
-
[:TkSTAR, TkOp, "*"],
|
391
|
-
[:TkMINUS, TkOp, "-"],
|
392
|
-
[:TkMULT, TkOp, "*"],
|
393
|
-
[:TkDIV, TkOp, "/"],
|
394
|
-
[:TkMOD, TkOp, "%"],
|
395
|
-
[:TkBITOR, TkOp, "|"],
|
396
|
-
[:TkBITXOR, TkOp, "^"],
|
397
|
-
[:TkBITAND, TkOp, "&"],
|
398
|
-
[:TkBITNOT, TkOp, "~"],
|
399
|
-
[:TkNOTOP, TkOp, "!"],
|
400
|
-
|
401
|
-
[:TkBACKQUOTE, TkOp, "`"],
|
402
|
-
|
403
|
-
[:TkASSIGN, Token, "="],
|
404
|
-
[:TkDOT, Token, "."],
|
405
|
-
[:TkSAFENAV, Token, "&."],
|
406
|
-
[:TkLPAREN, Token, "("], #(exp)
|
407
|
-
[:TkLBRACK, Token, "["], #[arry]
|
408
|
-
[:TkLBRACE, Token, "{"], #{hash}
|
409
|
-
[:TkRPAREN, Token, ")"],
|
410
|
-
[:TkRBRACK, Token, "]"],
|
411
|
-
[:TkRBRACE, Token, "}"],
|
412
|
-
[:TkCOMMA, Token, ","],
|
413
|
-
[:TkSEMICOLON, Token, ";"],
|
414
|
-
|
415
|
-
[:TkCOMMENT, TkVal],
|
416
|
-
[:TkSPACE, Token, " "],
|
417
|
-
[:TkNL, Token, "\n"],
|
418
|
-
[:TkEND_OF_SCRIPT],
|
419
|
-
|
420
|
-
[:TkBACKSLASH, TkUnknownChar, "\\"],
|
421
|
-
[:TkAT, TkUnknownChar, "@"],
|
422
|
-
[:TkDOLLAR, TkUnknownChar, "$"],
|
423
|
-
]
|
424
|
-
|
425
|
-
# {reading => token_class}
|
426
|
-
# {reading => [token_class, *opt]}
|
427
|
-
TkReading2Token = {}
|
428
|
-
TkToken2Reading = {}
|
429
|
-
TkSymbol2Token = {}
|
430
|
-
|
431
|
-
def self.def_token(token_n, super_token = Token, reading = nil, *opts)
|
432
|
-
token_n = token_n.id2name if token_n.kind_of?(Symbol)
|
433
|
-
if const_defined?(token_n)
|
434
|
-
IRB.fail AlreadyDefinedToken, token_n
|
435
|
-
end
|
436
|
-
token_c = eval("class #{token_n} < #{super_token}; end; #{token_n}")
|
437
|
-
|
438
|
-
if reading
|
439
|
-
TkToken2Reading[token_c] = reading
|
440
|
-
|
441
|
-
return if TkReading2Token[reading]
|
442
|
-
|
443
|
-
if opts.empty?
|
444
|
-
TkReading2Token[reading] = [token_c]
|
445
|
-
else
|
446
|
-
TkReading2Token[reading] = [token_c].concat(opts)
|
447
|
-
end
|
448
|
-
end
|
449
|
-
TkSymbol2Token[token_n.intern] = token_c
|
450
|
-
end
|
451
|
-
|
452
|
-
for defs in TokenDefinitions
|
453
|
-
def_token(*defs)
|
454
|
-
end
|
455
|
-
|
456
|
-
def_token :TkRD_COMMENT, TkCOMMENT
|
457
|
-
|
458
|
-
NEWLINE_TOKEN = TkNL.new 0, 0, 0, "\n"
|
459
|
-
|
460
|
-
class TkSYMBOL
|
461
|
-
|
462
|
-
def to_sym
|
463
|
-
@sym ||= text[1..-1].intern
|
464
|
-
end
|
465
|
-
|
466
|
-
end
|
467
|
-
|
468
|
-
# :startdoc:
|
469
|
-
end
|
470
|
-
|