@@ -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