require "./thue.cr" require "./parser.cr" class Thue::Program def initialize(@parser : Parser) end def interpret 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