1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|*                                                                            *|
3|* A list of commands useable in documentation comments                       *|
4|*                                                                            *|
5|* Automatically generated file, do not edit!                                 *|
6|*                                                                            *|
7\*===----------------------------------------------------------------------===*/
8
9namespace {
10const CommandInfo Commands[] = {
11  { "a", "", 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
12  { "abstract", "", 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
13  { "addtogroup", "", 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
14  { "arg", "", 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
15  { "attention", "", 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
16  { "author", "", 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
17  { "authors", "", 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
18  { "b", "", 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
19  { "brief", "", 8, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
20  { "bug", "", 9, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
21  { "c", "", 10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
22  { "callback", "", 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
23  { "category", "", 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
24  { "class", "", 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
25  { "classdesign", "", 14, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
26  { "coclass", "", 15, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
27  { "code", "endcode", 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
28  { "endcode", "", 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
29  { "const", "", 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
30  { "constant", "", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
31  { "copyright", "", 20, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
32  { "date", "", 21, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
33  { "def", "", 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
34  { "defgroup", "", 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
35  { "dependency", "", 24, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
36  { "deprecated", "", 25, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
37  { "details", "", 26, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
38  { "discussion", "", 27, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
39  { "dot", "enddot", 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
40  { "enddot", "", 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
41  { "e", "", 30, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
42  { "em", "", 31, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
43  { "enum", "", 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
44  { "exception", "", 33, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
45  { "f{", "f}", 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
46  { "f}", "", 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
47  { "f[", "f]", 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
48  { "f]", "", 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
49  { "f$", "f$", 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
50  { "fn", "", 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
51  { "function", "", 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
52  { "functiongroup", "", 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
53  { "headerfile", "", 42, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
54  { "helper", "", 43, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
55  { "helperclass", "", 44, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
56  { "helps", "", 45, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
57  { "htmlonly", "endhtmlonly", 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
58  { "endhtmlonly", "", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
59  { "ingroup", "", 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
60  { "instancesize", "", 49, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
61  { "interface", "", 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
62  { "invariant", "", 51, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
63  { "latexonly", "endlatexonly", 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
64  { "endlatexonly", "", 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
65  { "li", "", 54, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
66  { "link", "/link", 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
67  { "/link", "", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
68  { "mainpage", "", 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
69  { "manonly", "endmanonly", 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
70  { "endmanonly", "", 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
71  { "method", "", 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
72  { "methodgroup", "", 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
73  { "msc", "endmsc", 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
74  { "endmsc", "", 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
75  { "name", "", 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
76  { "namespace", "", 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
77  { "note", "", 66, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
78  { "overload", "", 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
79  { "ownership", "", 68, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
80  { "p", "", 69, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
81  { "par", "", 70, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
82  { "paragraph", "", 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
83  { "param", "", 72, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
84  { "performance", "", 73, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
85  { "post", "", 74, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
86  { "pre", "", 75, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
87  { "property", "", 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
88  { "protocol", "", 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
89  { "ref", "", 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
90  { "related", "", 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
91  { "relatedalso", "", 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
92  { "relates", "", 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
93  { "relatesalso", "", 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
94  { "remark", "", 83, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
95  { "remarks", "", 84, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
96  { "result", "", 85, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
97  { "return", "", 86, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
98  { "returns", "", 87, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
99  { "rtfonly", "endrtfonly", 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
100  { "endrtfonly", "", 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
101  { "sa", "", 90, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
102  { "section", "", 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
103  { "security", "", 92, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
104  { "see", "", 93, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
105  { "seealso", "", 94, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
106  { "short", "", 95, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
107  { "since", "", 96, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
108  { "struct", "", 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
109  { "subpage", "", 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
110  { "subsection", "", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
111  { "subsubsection", "", 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
112  { "superclass", "", 101, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
113  { "template", "", 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
114  { "templatefield", "", 103, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
115  { "textblock", "/textblock", 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
116  { "/textblock", "", 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
117  { "throw", "", 106, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
118  { "throws", "", 107, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
119  { "todo", "", 108, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
120  { "tparam", "", 109, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
121  { "typedef", "", 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
122  { "union", "", 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
123  { "var", "", 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
124  { "verbatim", "endverbatim", 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
125  { "endverbatim", "", 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
126  { "version", "", 115, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
127  { "warning", "", 116, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
128  { "weakgroup", "", 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
129  { "xmlonly", "endxmlonly", 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
130  { "endxmlonly", "", 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }
131};
132} // unnamed namespace
133
134const CommandInfo *CommandTraits::getBuiltinCommandInfo(
135                                         StringRef Name) {
136  switch (Name.size()) {
137  default: break;
138  case 1:	 // 5 strings to match.
139    switch (Name[0]) {
140    default: break;
141    case 'a':	 // 1 string to match.
142      return &Commands[0];	 // "a"
143    case 'b':	 // 1 string to match.
144      return &Commands[7];	 // "b"
145    case 'c':	 // 1 string to match.
146      return &Commands[10];	 // "c"
147    case 'e':	 // 1 string to match.
148      return &Commands[30];	 // "e"
149    case 'p':	 // 1 string to match.
150      return &Commands[69];	 // "p"
151    }
152    break;
153  case 2:	 // 9 strings to match.
154    switch (Name[0]) {
155    default: break;
156    case 'e':	 // 1 string to match.
157      if (Name[1] != 'm')
158        break;
159      return &Commands[31];	 // "em"
160    case 'f':	 // 6 strings to match.
161      switch (Name[1]) {
162      default: break;
163      case '$':	 // 1 string to match.
164        return &Commands[38];	 // "f$"
165      case '[':	 // 1 string to match.
166        return &Commands[36];	 // "f["
167      case ']':	 // 1 string to match.
168        return &Commands[37];	 // "f]"
169      case 'n':	 // 1 string to match.
170        return &Commands[39];	 // "fn"
171      case '{':	 // 1 string to match.
172        return &Commands[34];	 // "f{"
173      case '}':	 // 1 string to match.
174        return &Commands[35];	 // "f}"
175      }
176      break;
177    case 'l':	 // 1 string to match.
178      if (Name[1] != 'i')
179        break;
180      return &Commands[54];	 // "li"
181    case 's':	 // 1 string to match.
182      if (Name[1] != 'a')
183        break;
184      return &Commands[90];	 // "sa"
185    }
186    break;
187  case 3:	 // 10 strings to match.
188    switch (Name[0]) {
189    default: break;
190    case 'a':	 // 1 string to match.
191      if (memcmp(Name.data()+1, "rg", 2) != 0)
192        break;
193      return &Commands[3];	 // "arg"
194    case 'b':	 // 1 string to match.
195      if (memcmp(Name.data()+1, "ug", 2) != 0)
196        break;
197      return &Commands[9];	 // "bug"
198    case 'd':	 // 2 strings to match.
199      switch (Name[1]) {
200      default: break;
201      case 'e':	 // 1 string to match.
202        if (Name[2] != 'f')
203          break;
204        return &Commands[22];	 // "def"
205      case 'o':	 // 1 string to match.
206        if (Name[2] != 't')
207          break;
208        return &Commands[28];	 // "dot"
209      }
210      break;
211    case 'm':	 // 1 string to match.
212      if (memcmp(Name.data()+1, "sc", 2) != 0)
213        break;
214      return &Commands[62];	 // "msc"
215    case 'p':	 // 2 strings to match.
216      switch (Name[1]) {
217      default: break;
218      case 'a':	 // 1 string to match.
219        if (Name[2] != 'r')
220          break;
221        return &Commands[70];	 // "par"
222      case 'r':	 // 1 string to match.
223        if (Name[2] != 'e')
224          break;
225        return &Commands[75];	 // "pre"
226      }
227      break;
228    case 'r':	 // 1 string to match.
229      if (memcmp(Name.data()+1, "ef", 2) != 0)
230        break;
231      return &Commands[78];	 // "ref"
232    case 's':	 // 1 string to match.
233      if (memcmp(Name.data()+1, "ee", 2) != 0)
234        break;
235      return &Commands[93];	 // "see"
236    case 'v':	 // 1 string to match.
237      if (memcmp(Name.data()+1, "ar", 2) != 0)
238        break;
239      return &Commands[112];	 // "var"
240    }
241    break;
242  case 4:	 // 8 strings to match.
243    switch (Name[0]) {
244    default: break;
245    case 'c':	 // 1 string to match.
246      if (memcmp(Name.data()+1, "ode", 3) != 0)
247        break;
248      return &Commands[16];	 // "code"
249    case 'd':	 // 1 string to match.
250      if (memcmp(Name.data()+1, "ate", 3) != 0)
251        break;
252      return &Commands[21];	 // "date"
253    case 'e':	 // 1 string to match.
254      if (memcmp(Name.data()+1, "num", 3) != 0)
255        break;
256      return &Commands[32];	 // "enum"
257    case 'l':	 // 1 string to match.
258      if (memcmp(Name.data()+1, "ink", 3) != 0)
259        break;
260      return &Commands[55];	 // "link"
261    case 'n':	 // 2 strings to match.
262      switch (Name[1]) {
263      default: break;
264      case 'a':	 // 1 string to match.
265        if (memcmp(Name.data()+2, "me", 2) != 0)
266          break;
267        return &Commands[64];	 // "name"
268      case 'o':	 // 1 string to match.
269        if (memcmp(Name.data()+2, "te", 2) != 0)
270          break;
271        return &Commands[66];	 // "note"
272      }
273      break;
274    case 'p':	 // 1 string to match.
275      if (memcmp(Name.data()+1, "ost", 3) != 0)
276        break;
277      return &Commands[74];	 // "post"
278    case 't':	 // 1 string to match.
279      if (memcmp(Name.data()+1, "odo", 3) != 0)
280        break;
281      return &Commands[108];	 // "todo"
282    }
283    break;
284  case 5:	 // 10 strings to match.
285    switch (Name[0]) {
286    default: break;
287    case '/':	 // 1 string to match.
288      if (memcmp(Name.data()+1, "link", 4) != 0)
289        break;
290      return &Commands[56];	 // "/link"
291    case 'b':	 // 1 string to match.
292      if (memcmp(Name.data()+1, "rief", 4) != 0)
293        break;
294      return &Commands[8];	 // "brief"
295    case 'c':	 // 2 strings to match.
296      switch (Name[1]) {
297      default: break;
298      case 'l':	 // 1 string to match.
299        if (memcmp(Name.data()+2, "ass", 3) != 0)
300          break;
301        return &Commands[13];	 // "class"
302      case 'o':	 // 1 string to match.
303        if (memcmp(Name.data()+2, "nst", 3) != 0)
304          break;
305        return &Commands[18];	 // "const"
306      }
307      break;
308    case 'h':	 // 1 string to match.
309      if (memcmp(Name.data()+1, "elps", 4) != 0)
310        break;
311      return &Commands[45];	 // "helps"
312    case 'p':	 // 1 string to match.
313      if (memcmp(Name.data()+1, "aram", 4) != 0)
314        break;
315      return &Commands[72];	 // "param"
316    case 's':	 // 2 strings to match.
317      switch (Name[1]) {
318      default: break;
319      case 'h':	 // 1 string to match.
320        if (memcmp(Name.data()+2, "ort", 3) != 0)
321          break;
322        return &Commands[95];	 // "short"
323      case 'i':	 // 1 string to match.
324        if (memcmp(Name.data()+2, "nce", 3) != 0)
325          break;
326        return &Commands[96];	 // "since"
327      }
328      break;
329    case 't':	 // 1 string to match.
330      if (memcmp(Name.data()+1, "hrow", 4) != 0)
331        break;
332      return &Commands[106];	 // "throw"
333    case 'u':	 // 1 string to match.
334      if (memcmp(Name.data()+1, "nion", 4) != 0)
335        break;
336      return &Commands[111];	 // "union"
337    }
338    break;
339  case 6:	 // 11 strings to match.
340    switch (Name[0]) {
341    default: break;
342    case 'a':	 // 1 string to match.
343      if (memcmp(Name.data()+1, "uthor", 5) != 0)
344        break;
345      return &Commands[5];	 // "author"
346    case 'e':	 // 2 strings to match.
347      if (memcmp(Name.data()+1, "nd", 2) != 0)
348        break;
349      switch (Name[3]) {
350      default: break;
351      case 'd':	 // 1 string to match.
352        if (memcmp(Name.data()+4, "ot", 2) != 0)
353          break;
354        return &Commands[29];	 // "enddot"
355      case 'm':	 // 1 string to match.
356        if (memcmp(Name.data()+4, "sc", 2) != 0)
357          break;
358        return &Commands[63];	 // "endmsc"
359      }
360      break;
361    case 'h':	 // 1 string to match.
362      if (memcmp(Name.data()+1, "elper", 5) != 0)
363        break;
364      return &Commands[43];	 // "helper"
365    case 'm':	 // 1 string to match.
366      if (memcmp(Name.data()+1, "ethod", 5) != 0)
367        break;
368      return &Commands[60];	 // "method"
369    case 'r':	 // 3 strings to match.
370      if (Name[1] != 'e')
371        break;
372      switch (Name[2]) {
373      default: break;
374      case 'm':	 // 1 string to match.
375        if (memcmp(Name.data()+3, "ark", 3) != 0)
376          break;
377        return &Commands[83];	 // "remark"
378      case 's':	 // 1 string to match.
379        if (memcmp(Name.data()+3, "ult", 3) != 0)
380          break;
381        return &Commands[85];	 // "result"
382      case 't':	 // 1 string to match.
383        if (memcmp(Name.data()+3, "urn", 3) != 0)
384          break;
385        return &Commands[86];	 // "return"
386      }
387      break;
388    case 's':	 // 1 string to match.
389      if (memcmp(Name.data()+1, "truct", 5) != 0)
390        break;
391      return &Commands[97];	 // "struct"
392    case 't':	 // 2 strings to match.
393      switch (Name[1]) {
394      default: break;
395      case 'h':	 // 1 string to match.
396        if (memcmp(Name.data()+2, "rows", 4) != 0)
397          break;
398        return &Commands[107];	 // "throws"
399      case 'p':	 // 1 string to match.
400        if (memcmp(Name.data()+2, "aram", 4) != 0)
401          break;
402        return &Commands[109];	 // "tparam"
403      }
404      break;
405    }
406    break;
407  case 7:	 // 18 strings to match.
408    switch (Name[0]) {
409    default: break;
410    case 'a':	 // 1 string to match.
411      if (memcmp(Name.data()+1, "uthors", 6) != 0)
412        break;
413      return &Commands[6];	 // "authors"
414    case 'c':	 // 1 string to match.
415      if (memcmp(Name.data()+1, "oclass", 6) != 0)
416        break;
417      return &Commands[15];	 // "coclass"
418    case 'd':	 // 1 string to match.
419      if (memcmp(Name.data()+1, "etails", 6) != 0)
420        break;
421      return &Commands[26];	 // "details"
422    case 'e':	 // 1 string to match.
423      if (memcmp(Name.data()+1, "ndcode", 6) != 0)
424        break;
425      return &Commands[17];	 // "endcode"
426    case 'i':	 // 1 string to match.
427      if (memcmp(Name.data()+1, "ngroup", 6) != 0)
428        break;
429      return &Commands[48];	 // "ingroup"
430    case 'm':	 // 1 string to match.
431      if (memcmp(Name.data()+1, "anonly", 6) != 0)
432        break;
433      return &Commands[58];	 // "manonly"
434    case 'r':	 // 5 strings to match.
435      switch (Name[1]) {
436      default: break;
437      case 'e':	 // 4 strings to match.
438        switch (Name[2]) {
439        default: break;
440        case 'l':	 // 2 strings to match.
441          if (memcmp(Name.data()+3, "ate", 3) != 0)
442            break;
443          switch (Name[6]) {
444          default: break;
445          case 'd':	 // 1 string to match.
446            return &Commands[79];	 // "related"
447          case 's':	 // 1 string to match.
448            return &Commands[81];	 // "relates"
449          }
450          break;
451        case 'm':	 // 1 string to match.
452          if (memcmp(Name.data()+3, "arks", 4) != 0)
453            break;
454          return &Commands[84];	 // "remarks"
455        case 't':	 // 1 string to match.
456          if (memcmp(Name.data()+3, "urns", 4) != 0)
457            break;
458          return &Commands[87];	 // "returns"
459        }
460        break;
461      case 't':	 // 1 string to match.
462        if (memcmp(Name.data()+2, "fonly", 5) != 0)
463          break;
464        return &Commands[88];	 // "rtfonly"
465      }
466      break;
467    case 's':	 // 3 strings to match.
468      switch (Name[1]) {
469      default: break;
470      case 'e':	 // 2 strings to match.
471        switch (Name[2]) {
472        default: break;
473        case 'c':	 // 1 string to match.
474          if (memcmp(Name.data()+3, "tion", 4) != 0)
475            break;
476          return &Commands[91];	 // "section"
477        case 'e':	 // 1 string to match.
478          if (memcmp(Name.data()+3, "also", 4) != 0)
479            break;
480          return &Commands[94];	 // "seealso"
481        }
482        break;
483      case 'u':	 // 1 string to match.
484        if (memcmp(Name.data()+2, "bpage", 5) != 0)
485          break;
486        return &Commands[98];	 // "subpage"
487      }
488      break;
489    case 't':	 // 1 string to match.
490      if (memcmp(Name.data()+1, "ypedef", 6) != 0)
491        break;
492      return &Commands[110];	 // "typedef"
493    case 'v':	 // 1 string to match.
494      if (memcmp(Name.data()+1, "ersion", 6) != 0)
495        break;
496      return &Commands[115];	 // "version"
497    case 'w':	 // 1 string to match.
498      if (memcmp(Name.data()+1, "arning", 6) != 0)
499        break;
500      return &Commands[116];	 // "warning"
501    case 'x':	 // 1 string to match.
502      if (memcmp(Name.data()+1, "mlonly", 6) != 0)
503        break;
504      return &Commands[118];	 // "xmlonly"
505    }
506    break;
507  case 8:	 // 14 strings to match.
508    switch (Name[0]) {
509    default: break;
510    case 'a':	 // 1 string to match.
511      if (memcmp(Name.data()+1, "bstract", 7) != 0)
512        break;
513      return &Commands[1];	 // "abstract"
514    case 'c':	 // 3 strings to match.
515      switch (Name[1]) {
516      default: break;
517      case 'a':	 // 2 strings to match.
518        switch (Name[2]) {
519        default: break;
520        case 'l':	 // 1 string to match.
521          if (memcmp(Name.data()+3, "lback", 5) != 0)
522            break;
523          return &Commands[11];	 // "callback"
524        case 't':	 // 1 string to match.
525          if (memcmp(Name.data()+3, "egory", 5) != 0)
526            break;
527          return &Commands[12];	 // "category"
528        }
529        break;
530      case 'o':	 // 1 string to match.
531        if (memcmp(Name.data()+2, "nstant", 6) != 0)
532          break;
533        return &Commands[19];	 // "constant"
534      }
535      break;
536    case 'd':	 // 1 string to match.
537      if (memcmp(Name.data()+1, "efgroup", 7) != 0)
538        break;
539      return &Commands[23];	 // "defgroup"
540    case 'f':	 // 1 string to match.
541      if (memcmp(Name.data()+1, "unction", 7) != 0)
542        break;
543      return &Commands[40];	 // "function"
544    case 'h':	 // 1 string to match.
545      if (memcmp(Name.data()+1, "tmlonly", 7) != 0)
546        break;
547      return &Commands[46];	 // "htmlonly"
548    case 'm':	 // 1 string to match.
549      if (memcmp(Name.data()+1, "ainpage", 7) != 0)
550        break;
551      return &Commands[57];	 // "mainpage"
552    case 'o':	 // 1 string to match.
553      if (memcmp(Name.data()+1, "verload", 7) != 0)
554        break;
555      return &Commands[67];	 // "overload"
556    case 'p':	 // 2 strings to match.
557      if (memcmp(Name.data()+1, "ro", 2) != 0)
558        break;
559      switch (Name[3]) {
560      default: break;
561      case 'p':	 // 1 string to match.
562        if (memcmp(Name.data()+4, "erty", 4) != 0)
563          break;
564        return &Commands[76];	 // "property"
565      case 't':	 // 1 string to match.
566        if (memcmp(Name.data()+4, "ocol", 4) != 0)
567          break;
568        return &Commands[77];	 // "protocol"
569      }
570      break;
571    case 's':	 // 1 string to match.
572      if (memcmp(Name.data()+1, "ecurity", 7) != 0)
573        break;
574      return &Commands[92];	 // "security"
575    case 't':	 // 1 string to match.
576      if (memcmp(Name.data()+1, "emplate", 7) != 0)
577        break;
578      return &Commands[102];	 // "template"
579    case 'v':	 // 1 string to match.
580      if (memcmp(Name.data()+1, "erbatim", 7) != 0)
581        break;
582      return &Commands[113];	 // "verbatim"
583    }
584    break;
585  case 9:	 // 11 strings to match.
586    switch (Name[0]) {
587    default: break;
588    case 'a':	 // 1 string to match.
589      if (memcmp(Name.data()+1, "ttention", 8) != 0)
590        break;
591      return &Commands[4];	 // "attention"
592    case 'c':	 // 1 string to match.
593      if (memcmp(Name.data()+1, "opyright", 8) != 0)
594        break;
595      return &Commands[20];	 // "copyright"
596    case 'e':	 // 1 string to match.
597      if (memcmp(Name.data()+1, "xception", 8) != 0)
598        break;
599      return &Commands[33];	 // "exception"
600    case 'i':	 // 2 strings to match.
601      if (Name[1] != 'n')
602        break;
603      switch (Name[2]) {
604      default: break;
605      case 't':	 // 1 string to match.
606        if (memcmp(Name.data()+3, "erface", 6) != 0)
607          break;
608        return &Commands[50];	 // "interface"
609      case 'v':	 // 1 string to match.
610        if (memcmp(Name.data()+3, "ariant", 6) != 0)
611          break;
612        return &Commands[51];	 // "invariant"
613      }
614      break;
615    case 'l':	 // 1 string to match.
616      if (memcmp(Name.data()+1, "atexonly", 8) != 0)
617        break;
618      return &Commands[52];	 // "latexonly"
619    case 'n':	 // 1 string to match.
620      if (memcmp(Name.data()+1, "amespace", 8) != 0)
621        break;
622      return &Commands[65];	 // "namespace"
623    case 'o':	 // 1 string to match.
624      if (memcmp(Name.data()+1, "wnership", 8) != 0)
625        break;
626      return &Commands[68];	 // "ownership"
627    case 'p':	 // 1 string to match.
628      if (memcmp(Name.data()+1, "aragraph", 8) != 0)
629        break;
630      return &Commands[71];	 // "paragraph"
631    case 't':	 // 1 string to match.
632      if (memcmp(Name.data()+1, "extblock", 8) != 0)
633        break;
634      return &Commands[104];	 // "textblock"
635    case 'w':	 // 1 string to match.
636      if (memcmp(Name.data()+1, "eakgroup", 8) != 0)
637        break;
638      return &Commands[117];	 // "weakgroup"
639    }
640    break;
641  case 10:	 // 11 strings to match.
642    switch (Name[0]) {
643    default: break;
644    case '/':	 // 1 string to match.
645      if (memcmp(Name.data()+1, "textblock", 9) != 0)
646        break;
647      return &Commands[105];	 // "/textblock"
648    case 'a':	 // 1 string to match.
649      if (memcmp(Name.data()+1, "ddtogroup", 9) != 0)
650        break;
651      return &Commands[2];	 // "addtogroup"
652    case 'd':	 // 3 strings to match.
653      switch (Name[1]) {
654      default: break;
655      case 'e':	 // 2 strings to match.
656        if (Name[2] != 'p')
657          break;
658        switch (Name[3]) {
659        default: break;
660        case 'e':	 // 1 string to match.
661          if (memcmp(Name.data()+4, "ndency", 6) != 0)
662            break;
663          return &Commands[24];	 // "dependency"
664        case 'r':	 // 1 string to match.
665          if (memcmp(Name.data()+4, "ecated", 6) != 0)
666            break;
667          return &Commands[25];	 // "deprecated"
668        }
669        break;
670      case 'i':	 // 1 string to match.
671        if (memcmp(Name.data()+2, "scussion", 8) != 0)
672          break;
673        return &Commands[27];	 // "discussion"
674      }
675      break;
676    case 'e':	 // 3 strings to match.
677      if (memcmp(Name.data()+1, "nd", 2) != 0)
678        break;
679      switch (Name[3]) {
680      default: break;
681      case 'm':	 // 1 string to match.
682        if (memcmp(Name.data()+4, "anonly", 6) != 0)
683          break;
684        return &Commands[59];	 // "endmanonly"
685      case 'r':	 // 1 string to match.
686        if (memcmp(Name.data()+4, "tfonly", 6) != 0)
687          break;
688        return &Commands[89];	 // "endrtfonly"
689      case 'x':	 // 1 string to match.
690        if (memcmp(Name.data()+4, "mlonly", 6) != 0)
691          break;
692        return &Commands[119];	 // "endxmlonly"
693      }
694      break;
695    case 'h':	 // 1 string to match.
696      if (memcmp(Name.data()+1, "eaderfile", 9) != 0)
697        break;
698      return &Commands[42];	 // "headerfile"
699    case 's':	 // 2 strings to match.
700      if (Name[1] != 'u')
701        break;
702      switch (Name[2]) {
703      default: break;
704      case 'b':	 // 1 string to match.
705        if (memcmp(Name.data()+3, "section", 7) != 0)
706          break;
707        return &Commands[99];	 // "subsection"
708      case 'p':	 // 1 string to match.
709        if (memcmp(Name.data()+3, "erclass", 7) != 0)
710          break;
711        return &Commands[101];	 // "superclass"
712      }
713      break;
714    }
715    break;
716  case 11:	 // 8 strings to match.
717    switch (Name[0]) {
718    default: break;
719    case 'c':	 // 1 string to match.
720      if (memcmp(Name.data()+1, "lassdesign", 10) != 0)
721        break;
722      return &Commands[14];	 // "classdesign"
723    case 'e':	 // 2 strings to match.
724      if (memcmp(Name.data()+1, "nd", 2) != 0)
725        break;
726      switch (Name[3]) {
727      default: break;
728      case 'h':	 // 1 string to match.
729        if (memcmp(Name.data()+4, "tmlonly", 7) != 0)
730          break;
731        return &Commands[47];	 // "endhtmlonly"
732      case 'v':	 // 1 string to match.
733        if (memcmp(Name.data()+4, "erbatim", 7) != 0)
734          break;
735        return &Commands[114];	 // "endverbatim"
736      }
737      break;
738    case 'h':	 // 1 string to match.
739      if (memcmp(Name.data()+1, "elperclass", 10) != 0)
740        break;
741      return &Commands[44];	 // "helperclass"
742    case 'm':	 // 1 string to match.
743      if (memcmp(Name.data()+1, "ethodgroup", 10) != 0)
744        break;
745      return &Commands[61];	 // "methodgroup"
746    case 'p':	 // 1 string to match.
747      if (memcmp(Name.data()+1, "erformance", 10) != 0)
748        break;
749      return &Commands[73];	 // "performance"
750    case 'r':	 // 2 strings to match.
751      if (memcmp(Name.data()+1, "elate", 5) != 0)
752        break;
753      switch (Name[6]) {
754      default: break;
755      case 'd':	 // 1 string to match.
756        if (memcmp(Name.data()+7, "also", 4) != 0)
757          break;
758        return &Commands[80];	 // "relatedalso"
759      case 's':	 // 1 string to match.
760        if (memcmp(Name.data()+7, "also", 4) != 0)
761          break;
762        return &Commands[82];	 // "relatesalso"
763      }
764      break;
765    }
766    break;
767  case 12:	 // 2 strings to match.
768    switch (Name[0]) {
769    default: break;
770    case 'e':	 // 1 string to match.
771      if (memcmp(Name.data()+1, "ndlatexonly", 11) != 0)
772        break;
773      return &Commands[53];	 // "endlatexonly"
774    case 'i':	 // 1 string to match.
775      if (memcmp(Name.data()+1, "nstancesize", 11) != 0)
776        break;
777      return &Commands[49];	 // "instancesize"
778    }
779    break;
780  case 13:	 // 3 strings to match.
781    switch (Name[0]) {
782    default: break;
783    case 'f':	 // 1 string to match.
784      if (memcmp(Name.data()+1, "unctiongroup", 12) != 0)
785        break;
786      return &Commands[41];	 // "functiongroup"
787    case 's':	 // 1 string to match.
788      if (memcmp(Name.data()+1, "ubsubsection", 12) != 0)
789        break;
790      return &Commands[100];	 // "subsubsection"
791    case 't':	 // 1 string to match.
792      if (memcmp(Name.data()+1, "emplatefield", 12) != 0)
793        break;
794      return &Commands[103];	 // "templatefield"
795    }
796    break;
797  }
798  return nullptr;
799}
800
801