/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|*A list of commands useable in documentation comments                        *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

namespace {
const CommandInfo Commands[] = {
  { "a", "", 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "abstract", "", 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "addtogroup", "", 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "arg", "", 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "attention", "", 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "author", "", 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "authors", "", 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "b", "", 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "brief", "", 8, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "bug", "", 9, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "c", "", 10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "callback", "", 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
  { "category", "", 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "class", "", 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
  { "classdesign", "", 14, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "coclass", "", 15, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "code", "endcode", 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "endcode", "", 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "const", "", 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "constant", "", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "copyright", "", 20, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "date", "", 21, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "def", "", 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "defgroup", "", 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "dependency", "", 24, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "deprecated", "", 25, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "details", "", 26, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "discussion", "", 27, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "dot", "enddot", 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "enddot", "", 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "e", "", 30, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "em", "", 31, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "enum", "", 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "exception", "", 33, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "f{", "f}", 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "f}", "", 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "f[", "f]", 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "f]", "", 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "f$", "f$", 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "fn", "", 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "function", "", 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
  { "functiongroup", "", 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
  { "headerfile", "", 42, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "helper", "", 43, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "helperclass", "", 44, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "helps", "", 45, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "htmlonly", "endhtmlonly", 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "endhtmlonly", "", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "ingroup", "", 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "instancesize", "", 49, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "interface", "", 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
  { "invariant", "", 51, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "latexonly", "endlatexonly", 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "endlatexonly", "", 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "li", "", 54, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "link", "/link", 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "/link", "", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "mainpage", "", 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "manonly", "endmanonly", 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "endmanonly", "", 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "method", "", 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
  { "methodgroup", "", 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
  { "msc", "endmsc", 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "endmsc", "", 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "name", "", 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "namespace", "", 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "note", "", 66, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "overload", "", 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "ownership", "", 68, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "p", "", 69, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "par", "", 70, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "paragraph", "", 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "param", "", 72, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "performance", "", 73, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "post", "", 74, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "pre", "", 75, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "property", "", 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "protocol", "", 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
  { "ref", "", 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "related", "", 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "relatedalso", "", 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "relates", "", 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "relatesalso", "", 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "remark", "", 83, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "remarks", "", 84, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "result", "", 85, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "return", "", 86, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "returns", "", 87, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "rtfonly", "endrtfonly", 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "endrtfonly", "", 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "sa", "", 90, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "section", "", 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "security", "", 92, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "see", "", 93, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "seealso", "", 94, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "short", "", 95, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "since", "", 96, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "struct", "", 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
  { "subpage", "", 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "subsection", "", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "subsubsection", "", 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "superclass", "", 101, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
  { "template", "", 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "templatefield", "", 103, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "textblock", "/textblock", 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "/textblock", "", 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "throw", "", 106, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "throws", "", 107, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "todo", "", 108, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "tparam", "", 109, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "typedef", "", 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "union", "", 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
  { "var", "", 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
  { "verbatim", "endverbatim", 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "endverbatim", "", 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
  { "version", "", 115, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "warning", "", 116, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { "weakgroup", "", 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
  { "xmlonly", "endxmlonly", 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
  { "endxmlonly", "", 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 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[7];	 // "b"
    case 'c':	 // 1 string to match.
      return &Commands[10];	 // "c"
    case 'e':	 // 1 string to match.
      return &Commands[30];	 // "e"
    case 'p':	 // 1 string to match.
      return &Commands[69];	 // "p"
    }
    break;
  case 2:	 // 9 strings to match.
    switch (Name[0]) {
    default: break;
    case 'e':	 // 1 string to match.
      if (Name[1] != 'm')
        break;
      return &Commands[31];	 // "em"
    case 'f':	 // 6 strings to match.
      switch (Name[1]) {
      default: break;
      case '$':	 // 1 string to match.
        return &Commands[38];	 // "f$"
      case '[':	 // 1 string to match.
        return &Commands[36];	 // "f["
      case ']':	 // 1 string to match.
        return &Commands[37];	 // "f]"
      case 'n':	 // 1 string to match.
        return &Commands[39];	 // "fn"
      case '{':	 // 1 string to match.
        return &Commands[34];	 // "f{"
      case '}':	 // 1 string to match.
        return &Commands[35];	 // "f}"
      }
      break;
    case 'l':	 // 1 string to match.
      if (Name[1] != 'i')
        break;
      return &Commands[54];	 // "li"
    case 's':	 // 1 string to match.
      if (Name[1] != 'a')
        break;
      return &Commands[90];	 // "sa"
    }
    break;
  case 3:	 // 10 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(Name.data()+1, "rg", 2))
        break;
      return &Commands[3];	 // "arg"
    case 'b':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ug", 2))
        break;
      return &Commands[9];	 // "bug"
    case 'd':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (Name[2] != 'f')
          break;
        return &Commands[22];	 // "def"
      case 'o':	 // 1 string to match.
        if (Name[2] != 't')
          break;
        return &Commands[28];	 // "dot"
      }
      break;
    case 'm':	 // 1 string to match.
      if (memcmp(Name.data()+1, "sc", 2))
        break;
      return &Commands[62];	 // "msc"
    case 'p':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (Name[2] != 'r')
          break;
        return &Commands[70];	 // "par"
      case 'r':	 // 1 string to match.
        if (Name[2] != 'e')
          break;
        return &Commands[75];	 // "pre"
      }
      break;
    case 'r':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ef", 2))
        break;
      return &Commands[78];	 // "ref"
    case 's':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ee", 2))
        break;
      return &Commands[93];	 // "see"
    case 'v':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ar", 2))
        break;
      return &Commands[112];	 // "var"
    }
    break;
  case 4:	 // 8 strings to match.
    switch (Name[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ode", 3))
        break;
      return &Commands[16];	 // "code"
    case 'd':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ate", 3))
        break;
      return &Commands[21];	 // "date"
    case 'e':	 // 1 string to match.
      if (memcmp(Name.data()+1, "num", 3))
        break;
      return &Commands[32];	 // "enum"
    case 'l':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ink", 3))
        break;
      return &Commands[55];	 // "link"
    case 'n':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "me", 2))
          break;
        return &Commands[64];	 // "name"
      case 'o':	 // 1 string to match.
        if (memcmp(Name.data()+2, "te", 2))
          break;
        return &Commands[66];	 // "note"
      }
      break;
    case 'p':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ost", 3))
        break;
      return &Commands[74];	 // "post"
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "odo", 3))
        break;
      return &Commands[108];	 // "todo"
    }
    break;
  case 5:	 // 10 strings to match.
    switch (Name[0]) {
    default: break;
    case '/':	 // 1 string to match.
      if (memcmp(Name.data()+1, "link", 4))
        break;
      return &Commands[56];	 // "/link"
    case 'b':	 // 1 string to match.
      if (memcmp(Name.data()+1, "rief", 4))
        break;
      return &Commands[8];	 // "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[13];	 // "class"
      case 'o':	 // 1 string to match.
        if (memcmp(Name.data()+2, "nst", 3))
          break;
        return &Commands[18];	 // "const"
      }
      break;
    case 'h':	 // 1 string to match.
      if (memcmp(Name.data()+1, "elps", 4))
        break;
      return &Commands[45];	 // "helps"
    case 'p':	 // 1 string to match.
      if (memcmp(Name.data()+1, "aram", 4))
        break;
      return &Commands[72];	 // "param"
    case 's':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'h':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ort", 3))
          break;
        return &Commands[95];	 // "short"
      case 'i':	 // 1 string to match.
        if (memcmp(Name.data()+2, "nce", 3))
          break;
        return &Commands[96];	 // "since"
      }
      break;
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "hrow", 4))
        break;
      return &Commands[106];	 // "throw"
    case 'u':	 // 1 string to match.
      if (memcmp(Name.data()+1, "nion", 4))
        break;
      return &Commands[111];	 // "union"
    }
    break;
  case 6:	 // 11 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uthor", 5))
        break;
      return &Commands[5];	 // "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[29];	 // "enddot"
      case 'm':	 // 1 string to match.
        if (memcmp(Name.data()+4, "sc", 2))
          break;
        return &Commands[63];	 // "endmsc"
      }
      break;
    case 'h':	 // 1 string to match.
      if (memcmp(Name.data()+1, "elper", 5))
        break;
      return &Commands[43];	 // "helper"
    case 'm':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ethod", 5))
        break;
      return &Commands[60];	 // "method"
    case 'r':	 // 3 strings to match.
      if (Name[1] != 'e')
        break;
      switch (Name[2]) {
      default: break;
      case 'm':	 // 1 string to match.
        if (memcmp(Name.data()+3, "ark", 3))
          break;
        return &Commands[83];	 // "remark"
      case 's':	 // 1 string to match.
        if (memcmp(Name.data()+3, "ult", 3))
          break;
        return &Commands[85];	 // "result"
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+3, "urn", 3))
          break;
        return &Commands[86];	 // "return"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(Name.data()+1, "truct", 5))
        break;
      return &Commands[97];	 // "struct"
    case 't':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'h':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rows", 4))
          break;
        return &Commands[107];	 // "throws"
      case 'p':	 // 1 string to match.
        if (memcmp(Name.data()+2, "aram", 4))
          break;
        return &Commands[109];	 // "tparam"
      }
      break;
    }
    break;
  case 7:	 // 18 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uthors", 6))
        break;
      return &Commands[6];	 // "authors"
    case 'c':	 // 1 string to match.
      if (memcmp(Name.data()+1, "oclass", 6))
        break;
      return &Commands[15];	 // "coclass"
    case 'd':	 // 1 string to match.
      if (memcmp(Name.data()+1, "etails", 6))
        break;
      return &Commands[26];	 // "details"
    case 'e':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ndcode", 6))
        break;
      return &Commands[17];	 // "endcode"
    case 'i':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ngroup", 6))
        break;
      return &Commands[48];	 // "ingroup"
    case 'm':	 // 1 string to match.
      if (memcmp(Name.data()+1, "anonly", 6))
        break;
      return &Commands[58];	 // "manonly"
    case 'r':	 // 5 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 4 strings to match.
        switch (Name[2]) {
        default: break;
        case 'l':	 // 2 strings to match.
          if (memcmp(Name.data()+3, "ate", 3))
            break;
          switch (Name[6]) {
          default: break;
          case 'd':	 // 1 string to match.
            return &Commands[79];	 // "related"
          case 's':	 // 1 string to match.
            return &Commands[81];	 // "relates"
          }
          break;
        case 'm':	 // 1 string to match.
          if (memcmp(Name.data()+3, "arks", 4))
            break;
          return &Commands[84];	 // "remarks"
        case 't':	 // 1 string to match.
          if (memcmp(Name.data()+3, "urns", 4))
            break;
          return &Commands[87];	 // "returns"
        }
        break;
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+2, "fonly", 5))
          break;
        return &Commands[88];	 // "rtfonly"
      }
      break;
    case 's':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'c':	 // 1 string to match.
          if (memcmp(Name.data()+3, "tion", 4))
            break;
          return &Commands[91];	 // "section"
        case 'e':	 // 1 string to match.
          if (memcmp(Name.data()+3, "also", 4))
            break;
          return &Commands[94];	 // "seealso"
        }
        break;
      case 'u':	 // 1 string to match.
        if (memcmp(Name.data()+2, "bpage", 5))
          break;
        return &Commands[98];	 // "subpage"
      }
      break;
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ypedef", 6))
        break;
      return &Commands[110];	 // "typedef"
    case 'v':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ersion", 6))
        break;
      return &Commands[115];	 // "version"
    case 'w':	 // 1 string to match.
      if (memcmp(Name.data()+1, "arning", 6))
        break;
      return &Commands[116];	 // "warning"
    case 'x':	 // 1 string to match.
      if (memcmp(Name.data()+1, "mlonly", 6))
        break;
      return &Commands[118];	 // "xmlonly"
    }
    break;
  case 8:	 // 14 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(Name.data()+1, "bstract", 7))
        break;
      return &Commands[1];	 // "abstract"
    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[11];	 // "callback"
        case 't':	 // 1 string to match.
          if (memcmp(Name.data()+3, "egory", 5))
            break;
          return &Commands[12];	 // "category"
        }
        break;
      case 'o':	 // 1 string to match.
        if (memcmp(Name.data()+2, "nstant", 6))
          break;
        return &Commands[19];	 // "constant"
      }
      break;
    case 'd':	 // 1 string to match.
      if (memcmp(Name.data()+1, "efgroup", 7))
        break;
      return &Commands[23];	 // "defgroup"
    case 'f':	 // 1 string to match.
      if (memcmp(Name.data()+1, "unction", 7))
        break;
      return &Commands[40];	 // "function"
    case 'h':	 // 1 string to match.
      if (memcmp(Name.data()+1, "tmlonly", 7))
        break;
      return &Commands[46];	 // "htmlonly"
    case 'm':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ainpage", 7))
        break;
      return &Commands[57];	 // "mainpage"
    case 'o':	 // 1 string to match.
      if (memcmp(Name.data()+1, "verload", 7))
        break;
      return &Commands[67];	 // "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[76];	 // "property"
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+4, "ocol", 4))
          break;
        return &Commands[77];	 // "protocol"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ecurity", 7))
        break;
      return &Commands[92];	 // "security"
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "emplate", 7))
        break;
      return &Commands[102];	 // "template"
    case 'v':	 // 1 string to match.
      if (memcmp(Name.data()+1, "erbatim", 7))
        break;
      return &Commands[113];	 // "verbatim"
    }
    break;
  case 9:	 // 11 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ttention", 8))
        break;
      return &Commands[4];	 // "attention"
    case 'c':	 // 1 string to match.
      if (memcmp(Name.data()+1, "opyright", 8))
        break;
      return &Commands[20];	 // "copyright"
    case 'e':	 // 1 string to match.
      if (memcmp(Name.data()+1, "xception", 8))
        break;
      return &Commands[33];	 // "exception"
    case 'i':	 // 2 strings to match.
      if (Name[1] != 'n')
        break;
      switch (Name[2]) {
      default: break;
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+3, "erface", 6))
          break;
        return &Commands[50];	 // "interface"
      case 'v':	 // 1 string to match.
        if (memcmp(Name.data()+3, "ariant", 6))
          break;
        return &Commands[51];	 // "invariant"
      }
      break;
    case 'l':	 // 1 string to match.
      if (memcmp(Name.data()+1, "atexonly", 8))
        break;
      return &Commands[52];	 // "latexonly"
    case 'n':	 // 1 string to match.
      if (memcmp(Name.data()+1, "amespace", 8))
        break;
      return &Commands[65];	 // "namespace"
    case 'o':	 // 1 string to match.
      if (memcmp(Name.data()+1, "wnership", 8))
        break;
      return &Commands[68];	 // "ownership"
    case 'p':	 // 1 string to match.
      if (memcmp(Name.data()+1, "aragraph", 8))
        break;
      return &Commands[71];	 // "paragraph"
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "extblock", 8))
        break;
      return &Commands[104];	 // "textblock"
    case 'w':	 // 1 string to match.
      if (memcmp(Name.data()+1, "eakgroup", 8))
        break;
      return &Commands[117];	 // "weakgroup"
    }
    break;
  case 10:	 // 11 strings to match.
    switch (Name[0]) {
    default: break;
    case '/':	 // 1 string to match.
      if (memcmp(Name.data()+1, "textblock", 9))
        break;
      return &Commands[105];	 // "/textblock"
    case 'a':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ddtogroup", 9))
        break;
      return &Commands[2];	 // "addtogroup"
    case 'd':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 2 strings to match.
        if (Name[2] != 'p')
          break;
        switch (Name[3]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(Name.data()+4, "ndency", 6))
            break;
          return &Commands[24];	 // "dependency"
        case 'r':	 // 1 string to match.
          if (memcmp(Name.data()+4, "ecated", 6))
            break;
          return &Commands[25];	 // "deprecated"
        }
        break;
      case 'i':	 // 1 string to match.
        if (memcmp(Name.data()+2, "scussion", 8))
          break;
        return &Commands[27];	 // "discussion"
      }
      break;
    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[59];	 // "endmanonly"
      case 'r':	 // 1 string to match.
        if (memcmp(Name.data()+4, "tfonly", 6))
          break;
        return &Commands[89];	 // "endrtfonly"
      case 'x':	 // 1 string to match.
        if (memcmp(Name.data()+4, "mlonly", 6))
          break;
        return &Commands[119];	 // "endxmlonly"
      }
      break;
    case 'h':	 // 1 string to match.
      if (memcmp(Name.data()+1, "eaderfile", 9))
        break;
      return &Commands[42];	 // "headerfile"
    case 's':	 // 2 strings to match.
      if (Name[1] != 'u')
        break;
      switch (Name[2]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (memcmp(Name.data()+3, "section", 7))
          break;
        return &Commands[99];	 // "subsection"
      case 'p':	 // 1 string to match.
        if (memcmp(Name.data()+3, "erclass", 7))
          break;
        return &Commands[101];	 // "superclass"
      }
      break;
    }
    break;
  case 11:	 // 8 strings to match.
    switch (Name[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(Name.data()+1, "lassdesign", 10))
        break;
      return &Commands[14];	 // "classdesign"
    case 'e':	 // 2 strings to match.
      if (memcmp(Name.data()+1, "nd", 2))
        break;
      switch (Name[3]) {
      default: break;
      case 'h':	 // 1 string to match.
        if (memcmp(Name.data()+4, "tmlonly", 7))
          break;
        return &Commands[47];	 // "endhtmlonly"
      case 'v':	 // 1 string to match.
        if (memcmp(Name.data()+4, "erbatim", 7))
          break;
        return &Commands[114];	 // "endverbatim"
      }
      break;
    case 'h':	 // 1 string to match.
      if (memcmp(Name.data()+1, "elperclass", 10))
        break;
      return &Commands[44];	 // "helperclass"
    case 'm':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ethodgroup", 10))
        break;
      return &Commands[61];	 // "methodgroup"
    case 'p':	 // 1 string to match.
      if (memcmp(Name.data()+1, "erformance", 10))
        break;
      return &Commands[73];	 // "performance"
    case 'r':	 // 2 strings to match.
      if (memcmp(Name.data()+1, "elate", 5))
        break;
      switch (Name[6]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(Name.data()+7, "also", 4))
          break;
        return &Commands[80];	 // "relatedalso"
      case 's':	 // 1 string to match.
        if (memcmp(Name.data()+7, "also", 4))
          break;
        return &Commands[82];	 // "relatesalso"
      }
      break;
    }
    break;
  case 12:	 // 2 strings to match.
    switch (Name[0]) {
    default: break;
    case 'e':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ndlatexonly", 11))
        break;
      return &Commands[53];	 // "endlatexonly"
    case 'i':	 // 1 string to match.
      if (memcmp(Name.data()+1, "nstancesize", 11))
        break;
      return &Commands[49];	 // "instancesize"
    }
    break;
  case 13:	 // 3 strings to match.
    switch (Name[0]) {
    default: break;
    case 'f':	 // 1 string to match.
      if (memcmp(Name.data()+1, "unctiongroup", 12))
        break;
      return &Commands[41];	 // "functiongroup"
    case 's':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ubsubsection", 12))
        break;
      return &Commands[100];	 // "subsubsection"
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "emplatefield", 12))
        break;
      return &Commands[103];	 // "templatefield"
    }
    break;
  }
  return NULL;
}

