Skip to content

Commit aa51b45

Browse files
authored
Merge pull request #464 from aycabta/add-hash-rocket-as-token
Add hash rocket '=>' token
2 parents 20af2f6 + 8512ec4 commit aa51b45

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

lib/rdoc/ruby_lex.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ def lex_init()
483483
"=", "==", "===",
484484
"=~", "<=>",
485485
"<", "<=",
486-
">", ">=", ">>") do
486+
">", ">=", ">>", "=>") do
487487
|op, io|
488488
case @lex_state
489489
when :EXPR_FNAME, :EXPR_DOT

lib/rdoc/ruby_token.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,7 @@ def Token(token, value = nil)
355355
[:TkNEQ, TkOp, "!="],
356356
[:TkGEQ, TkOp, ">="],
357357
[:TkLEQ, TkOp, "<="],
358+
[:TkHASHROCKET, TkOp, "=>"],
358359
[:TkANDOP, TkOp, "&&"],
359360
[:TkOROP, TkOp, "||"],
360361
[:TkMATCH, TkOp, "=~"],

test/test_rdoc_ruby_lex.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,25 @@ def test_class_tokenize_hash_symbol
9090
assert_equal expected, tokens
9191
end
9292

93+
def test_class_tokenize_hash_rocket
94+
tokens = RDoc::RubyLex.tokenize '{ :class => "foo" }', nil
95+
96+
expected = [
97+
@TK::TkLBRACE .new( 0, 1, 0, '{'),
98+
@TK::TkSPACE .new( 1, 1, 1, ' '),
99+
@TK::TkSYMBOL .new( 2, 1, 2, ':class'),
100+
@TK::TkSPACE .new( 8, 1, 8, ' '),
101+
@TK::TkHASHROCKET.new( 9, 1, 9, '=>'),
102+
@TK::TkSPACE .new(11, 1, 11, ' '),
103+
@TK::TkSTRING .new(12, 1, 12, '"foo"'),
104+
@TK::TkSPACE .new(17, 1, 17, ' '),
105+
@TK::TkRBRACE .new(18, 1, 18, '}'),
106+
@TK::TkNL .new(19, 1, 19, "\n"),
107+
]
108+
109+
assert_equal expected, tokens
110+
end
111+
93112
def test_class_tokenize_heredoc_CR_NL
94113
tokens = RDoc::RubyLex.tokenize <<-RUBY, nil
95114
string = <<-STRING\r

0 commit comments

Comments
 (0)