class Cucumber::CucumberExpressions::CucumberExpression

def rewrite_to_regex(node)

def rewrite_to_regex(node)
  case node.type
  when NodeType::TEXT
    return escape_regex(node.text)
  when NodeType::OPTIONAL
    return rewrite_optional(node)
  when NodeType::ALTERNATION
    return rewrite_alternation(node)
  when NodeType::ALTERNATIVE
    return rewrite_alternative(node)
  when NodeType::PARAMETER
    return rewrite_parameter(node)
  when NodeType::EXPRESSION
    return rewrite_expression(node)
  else
    # Can't happen as long as the switch case is exhaustive
    raise "#{node.type}"
  end
end