From c898f395a101c3270f9c12baf5350bdcc12df942 Mon Sep 17 00:00:00 2001 From: Roberto Alsina Date: Tue, 13 Aug 2024 22:06:07 -0300 Subject: [PATCH] reset stack on EOL instead of error, makes no difference, but it's in pygments version --- src/lexer.cr | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lexer.cr b/src/lexer.cr index 63e5b7d..a22cecb 100644 --- a/src/lexer.cr +++ b/src/lexer.cr @@ -94,8 +94,13 @@ module Tartrazine end # If no rule matches, emit an error token unless matched - # Log.trace { "Error at #{pos}" } - tokens << {type: "Error", value: "#{text[pos]}"} + if text[pos] == "\n" + # at EOL, reset state to "root" + tokens << {type: "TextWhitespace", value: "\n"} + @state_stack = ["root"] + else + tokens << {type: "Error", value: text[pos..pos]} + end pos += 1 end end