#include "llvm/ADT/StringSwitch.h"
#include <iostream>

enum Color {
  UnknownColor, Red, Orange, Yellow, Green, Blue, Indigo, Violet
};

using namespace llvm;

int main(int argc, char *argv[]) {
  for (int i = 1; i < argc; ++i) {
    Color color = StringSwitch<Color>(argv[i])
      .Case("red", Red)
      .Case("orange", Orange)
      .Case("yellow", Yellow)
      .Case("green", Green)
      .Case("blue", Blue)
      .Case("indigo", Indigo)
      .Case("violet", Violet)
      .Default(UnknownColor);
    switch(color) {
    case UnknownColor: std::cout << "Unknown color" << std::endl; break;
    case Red: std::cout << "Red" << std::endl; break;
    case Orange: std::cout << "Orange" << std::endl; break;
    case Yellow: std::cout << "Yellow" << std::endl; break;
    case Green: std::cout << "Green" << std::endl; break;
    case Blue: std::cout << "Blue" << std::endl; break;
    case Indigo: std::cout << "Indigo" << std::endl; break;
    case Violet: std::cout << "Violet" << std::endl; break;
    }
  }
}
