From 03b81c2e54c565879790bb32bb6cae11c19d40fa Mon Sep 17 00:00:00 2001 From: Roberto Alsina Date: Mon, 5 Aug 2024 07:54:14 -0300 Subject: [PATCH] Nicer tokenize flow --- src/tartrazine.cr | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/tartrazine.cr b/src/tartrazine.cr index 67b884e..82863eb 100644 --- a/src/tartrazine.cr +++ b/src/tartrazine.cr @@ -67,13 +67,13 @@ module Tartrazine Log.trace { "Stack is #{@state_stack} State is #{state.name}, pos is #{pos}, text is #{text[pos..pos + 10]}" } state.rules.each do |rule| matched, new_pos, new_tokens = rule.match(text, pos, self) + if matched + Log.trace { "MATCHED: #{rule.xml}" } + pos = new_pos + tokens += new_tokens + break # We go back to processing with current state + end Log.trace { "NOT MATCHED: #{rule.xml}" } - next unless matched - Log.trace { "MATCHED: #{rule.xml}" } - - pos = new_pos - tokens += new_tokens - break # We go back to processing with current state end # If no rule matches, emit an error token unless matched