Skip to content

Commit 9789e6f

Browse files
authored
Merge pull request #492 from aycabta/support-escaped-character-literal
Support escaped character literal
2 parents 11aa4b5 + 989aefd commit 9789e6f

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

lib/rdoc/ruby_lex.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,7 @@ def lex_init()
606606
Token(TkQUESTION)
607607
else
608608
@lex_state = :EXPR_END
609+
ch << getc if "\\" == ch
609610
Token(TkCHAR, "?#{ch}")
610611
end
611612
end

test/test_rdoc_ruby_lex.rb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,27 @@ def test_class_tokenize___END__
6363
end
6464

6565
def test_class_tokenize_character_literal
66-
tokens = RDoc::RubyLex.tokenize "?\\", nil
66+
tokens = RDoc::RubyLex.tokenize "?c", nil
6767

6868
expected = [
69-
@TK::TkCHAR.new( 0, 1, 0, "?\\"),
69+
@TK::TkCHAR.new( 0, 1, 0, "?c"),
7070
@TK::TkNL .new( 2, 1, 2, "\n"),
7171
]
7272

7373
assert_equal expected, tokens
7474
end
7575

76+
def test_class_tokenize_character_literal_with_escape
77+
tokens = RDoc::RubyLex.tokenize "?\\s", nil
78+
79+
expected = [
80+
@TK::TkCHAR.new( 0, 1, 0, "?\\s"),
81+
@TK::TkNL .new( 3, 1, 3, "\n"),
82+
]
83+
84+
assert_equal expected, tokens
85+
end
86+
7687
def test_class_tokenize_def_heredoc
7788
tokens = RDoc::RubyLex.tokenize <<-'RUBY', nil
7889
def x

0 commit comments

Comments
 (0)