def continue
raise MenuGetAnotherDigitOrTimeout if string_of_digits.empty?
calculated_matches = builder.calculate_matches_for string_of_digits
if calculated_matches.exact_match_count >= 1
first_exact_match = calculated_matches.exact_matches.first
if calculated_matches.potential_match_count.zero?
menu_result_found! first_exact_match.context_name, string_of_digits
else
get_another_digit_or_finish!(first_exact_match.context_name, first_exact_match.query)
end
elsif calculated_matches.potential_match_count >= 1
get_another_digit_or_timeout!
else
invalid!
end
end