From e449c3c866b0c91a0bc34d5cb462c47b5fa43ce1 Mon Sep 17 00:00:00 2001 From: Matthew Hall Date: Sun, 4 Sep 2022 00:34:09 +1200 Subject: Able to interpret Thue --- src/thue/program.cr | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/thue/program.cr') diff --git a/src/thue/program.cr b/src/thue/program.cr index c59780b..f449f5a 100644 --- a/src/thue/program.cr +++ b/src/thue/program.cr @@ -6,8 +6,16 @@ class Thue::Program end def interpret - something = @parser.parse - puts something + rules, state = @parser.parse + + loop do + r = rules.find { |r| r.matches?(state) } + break if r.nil? + + state = state.sub(r.pattern, r.replacement) + end + + puts state end end -- cgit v1.2.1