1 /******************************************************************************
6 * Copyright (C) 1997-2014 by Dimitri van Heesch.
8 * Permission to use, copy, modify, and distribute this software and its
9 * documentation under the terms of the GNU General Public License is hereby
10 * granted. No representations are made about the suitability of this software
11 * for any purpose. It is provided "as is" without express or implied warranty.
12 * See the GNU General Public License for more details.
14 * Documents produced by Doxygen are derivative works derived from the
15 * input used in their production; they are not affected by this license.
19 #include "cmdmapper.h"
21 /** Call representing a mapping from a command name to a command ID. */
30 { "a", CMD_EMPHASIS },
31 { "addindex", CMD_ADDINDEX },
32 { "anchor", CMD_ANCHOR },
34 { "attention", CMD_ATTENTION },
35 { "author", CMD_AUTHOR },
36 { "authors", CMD_AUTHORS },
40 { "code", CMD_STARTCODE },
41 { "copydoc", CMD_COPYDOC },
42 { "copybrief", CMD_COPYBRIEF },
43 { "copydetails", CMD_COPYDETAILS },
44 { "copyright", CMD_COPYRIGHT },
46 { "dontinclude", CMD_DONTINCLUDE },
47 { "dotfile", CMD_DOTFILE },
48 { "e", CMD_EMPHASIS },
49 { "em", CMD_EMPHASIS },
50 { "endcode", CMD_ENDCODE },
51 { "endhtmlonly", CMD_ENDHTMLONLY },
52 { "endlatexonly", CMD_ENDLATEXONLY },
53 { "endlink", CMD_ENDLINK },
54 { "endsecreflist", CMD_ENDSECREFLIST },
55 { "endverbatim", CMD_ENDVERBATIM },
56 { "endxmlonly", CMD_ENDXMLONLY },
57 { "exception", CMD_EXCEPTION },
58 { "form", CMD_FORMULA },
59 { "htmlinclude", CMD_HTMLINCLUDE },
60 { "htmlonly", CMD_HTMLONLY },
61 { "image", CMD_IMAGE },
62 { "include", CMD_INCLUDE },
63 { "internal", CMD_INTERNAL },
64 { "invariant", CMD_INVARIANT },
65 { "javalink", CMD_JAVALINK },
66 { "latexinclude", CMD_LATEXINCLUDE },
67 { "latexonly", CMD_LATEXONLY },
71 { "n", CMD_LINEBREAK },
75 { "param", CMD_PARAM },
79 { "refitem", CMD_SECREFITEM },
80 { "remark", CMD_REMARK },
81 { "remarks", CMD_REMARK },
82 { "result", CMD_RETURN },
83 { "return", CMD_RETURN },
84 { "returns", CMD_RETURN },
85 { "retval", CMD_RETVAL },
86 { "rtfonly", CMD_RTFONLY },
88 { "secreflist", CMD_SECREFLIST },
89 { "section", CMD_SECTION },
90 { "snippet", CMD_SNIPPET },
91 { "subpage", CMD_SUBPAGE },
92 { "subsection", CMD_SUBSECTION },
93 { "subsubsection", CMD_SUBSUBSECTION },
94 { "paragraph", CMD_PARAGRAPH },
96 { "since", CMD_SINCE },
98 { "skipline", CMD_SKIPLINE },
99 { "xmlonly", CMD_XMLONLY },
100 { "xrefitem", CMD_XREFITEM },
101 { "throw", CMD_EXCEPTION },
102 { "until", CMD_UNTIL },
103 { "verbatim", CMD_VERBATIM },
104 { "verbinclude", CMD_VERBINCLUDE },
105 { "version", CMD_VERSION },
106 { "warning", CMD_WARNING },
107 { "throws", CMD_EXCEPTION },
108 { "tparam", CMD_TPARAM },
109 { "\\", CMD_BSLASH },
112 { ">", CMD_GREATER },
116 { "%", CMD_PERCENT },
118 { "::", CMD_DCOLON },
120 { "_internalref", CMD_INTERNALREF },
123 { "enddot", CMD_ENDDOT },
124 { "endmsc", CMD_ENDMSC },
125 { "manonly", CMD_MANONLY },
126 { "endmanonly", CMD_ENDMANONLY },
127 { "includelineno", CMD_INCWITHLINES },
128 { "inheritdoc", CMD_INHERITDOC },
129 { "mscfile", CMD_MSCFILE },
130 { "rtfonly", CMD_RTFONLY },
131 { "endrtfonly", CMD_ENDRTFONLY },
132 { "vhdlflow", CMD_VHDLFLOW },
133 { "docbookonly", CMD_DBONLY },
134 { "enddocbookonly",CMD_ENDDBONLY },
135 { "endinternal", CMD_ENDINTERNAL },
136 { "parblock", CMD_PARBLOCK },
137 { "endparblock", CMD_ENDPARBLOCK },
138 { "diafile", CMD_DIAFILE },
140 { "---", CMD_MDASH },
144 //----------------------------------------------------------------------------
146 CommandMap htmlTagMap[] =
148 { "strong", HTML_BOLD },
149 { "center", HTML_CENTER },
150 { "table", HTML_TABLE },
151 { "caption", HTML_CAPTION },
152 { "small", HTML_SMALL },
153 { "code", HTML_CODE },
154 { "dfn", HTML_CODE },
155 { "var", HTML_EMPHASIS },
166 { "tt", XML_C /*HTML_CODE*/ },
167 { "kbd", XML_C /*HTML_CODE*/ },
168 { "em", HTML_EMPHASIS },
174 { "i", HTML_EMPHASIS },
184 { "span", HTML_SPAN },
186 { "blockquote", HTML_BLOCKQUOTE },
189 // { "code", XML_CODE }, <= ambiguous <code> is also a HTML tag
190 { "description", XML_DESCRIPTION },
191 { "example", XML_EXAMPLE },
192 { "exception", XML_EXCEPTION },
193 { "include", XML_INCLUDE },
194 { "item", XML_ITEM },
195 { "list", XML_LIST }, // type="table|bullet|number"
196 { "listheader", XML_LISTHEADER },
197 { "para", XML_PARA },
198 { "param", XML_PARAM },
199 { "paramref", XML_PARAMREF },
200 { "typeparam", XML_TYPEPARAM },
201 { "typeparamref", XML_TYPEPARAMREF },
202 { "permission", XML_PERMISSION },
203 { "remarks", XML_REMARKS },
204 { "returns", XML_RETURNS },
206 { "seealso", XML_SEEALSO },
207 { "summary", XML_SUMMARY },
208 { "term", XML_TERM },
209 { "value", XML_VALUE },
210 { "inheritdoc", XML_INHERITDOC },
214 //----------------------------------------------------------------------------
216 Mapper *Mappers::cmdMapper = new Mapper(cmdMap,TRUE);
217 Mapper *Mappers::htmlTagMapper = new Mapper(htmlTagMap,FALSE);
219 int Mapper::map(const char *n)
222 if (!m_cs) name=name.lower();
224 return !name.isEmpty() && (result=m_map.find(name)) ? *result: 0;
227 Mapper::Mapper(const CommandMap *cm,bool caseSensitive) : m_map(89), m_cs(caseSensitive)
229 m_map.setAutoDelete(TRUE);
230 const CommandMap *p = cm;
233 m_map.insert(p->cmdName,new int(p->cmdId));
238 void Mappers::freeMappers()
240 delete cmdMapper; cmdMapper = 0;
241 delete htmlTagMapper; htmlTagMapper = 0;