Skip to content

Commit 305b0d7

Browse files
committed
Small refactoring
1 parent 124102b commit 305b0d7

File tree

1 file changed

+25
-29
lines changed

1 file changed

+25
-29
lines changed

src/lit/scanner.cr

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -144,21 +144,6 @@ module Lit
144144
end
145145
end
146146

147-
private def advance
148-
@current_pos += 1
149-
150-
@src[@current_pos - 1]
151-
end
152-
153-
private def match?(expected)
154-
return false if at_end?
155-
return false if @src[@current_pos] != expected
156-
157-
@current_pos += 1
158-
159-
true
160-
end
161-
162147
private def consume_number
163148
successful = scan_digits_with_underscores
164149
return unless successful
@@ -216,17 +201,13 @@ module Lit
216201
while nesting > 0
217202
return syntax_error("Unterminated block comment") if at_end?
218203

219-
if closing_comment_next?
204+
if match?('=', '#')
220205
nesting -= 1
221-
advance # consume the =
222-
advance # consume the #
223206
next
224207
end
225208

226-
if opening_block_comment_next?
209+
if match?('#', '=')
227210
nesting += 1
228-
advance # consume the #
229-
advance # consume the =
230211
next
231212
end
232213

@@ -330,6 +311,29 @@ module Lit
330311
@src[@current_pos - 1]
331312
end
332313

314+
private def advance
315+
@current_pos += 1
316+
317+
@src[@current_pos - 1]
318+
end
319+
320+
private def match?(expected)
321+
return false if at_end?
322+
return false if @src[@current_pos] != expected
323+
324+
@current_pos += 1
325+
326+
true
327+
end
328+
329+
private def match?(expected : Char, next_expected : Char)
330+
if peek == expected && peek_next == next_expected
331+
@current_pos += 2
332+
else
333+
false
334+
end
335+
end
336+
333337
private def current_token_string
334338
@src[@token_start_pos...@current_pos]
335339
end
@@ -370,14 +374,6 @@ module Lit
370374
KEYWORDS[text]?
371375
end
372376

373-
private def closing_comment_next?
374-
peek == '=' && peek_next == '#'
375-
end
376-
377-
private def opening_block_comment_next?
378-
peek == '#' && peek_next == '='
379-
end
380-
381377
private def syntax_error(message : String)
382378
@error_reporter.report_syntax_error(@line, message)
383379
synchronize

0 commit comments

Comments
 (0)