class Cucumber::CucumberExpressions::CucumberExpressionError

def build_message(

def build_message(
    index,
    expression,
    pointer,
    problem,
    solution
)
  m = <<-EOF
ucumber Expression has a problem at column #{index + 1}:
ession}
ter}
lem}.
tion}
  EOF
  m.strip
end

def point_at(index)

def point_at(index)
  ' ' * index + '^'
end

def point_at_located(node)

def point_at_located(node)
  pointer = [point_at(node.start)]
  if node.start + 1 < node.end
    for _ in node.start + 1...node.end - 1
      pointer.push('-')
    end
    pointer.push('^')
  end
  pointer.join('')
end