class Cucumber::Cli::LanguageHelpFormatter

def before_visit_multiline_arg(table)

def before_visit_multiline_arg(table)
  if @options[:incomplete]
    @io.puts(format_string(INCOMPLETE, :failed))
  end
end

def before_visit_table_cell_value(value, status)

def before_visit_table_cell_value(value, status)
  if @col == 1
    if(@options[:check_lang])
      @incomplete = Parser::NaturalLanguage.get(nil, value).incomplete?
    end
    status = :comment 
  elsif @incomplete
    status = :undefined
  end
  
  @col += 1
end

def before_visit_table_row(table_row)

def before_visit_table_row(table_row)
  @col = 1
end

def list_keywords(io, lang)

def list_keywords(io, lang)
  language = Parser::NaturalLanguage.get(nil, lang)
  raw = Parser::NaturalLanguage::KEYWORD_KEYS.map do |key|
    [key, language.keywords(key).join(" / ")]
  end
  
  print_table io, raw, :incomplete => language.incomplete?
end

def list_languages(io)

def list_languages(io)
  raw = Cucumber::LANGUAGES.keys.sort.map do |lang|
    [
      lang, 
      Cucumber::LANGUAGES[lang]['name'], 
      Cucumber::LANGUAGES[lang]['native']
    ]
  end
  print_table io, raw, :check_lang => true
end

def print_table(io, raw, options)

def print_table(io, raw, options)
  table = Ast::Table.new(raw)
  formatter = new(nil, io, options)
  Ast::TreeWalker.new(nil, [formatter]).visit_multiline_arg(table)
end