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 { "startuml", CMD_STARTUML },
124 { "enddot", CMD_ENDDOT },
125 { "endmsc", CMD_ENDMSC },
126 { "enduml", CMD_ENDUML },
127 { "manonly", CMD_MANONLY },
128 { "endmanonly", CMD_ENDMANONLY },
129 { "includelineno", CMD_INCWITHLINES },
130 { "inheritdoc", CMD_INHERITDOC },
131 { "mscfile", CMD_MSCFILE },
132 { "rtfonly", CMD_RTFONLY },
133 { "endrtfonly", CMD_ENDRTFONLY },
134 { "vhdlflow", CMD_VHDLFLOW },
135 { "docbookonly", CMD_DBONLY },
136 { "enddocbookonly",CMD_ENDDBONLY },
137 { "endinternal", CMD_ENDINTERNAL },
138 { "parblock", CMD_PARBLOCK },
139 { "endparblock", CMD_ENDPARBLOCK },
140 { "diafile", CMD_DIAFILE },
142 { "---", CMD_MDASH },
146 //----------------------------------------------------------------------------
148 CommandMap htmlTagMap[] =
150 { "strong", HTML_BOLD },
151 { "center", HTML_CENTER },
152 { "table", HTML_TABLE },
153 { "caption", HTML_CAPTION },
154 { "small", HTML_SMALL },
155 { "code", HTML_CODE },
156 { "dfn", HTML_CODE },
157 { "var", HTML_EMPHASIS },
168 { "tt", XML_C /*HTML_CODE*/ },
169 { "kbd", XML_C /*HTML_CODE*/ },
170 { "em", HTML_EMPHASIS },
176 { "i", HTML_EMPHASIS },
186 { "span", HTML_SPAN },
188 { "blockquote", HTML_BLOCKQUOTE },
191 // { "code", XML_CODE }, <= ambiguous <code> is also a HTML tag
192 { "description", XML_DESCRIPTION },
193 { "example", XML_EXAMPLE },
194 { "exception", XML_EXCEPTION },
195 { "include", XML_INCLUDE },
196 { "item", XML_ITEM },
197 { "list", XML_LIST }, // type="table|bullet|number"
198 { "listheader", XML_LISTHEADER },
199 { "para", XML_PARA },
200 { "param", XML_PARAM },
201 { "paramref", XML_PARAMREF },
202 { "typeparam", XML_TYPEPARAM },
203 { "typeparamref", XML_TYPEPARAMREF },
204 { "permission", XML_PERMISSION },
205 { "remarks", XML_REMARKS },
206 { "returns", XML_RETURNS },
208 { "seealso", XML_SEEALSO },
209 { "summary", XML_SUMMARY },
210 { "term", XML_TERM },
211 { "value", XML_VALUE },
212 { "inheritdoc", XML_INHERITDOC },
216 //----------------------------------------------------------------------------
218 Mapper *Mappers::cmdMapper = new Mapper(cmdMap,TRUE);
219 Mapper *Mappers::htmlTagMapper = new Mapper(htmlTagMap,FALSE);
221 int Mapper::map(const char *n)
224 if (!m_cs) name=name.lower();
226 return !name.isEmpty() && (result=m_map.find(name)) ? *result: 0;
229 Mapper::Mapper(const CommandMap *cm,bool caseSensitive) : m_map(89), m_cs(caseSensitive)
231 m_map.setAutoDelete(TRUE);
232 const CommandMap *p = cm;
235 m_map.insert(p->cmdName,new int(p->cmdId));
240 void Mappers::freeMappers()
242 delete cmdMapper; cmdMapper = 0;
243 delete htmlTagMapper; htmlTagMapper = 0;