// This file is generated by TableGen.  Do not edit.

namespace {
const CommandInfo Commands[] = {
  { "a", "", 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "addtogroup", "", 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "author", "", 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "authors", "", 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "b", "", 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "brief", "", 5, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "c", "", 6, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "callback", "", 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "category", "", 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "class", "", 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "code", "endcode", 10, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "endcode", "", 11, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { "const", "", 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "constant", "", 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "defgroup", "", 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "dot", "enddot", 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "enddot", "", 16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { "e", "", 17, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "em", "", 18, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "enum", "", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "f{", "f}", 20, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "f}", "", 21, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { "f[", "f]", 22, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "f]", "", 23, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { "f$", "f$", 24, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "fn", "", 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "function", "", 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "htmlonly", "endhtmlonly", 27, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "endhtmlonly", "", 28, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { "ingroup", "", 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "interface", "", 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "latexonly", "endlatexonly", 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "endlatexonly", "", 32, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { "mainpage", "", 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "manonly", "endmanonly", 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "endmanonly", "", 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { "method", "", 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "msc", "endmsc", 37, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "endmsc", "", 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { "name", "", 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "overload", "", 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "p", "", 41, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "paragraph", "", 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "param", "", 43, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "post", "", 44, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "pre", "", 45, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "property", "", 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "protocol", "", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "ref", "", 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "result", "", 49, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "return", "", 50, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "returns", "", 51, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "rtfonly", "endrtfonly", 52, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "endrtfonly", "", 53, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { "section", "", 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "short", "", 55, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "struct", "", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "subpage", "", 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "subsection", "", 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "subsubsection", "", 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "template", "", 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "templatefield", "", 61, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "tparam", "", 62, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "typedef", "", 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "union", "", 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "var", "", 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
  { "verbatim", "endverbatim", 66, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "endverbatim", "", 67, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { "weakgroup", "", 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "xmlonly", "endxmlonly", 69, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
  { "endxmlonly", "", 70, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 }
};
} // unnamed namespace

const CommandInfo *CommandTraits::getBuiltinCommandInfo(
                                         StringRef Name) {
  switch (Name.size()) {
  default: break;
  case 1:	 // 5 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      return &Commands[0];	 // "a"
    case 'b':	 // 1 string to match.
      return &Commands[4];	 // "b"
    case 'c':	 // 1 string to match.
      return &Commands[6];	 // "c"
    case 'e':	 // 1 string to match.
      return &Commands[17];	 // "e"
    case 'p':	 // 1 string to match.
      return &Commands[41];	 // "p"
    }
    break;
  case 2:	 // 7 strings to match.
    switch (Name[0]) {
    default: break;
    case 'e':	 // 1 string to match.
      if (Name[1] != 'm')
        break;
      return &Commands[18];	 // "em"
    case 'f':	 // 6 strings to match.
      switch (Name[1]) {
      default: break;
      case '$':	 // 1 string to match.
        return &Commands[24];	 // "f$"
      case '[':	 // 1 string to match.
        return &Commands[22];	 // "f["
      case ']':	 // 1 string to match.
        return &Commands[23];	 // "f]"
      case 'n':	 // 1 string to match.
        return &Commands[25];	 // "fn"
      case '{':	 // 1 string to match.
        return &Commands[20];	 // "f{"
      case '}':	 // 1 string to match.
        return &Commands[21];	 // "f}"
      }
      break;
    }
    break;
  case 3:	 // 5 strings to match.
    switch (Name[0]) {
    default: break;
    case 'd':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ot", 2))
        break;
      return &Commands[15];	 // "dot"
    case 'm':	 // 1 string to match.
      if (memcmp(Name.data()+1, "sc", 2))
        break;
      return &Commands[37];	 // "msc"
    case 'p':	 // 1 string to match.
      if (memcmp(Name.data()+1, "re", 2))
        break;
      return &Commands[45];	 // "pre"
    case 'r':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ef", 2))
        break;
      return &Commands[48];	 // "ref"
    case 'v':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ar", 2))
        break;
      return &Commands[65];	 // "var"
    }
    break;
  case 4:	 // 4 strings to match.
    switch (Name[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ode", 3))
        break;
      return &Commands[10];	 // "code"
    case 'e':	 // 1 string to match.
      if (memcmp(Name.data()+1, "num", 3))
        break;
      return &Commands[19];	 // "enum"
    case 'n':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ame", 3))
        break;
      return &Commands[39];	 // "name"
    case 'p':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ost", 3))
        break;
      return &Commands[44];	 // "post"
    }
    break;
  case 5:	 // 6 strings to match.
    switch (Name[0]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(Name.data()+1, "rief", 4))
        break;
      return &Commands[5];	 // "brief"
    case 'c':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'l':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ass", 3))
          break;
        return &Commands[9];	 // "class"
      case 'o':	 // 1 string to match.
        if (memcmp(Name.data()+2, "nst", 3))
          break;
        return &Commands[12];	 // "const"
      }
      break;
    case 'p':	 // 1 string to match.
      if (memcmp(Name.data()+1, "aram", 4))
        break;
      return &Commands[43];	 // "param"
    case 's':	 // 1 string to match.
      if (memcmp(Name.data()+1, "hort", 4))
        break;
      return &Commands[55];	 // "short"
    case 'u':	 // 1 string to match.
      if (memcmp(Name.data()+1, "nion", 4))
        break;
      return &Commands[64];	 // "union"
    }
    break;
  case 6:	 // 8 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uthor", 5))
        break;
      return &Commands[2];	 // "author"
    case 'e':	 // 2 strings to match.
      if (memcmp(Name.data()+1, "nd", 2))
        break;
      switch (Name[3]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(Name.data()+4, "ot", 2))
          break;
        return &Commands[16];	 // "enddot"
      case 'm':	 // 1 string to match.
        if (memcmp(Name.data()+4, "sc", 2))
          break;
        return &Commands[38];	 // "endmsc"
      }
      break;
    case 'm':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ethod", 5))
        break;
      return &Commands[36];	 // "method"
    case 'r':	 // 2 strings to match.
      if (Name[1] != 'e')
        break;
      switch (Name[2]) {
      default: break;
      case 's':	 // 1 string to match.
        if (memcmp(Name.data()+3, "ult", 3))
          break;
        return &Commands[49];	 // "result"
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+3, "urn", 3))
          break;
        return &Commands[50];	 // "return"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(Name.data()+1, "truct", 5))
        break;
      return &Commands[56];	 // "struct"
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "param", 5))
        break;
      return &Commands[62];	 // "tparam"
    }
    break;
  case 7:	 // 10 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uthors", 6))
        break;
      return &Commands[3];	 // "authors"
    case 'e':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ndcode", 6))
        break;
      return &Commands[11];	 // "endcode"
    case 'i':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ngroup", 6))
        break;
      return &Commands[29];	 // "ingroup"
    case 'm':	 // 1 string to match.
      if (memcmp(Name.data()+1, "anonly", 6))
        break;
      return &Commands[34];	 // "manonly"
    case 'r':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(Name.data()+2, "turns", 5))
          break;
        return &Commands[51];	 // "returns"
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+2, "fonly", 5))
          break;
        return &Commands[52];	 // "rtfonly"
      }
      break;
    case 's':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ction", 5))
          break;
        return &Commands[54];	 // "section"
      case 'u':	 // 1 string to match.
        if (memcmp(Name.data()+2, "bpage", 5))
          break;
        return &Commands[57];	 // "subpage"
      }
      break;
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ypedef", 6))
        break;
      return &Commands[63];	 // "typedef"
    case 'x':	 // 1 string to match.
      if (memcmp(Name.data()+1, "mlonly", 6))
        break;
      return &Commands[69];	 // "xmlonly"
    }
    break;
  case 8:	 // 12 strings to match.
    switch (Name[0]) {
    default: break;
    case 'c':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (memcmp(Name.data()+3, "lback", 5))
            break;
          return &Commands[7];	 // "callback"
        case 't':	 // 1 string to match.
          if (memcmp(Name.data()+3, "egory", 5))
            break;
          return &Commands[8];	 // "category"
        }
        break;
      case 'o':	 // 1 string to match.
        if (memcmp(Name.data()+2, "nstant", 6))
          break;
        return &Commands[13];	 // "constant"
      }
      break;
    case 'd':	 // 1 string to match.
      if (memcmp(Name.data()+1, "efgroup", 7))
        break;
      return &Commands[14];	 // "defgroup"
    case 'f':	 // 1 string to match.
      if (memcmp(Name.data()+1, "unction", 7))
        break;
      return &Commands[26];	 // "function"
    case 'h':	 // 1 string to match.
      if (memcmp(Name.data()+1, "tmlonly", 7))
        break;
      return &Commands[27];	 // "htmlonly"
    case 'm':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ainpage", 7))
        break;
      return &Commands[33];	 // "mainpage"
    case 'o':	 // 1 string to match.
      if (memcmp(Name.data()+1, "verload", 7))
        break;
      return &Commands[40];	 // "overload"
    case 'p':	 // 2 strings to match.
      if (memcmp(Name.data()+1, "ro", 2))
        break;
      switch (Name[3]) {
      default: break;
      case 'p':	 // 1 string to match.
        if (memcmp(Name.data()+4, "erty", 4))
          break;
        return &Commands[46];	 // "property"
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+4, "ocol", 4))
          break;
        return &Commands[47];	 // "protocol"
      }
      break;
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "emplate", 7))
        break;
      return &Commands[60];	 // "template"
    case 'v':	 // 1 string to match.
      if (memcmp(Name.data()+1, "erbatim", 7))
        break;
      return &Commands[66];	 // "verbatim"
    }
    break;
  case 9:	 // 4 strings to match.
    switch (Name[0]) {
    default: break;
    case 'i':	 // 1 string to match.
      if (memcmp(Name.data()+1, "nterface", 8))
        break;
      return &Commands[30];	 // "interface"
    case 'l':	 // 1 string to match.
      if (memcmp(Name.data()+1, "atexonly", 8))
        break;
      return &Commands[31];	 // "latexonly"
    case 'p':	 // 1 string to match.
      if (memcmp(Name.data()+1, "aragraph", 8))
        break;
      return &Commands[42];	 // "paragraph"
    case 'w':	 // 1 string to match.
      if (memcmp(Name.data()+1, "eakgroup", 8))
        break;
      return &Commands[68];	 // "weakgroup"
    }
    break;
  case 10:	 // 5 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ddtogroup", 9))
        break;
      return &Commands[1];	 // "addtogroup"
    case 'e':	 // 3 strings to match.
      if (memcmp(Name.data()+1, "nd", 2))
        break;
      switch (Name[3]) {
      default: break;
      case 'm':	 // 1 string to match.
        if (memcmp(Name.data()+4, "anonly", 6))
          break;
        return &Commands[35];	 // "endmanonly"
      case 'r':	 // 1 string to match.
        if (memcmp(Name.data()+4, "tfonly", 6))
          break;
        return &Commands[53];	 // "endrtfonly"
      case 'x':	 // 1 string to match.
        if (memcmp(Name.data()+4, "mlonly", 6))
          break;
        return &Commands[70];	 // "endxmlonly"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ubsection", 9))
        break;
      return &Commands[58];	 // "subsection"
    }
    break;
  case 11:	 // 2 strings to match.
    if (memcmp(Name.data()+0, "end", 3))
      break;
    switch (Name[3]) {
    default: break;
    case 'h':	 // 1 string to match.
      if (memcmp(Name.data()+4, "tmlonly", 7))
        break;
      return &Commands[28];	 // "endhtmlonly"
    case 'v':	 // 1 string to match.
      if (memcmp(Name.data()+4, "erbatim", 7))
        break;
      return &Commands[67];	 // "endverbatim"
    }
    break;
  case 12:	 // 1 string to match.
    if (memcmp(Name.data()+0, "endlatexonly", 12))
      break;
    return &Commands[32];	 // "endlatexonly"
  case 13:	 // 2 strings to match.
    switch (Name[0]) {
    default: break;
    case 's':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ubsubsection", 12))
        break;
      return &Commands[59];	 // "subsubsection"
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "emplatefield", 12))
        break;
      return &Commands[61];	 // "templatefield"
    }
    break;
  }
  return NULL;
}

