class Cucumber::CucumberExpressions::CucumberExpression

def rewrite_optional(node)

def rewrite_optional(node)
  assert_no_parameters(node) { |ast_node| raise ParameterIsNotAllowedInOptional.new(ast_node, @expression) }
  assert_no_optionals(node) { |ast_node| raise OptionalIsNotAllowedInOptional.new(ast_node, @expression) }
  assert_not_empty(node) { |ast_node| raise OptionalMayNotBeEmpty.new(ast_node, @expression) }
  regex = node.nodes.map { |n| rewrite_to_regex(n) }.join('')
  "(?:#{regex})?"
end