std::string Token::show()

in libredex/ProguardLexer.cpp [231:411]


std::string Token::show() const {
  switch (type) {
  case TokenType::openCurlyBracket:
    return "{";
  case TokenType::closeCurlyBracket:
    return "}";
  case TokenType::openBracket:
    return "(";
  case TokenType::closeBracket:
    return ")";
  case TokenType::semiColon:
    return ";";
  case TokenType::colon:
    return ":";
  case TokenType::notToken:
    return "!";
  case TokenType::comma:
    return ",";
  case TokenType::slash:
    return "/";
  case TokenType::classToken:
    return "class";
  case TokenType::publicToken:
    return "public";
  case TokenType::final:
    return "final";
  case TokenType::abstract:
    return "abstract";
  case TokenType::interface:
    return "interface";
  case TokenType::enumToken:
    return "enum";
  case TokenType::extends:
    return "extends";
  case TokenType::implements:
    return "implements";
  case TokenType::privateToken:
    return "private";
  case TokenType::protectedToken:
    return "protected";
  case TokenType::staticToken:
    return "static";
  case TokenType::volatileToken:
    return "volatile";
  case TokenType::transient:
    return "transient";
  case TokenType::annotation:
    return "@interface";
  case TokenType::annotation_application:
    return "@";
  case TokenType::synchronized:
    return "synchronized";
  case TokenType::native:
    return "native";
  case TokenType::strictfp:
    return "strictfp";
  case TokenType::synthetic:
    return "synthetic";
  case TokenType::bridge:
    return "bridge";
  case TokenType::varargs:
    return "varargs";
  case TokenType::command:
    return "-" + std::string(data);
  case TokenType::identifier:
    return "identifier: " + std::string(data);
  case TokenType::arrayType:
    return "[]";
  case TokenType::filepath:
    return "filepath " + std::string(data);
  case TokenType::target_version_token:
    return std::string(data);
  case TokenType::filter_pattern:
    return "filter: " + std::string(data);
  case TokenType::eof_token:
    return "<EOF>";
  case TokenType::comment:
    return "#" + std::string(data);

  // Input/Output Options
  case TokenType::include:
    return "-include";
  case TokenType::basedirectory:
    return "-basedirectory";
  case TokenType::dump:
    return "-dump";
  case TokenType::injars:
    return "-injars ";
  case TokenType::outjars:
    return "-outjars ";
  case TokenType::libraryjars:
    return "-libraryjars ";
  case TokenType::keepdirectories:
    return "-keepdirectories";
  case TokenType::target:
    return "-target ";
  case TokenType::dontskipnonpubliclibraryclasses:
    return "-dontskipnonpubliclibraryclasses";

  // Keep Options
  case TokenType::keep:
    return "-keep";
  case TokenType::keepclassmembers:
    return "-keepclassmembers";
  case TokenType::keepclasseswithmembers:
    return "-keepclasseswithmembers";
  case TokenType::keepnames:
    return "-keepnames";
  case TokenType::keepclassmembernames:
    return "-keepclassmembernames";
  case TokenType::keepclasseswithmembernames:
    return "-keepclasseswithmembernames";
  case TokenType::printseeds:
    return "-printseeds ";

  // Keep Option Modifiers
  case TokenType::includedescriptorclasses_token:
    return "includedescriptorclasses";
  case TokenType::allowshrinking_token:
    return "allowshrinking";
  case TokenType::allowoptimization_token:
    return "allowoptimization";
  case TokenType::allowobfuscation_token:
    return "allowobfuscation";

  // Shrinking Options
  case TokenType::dontshrink:
    return "-dontshrink";
  case TokenType::printusage:
    return "-printusage";
  case TokenType::whyareyoukeeping:
    return "-whyareyoukeeping";

  // Optimization Options
  case TokenType::dontoptimize:
    return "-dontoptimize";
  case TokenType::optimizations:
    return "-optimizations";
  case TokenType::optimizationpasses:
    return "-optimizationpasses";
  case TokenType::assumenosideeffects:
    return "-assumenosideeffects";
  case TokenType::mergeinterfacesaggressively:
    return "-mergeinterfacesaggressively";
  case TokenType::allowaccessmodification_token:
    return "-allowaccessmodification";
  case TokenType::returns:
    return "return";

  // Obfuscation Options
  case TokenType::dontobfuscate:
    return "-dontobfuscate ";
  case TokenType::printmapping:
    return "-printmapping ";
  case TokenType::repackageclasses:
    return "-repackageclasses";
  case TokenType::keepattributes:
    return "-keepattributes";
  case TokenType::dontusemixedcaseclassnames_token:
    return "-dontusemixedcaseclassnames";
  case TokenType::keeppackagenames:
    return "-keeppackagenames";

  // Preverification Options
  case TokenType::dontpreverify_token:
    return "-dontpreverify";

  // General Options
  case TokenType::printconfiguration:
    return "-printconfiguration ";
  case TokenType::dontwarn:
    return "-dontwarn";
  case TokenType::verbose_token:
    return "-verbose";

  case TokenType::unknownToken:
    return "unknown token at line " + std::to_string(line) + " : " +
           std::string(data);
  }
  not_reached();
}