class Gherkin::TokenFormatterBuilder

def build(token)

def build(token)
  tokens << token
end

def end_rule(_rule_type); end

def end_rule(_rule_type); end

def format_token(token)

def format_token(token)
  return 'EOF' if token.eof?
  sprintf(
    "(%s:%s)%s:%s/%s/%s",
    token.location[:line],
    token.location[:column],
    token.matched_type,
    token.matched_keyword ? sprintf("(%s)%s", token.matched_keyword_type, token.matched_keyword) : "",
    token.matched_text,
    Array(token.matched_items).map { |i| "#{i.column}:#{i.text}" }.join(',')
  )
end

def get_result

def get_result
  tokens.map { |token| "#{format_token(token)}\n" }.join
end

def initialize

def initialize
  reset
end

def reset

def reset
  @tokens = []
end

def start_rule(_rule_type); end

def start_rule(_rule_type); end

def tokens

def tokens
  @tokens ||= []
end