1 | /* |
2 | * THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. |
3 | * |
4 | * This file was generated by the dom/make_names.pl script. |
5 | * |
6 | * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2013 Apple Inc. All rights reserved. |
7 | * |
8 | * Redistribution and use in source and binary forms, with or without |
9 | * modification, are permitted provided that the following conditions |
10 | * are met: |
11 | * 1. Redistributions of source code must retain the above copyright |
12 | * notice, this list of conditions and the following disclaimer. |
13 | * 2. Redistributions in binary form must reproduce the above copyright |
14 | * notice, this list of conditions and the following disclaimer in the |
15 | * documentation and/or other materials provided with the distribution. |
16 | * |
17 | * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY |
18 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
20 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR |
21 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
23 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
24 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
25 | * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
27 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
28 | */ |
29 | |
30 | #include "config.h" |
31 | |
32 | #ifdef SKIP_STATIC_CONSTRUCTORS_ON_GCC |
33 | #define DOM_MathML_NAMES_HIDE_GLOBALS 1 |
34 | #else |
35 | #define QNAME_DEFAULT_CONSTRUCTOR 1 |
36 | #endif |
37 | |
38 | #include "MathMLNames.h" |
39 | |
40 | namespace WebCore { |
41 | |
42 | namespace MathMLNames { |
43 | |
44 | using namespace WebCore; |
45 | |
46 | LazyNeverDestroyed<const AtomicString> mathmlNamespaceURI; |
47 | |
48 | #if COMPILER(MSVC) |
49 | #pragma warning(push) |
50 | #pragma warning(disable: 4307) |
51 | #endif |
52 | |
53 | static constexpr StringImpl::StaticStringImpl accentData("accent" ); |
54 | static constexpr StringImpl::StaticStringImpl accentunderData("accentunder" ); |
55 | static constexpr StringImpl::StaticStringImpl actiontypeData("actiontype" ); |
56 | static constexpr StringImpl::StaticStringImpl alttextData("alttext" ); |
57 | static constexpr StringImpl::StaticStringImpl annotationData("annotation" ); |
58 | static constexpr StringImpl::StaticStringImpl annotation_xmlData("annotation-xml" ); |
59 | static constexpr StringImpl::StaticStringImpl backgroundData("background" ); |
60 | static constexpr StringImpl::StaticStringImpl closeData("close" ); |
61 | static constexpr StringImpl::StaticStringImpl colorData("color" ); |
62 | static constexpr StringImpl::StaticStringImpl columnspanData("columnspan" ); |
63 | static constexpr StringImpl::StaticStringImpl definitionURLData("definitionURL" ); |
64 | static constexpr StringImpl::StaticStringImpl denomalignData("denomalign" ); |
65 | static constexpr StringImpl::StaticStringImpl depthData("depth" ); |
66 | static constexpr StringImpl::StaticStringImpl dirData("dir" ); |
67 | static constexpr StringImpl::StaticStringImpl displayData("display" ); |
68 | static constexpr StringImpl::StaticStringImpl displaystyleData("displaystyle" ); |
69 | static constexpr StringImpl::StaticStringImpl encodingData("encoding" ); |
70 | static constexpr StringImpl::StaticStringImpl fenceData("fence" ); |
71 | static constexpr StringImpl::StaticStringImpl fontfamilyData("fontfamily" ); |
72 | static constexpr StringImpl::StaticStringImpl fontsizeData("fontsize" ); |
73 | static constexpr StringImpl::StaticStringImpl fontstyleData("fontstyle" ); |
74 | static constexpr StringImpl::StaticStringImpl fontweightData("fontweight" ); |
75 | static constexpr StringImpl::StaticStringImpl formData("form" ); |
76 | static constexpr StringImpl::StaticStringImpl heightData("height" ); |
77 | static constexpr StringImpl::StaticStringImpl hrefData("href" ); |
78 | static constexpr StringImpl::StaticStringImpl largeopData("largeop" ); |
79 | static constexpr StringImpl::StaticStringImpl linethicknessData("linethickness" ); |
80 | static constexpr StringImpl::StaticStringImpl lspaceData("lspace" ); |
81 | static constexpr StringImpl::StaticStringImpl mactionData("maction" ); |
82 | static constexpr StringImpl::StaticStringImpl maligngroupData("maligngroup" ); |
83 | static constexpr StringImpl::StaticStringImpl malignmarkData("malignmark" ); |
84 | static constexpr StringImpl::StaticStringImpl mathData("math" ); |
85 | static constexpr StringImpl::StaticStringImpl mathbackgroundData("mathbackground" ); |
86 | static constexpr StringImpl::StaticStringImpl mathcolorData("mathcolor" ); |
87 | static constexpr StringImpl::StaticStringImpl mathsizeData("mathsize" ); |
88 | static constexpr StringImpl::StaticStringImpl mathvariantData("mathvariant" ); |
89 | static constexpr StringImpl::StaticStringImpl maxsizeData("maxsize" ); |
90 | static constexpr StringImpl::StaticStringImpl mencloseData("menclose" ); |
91 | static constexpr StringImpl::StaticStringImpl merrorData("merror" ); |
92 | static constexpr StringImpl::StaticStringImpl mfencedData("mfenced" ); |
93 | static constexpr StringImpl::StaticStringImpl mfracData("mfrac" ); |
94 | static constexpr StringImpl::StaticStringImpl mglyphData("mglyph" ); |
95 | static constexpr StringImpl::StaticStringImpl miData("mi" ); |
96 | static constexpr StringImpl::StaticStringImpl minsizeData("minsize" ); |
97 | static constexpr StringImpl::StaticStringImpl mlabeledtrData("mlabeledtr" ); |
98 | static constexpr StringImpl::StaticStringImpl mlongdivData("mlongdiv" ); |
99 | static constexpr StringImpl::StaticStringImpl mmultiscriptsData("mmultiscripts" ); |
100 | static constexpr StringImpl::StaticStringImpl mnData("mn" ); |
101 | static constexpr StringImpl::StaticStringImpl moData("mo" ); |
102 | static constexpr StringImpl::StaticStringImpl movablelimitsData("movablelimits" ); |
103 | static constexpr StringImpl::StaticStringImpl moverData("mover" ); |
104 | static constexpr StringImpl::StaticStringImpl mpaddedData("mpadded" ); |
105 | static constexpr StringImpl::StaticStringImpl mphantomData("mphantom" ); |
106 | static constexpr StringImpl::StaticStringImpl mprescriptsData("mprescripts" ); |
107 | static constexpr StringImpl::StaticStringImpl mrootData("mroot" ); |
108 | static constexpr StringImpl::StaticStringImpl mrowData("mrow" ); |
109 | static constexpr StringImpl::StaticStringImpl msData("ms" ); |
110 | static constexpr StringImpl::StaticStringImpl mscarriesData("mscarries" ); |
111 | static constexpr StringImpl::StaticStringImpl mscarryData("mscarry" ); |
112 | static constexpr StringImpl::StaticStringImpl msgroupData("msgroup" ); |
113 | static constexpr StringImpl::StaticStringImpl mslineData("msline" ); |
114 | static constexpr StringImpl::StaticStringImpl mspaceData("mspace" ); |
115 | static constexpr StringImpl::StaticStringImpl msqrtData("msqrt" ); |
116 | static constexpr StringImpl::StaticStringImpl msrowData("msrow" ); |
117 | static constexpr StringImpl::StaticStringImpl mstackData("mstack" ); |
118 | static constexpr StringImpl::StaticStringImpl mstyleData("mstyle" ); |
119 | static constexpr StringImpl::StaticStringImpl msubData("msub" ); |
120 | static constexpr StringImpl::StaticStringImpl msubsupData("msubsup" ); |
121 | static constexpr StringImpl::StaticStringImpl msupData("msup" ); |
122 | static constexpr StringImpl::StaticStringImpl mtableData("mtable" ); |
123 | static constexpr StringImpl::StaticStringImpl mtdData("mtd" ); |
124 | static constexpr StringImpl::StaticStringImpl mtextData("mtext" ); |
125 | static constexpr StringImpl::StaticStringImpl mtrData("mtr" ); |
126 | static constexpr StringImpl::StaticStringImpl munderData("munder" ); |
127 | static constexpr StringImpl::StaticStringImpl munderoverData("munderover" ); |
128 | static constexpr StringImpl::StaticStringImpl noneData("none" ); |
129 | static constexpr StringImpl::StaticStringImpl notationData("notation" ); |
130 | static constexpr StringImpl::StaticStringImpl numalignData("numalign" ); |
131 | static constexpr StringImpl::StaticStringImpl openData("open" ); |
132 | static constexpr StringImpl::StaticStringImpl rowspanData("rowspan" ); |
133 | static constexpr StringImpl::StaticStringImpl rspaceData("rspace" ); |
134 | static constexpr StringImpl::StaticStringImpl selectionData("selection" ); |
135 | static constexpr StringImpl::StaticStringImpl semanticsData("semantics" ); |
136 | static constexpr StringImpl::StaticStringImpl separatorData("separator" ); |
137 | static constexpr StringImpl::StaticStringImpl separatorsData("separators" ); |
138 | static constexpr StringImpl::StaticStringImpl srcData("src" ); |
139 | static constexpr StringImpl::StaticStringImpl stretchyData("stretchy" ); |
140 | static constexpr StringImpl::StaticStringImpl subscriptshiftData("subscriptshift" ); |
141 | static constexpr StringImpl::StaticStringImpl superscriptshiftData("superscriptshift" ); |
142 | static constexpr StringImpl::StaticStringImpl symmetricData("symmetric" ); |
143 | static constexpr StringImpl::StaticStringImpl voffsetData("voffset" ); |
144 | static constexpr StringImpl::StaticStringImpl widthData("width" ); |
145 | |
146 | #if COMPILER(MSVC) |
147 | #pragma warning(pop) |
148 | #endif |
149 | |
150 | // Tags |
151 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> annotationTag; |
152 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> annotation_xmlTag; |
153 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mactionTag; |
154 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> maligngroupTag; |
155 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> malignmarkTag; |
156 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mathTag; |
157 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mencloseTag; |
158 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> merrorTag; |
159 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mfencedTag; |
160 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mfracTag; |
161 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mglyphTag; |
162 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> miTag; |
163 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mlabeledtrTag; |
164 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mlongdivTag; |
165 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mmultiscriptsTag; |
166 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mnTag; |
167 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> moTag; |
168 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> moverTag; |
169 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mpaddedTag; |
170 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mphantomTag; |
171 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mprescriptsTag; |
172 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mrootTag; |
173 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mrowTag; |
174 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msTag; |
175 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mscarriesTag; |
176 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mscarryTag; |
177 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msgroupTag; |
178 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mslineTag; |
179 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mspaceTag; |
180 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msqrtTag; |
181 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msrowTag; |
182 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mstackTag; |
183 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mstyleTag; |
184 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msubTag; |
185 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msubsupTag; |
186 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msupTag; |
187 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mtableTag; |
188 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mtdTag; |
189 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mtextTag; |
190 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mtrTag; |
191 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> munderTag; |
192 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> munderoverTag; |
193 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> noneTag; |
194 | WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> semanticsTag; |
195 | |
196 | |
197 | const WebCore::MathMLQualifiedName* const* getMathMLTags() |
198 | { |
199 | static const WebCore::MathMLQualifiedName* const MathMLTags[] = { |
200 | &annotationTag.get(), |
201 | &annotation_xmlTag.get(), |
202 | &mactionTag.get(), |
203 | &maligngroupTag.get(), |
204 | &malignmarkTag.get(), |
205 | &mathTag.get(), |
206 | &mencloseTag.get(), |
207 | &merrorTag.get(), |
208 | &mfencedTag.get(), |
209 | &mfracTag.get(), |
210 | &mglyphTag.get(), |
211 | &miTag.get(), |
212 | &mlabeledtrTag.get(), |
213 | &mlongdivTag.get(), |
214 | &mmultiscriptsTag.get(), |
215 | &mnTag.get(), |
216 | &moTag.get(), |
217 | &moverTag.get(), |
218 | &mpaddedTag.get(), |
219 | &mphantomTag.get(), |
220 | &mprescriptsTag.get(), |
221 | &mrootTag.get(), |
222 | &mrowTag.get(), |
223 | &msTag.get(), |
224 | &mscarriesTag.get(), |
225 | &mscarryTag.get(), |
226 | &msgroupTag.get(), |
227 | &mslineTag.get(), |
228 | &mspaceTag.get(), |
229 | &msqrtTag.get(), |
230 | &msrowTag.get(), |
231 | &mstackTag.get(), |
232 | &mstyleTag.get(), |
233 | &msubTag.get(), |
234 | &msubsupTag.get(), |
235 | &msupTag.get(), |
236 | &mtableTag.get(), |
237 | &mtdTag.get(), |
238 | &mtextTag.get(), |
239 | &mtrTag.get(), |
240 | &munderTag.get(), |
241 | &munderoverTag.get(), |
242 | &noneTag.get(), |
243 | &semanticsTag.get(), |
244 | }; |
245 | return MathMLTags; |
246 | } |
247 | |
248 | // Attributes |
249 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> accentAttr; |
250 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> accentunderAttr; |
251 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> actiontypeAttr; |
252 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> alttextAttr; |
253 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> backgroundAttr; |
254 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> closeAttr; |
255 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> colorAttr; |
256 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> columnspanAttr; |
257 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> definitionURLAttr; |
258 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> denomalignAttr; |
259 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> depthAttr; |
260 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> dirAttr; |
261 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> displayAttr; |
262 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> displaystyleAttr; |
263 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> encodingAttr; |
264 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> fenceAttr; |
265 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> fontfamilyAttr; |
266 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> fontsizeAttr; |
267 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> fontstyleAttr; |
268 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> fontweightAttr; |
269 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> formAttr; |
270 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> heightAttr; |
271 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> hrefAttr; |
272 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> largeopAttr; |
273 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> linethicknessAttr; |
274 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> lspaceAttr; |
275 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> mathbackgroundAttr; |
276 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> mathcolorAttr; |
277 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> mathsizeAttr; |
278 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> mathvariantAttr; |
279 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> maxsizeAttr; |
280 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> minsizeAttr; |
281 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> movablelimitsAttr; |
282 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> notationAttr; |
283 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> numalignAttr; |
284 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> openAttr; |
285 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> rowspanAttr; |
286 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> rspaceAttr; |
287 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> selectionAttr; |
288 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> separatorAttr; |
289 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> separatorsAttr; |
290 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> srcAttr; |
291 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> stretchyAttr; |
292 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> subscriptshiftAttr; |
293 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> superscriptshiftAttr; |
294 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> symmetricAttr; |
295 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> voffsetAttr; |
296 | WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> widthAttr; |
297 | |
298 | |
299 | const WebCore::QualifiedName* const* getMathMLAttrs() |
300 | { |
301 | static const WebCore::QualifiedName* const MathMLAttrs[] = { |
302 | &accentAttr.get(), |
303 | &accentunderAttr.get(), |
304 | &actiontypeAttr.get(), |
305 | &alttextAttr.get(), |
306 | &backgroundAttr.get(), |
307 | &closeAttr.get(), |
308 | &colorAttr.get(), |
309 | &columnspanAttr.get(), |
310 | &definitionURLAttr.get(), |
311 | &denomalignAttr.get(), |
312 | &depthAttr.get(), |
313 | &dirAttr.get(), |
314 | &displayAttr.get(), |
315 | &displaystyleAttr.get(), |
316 | &encodingAttr.get(), |
317 | &fenceAttr.get(), |
318 | &fontfamilyAttr.get(), |
319 | &fontsizeAttr.get(), |
320 | &fontstyleAttr.get(), |
321 | &fontweightAttr.get(), |
322 | &formAttr.get(), |
323 | &heightAttr.get(), |
324 | &hrefAttr.get(), |
325 | &largeopAttr.get(), |
326 | &linethicknessAttr.get(), |
327 | &lspaceAttr.get(), |
328 | &mathbackgroundAttr.get(), |
329 | &mathcolorAttr.get(), |
330 | &mathsizeAttr.get(), |
331 | &mathvariantAttr.get(), |
332 | &maxsizeAttr.get(), |
333 | &minsizeAttr.get(), |
334 | &movablelimitsAttr.get(), |
335 | ¬ationAttr.get(), |
336 | &numalignAttr.get(), |
337 | &openAttr.get(), |
338 | &rowspanAttr.get(), |
339 | &rspaceAttr.get(), |
340 | &selectionAttr.get(), |
341 | &separatorAttr.get(), |
342 | &separatorsAttr.get(), |
343 | &srcAttr.get(), |
344 | &stretchyAttr.get(), |
345 | &subscriptshiftAttr.get(), |
346 | &superscriptshiftAttr.get(), |
347 | &symmetricAttr.get(), |
348 | &voffsetAttr.get(), |
349 | &widthAttr.get(), |
350 | }; |
351 | return MathMLAttrs; |
352 | } |
353 | |
354 | void init() |
355 | { |
356 | static bool initialized = false; |
357 | if (initialized) |
358 | return; |
359 | initialized = true; |
360 | |
361 | // Use placement new to initialize the globals. |
362 | |
363 | AtomicString::init(); |
364 | AtomicString mathmlNS("http://www.w3.org/1998/Math/MathML" , AtomicString::ConstructFromLiteral); |
365 | |
366 | // Namespace |
367 | mathmlNamespaceURI.construct(mathmlNS); |
368 | |
369 | #ifndef NDEBUG |
370 | reinterpret_cast<const StringImpl*>(&accentData)->assertHashIsCorrect(); |
371 | reinterpret_cast<const StringImpl*>(&accentunderData)->assertHashIsCorrect(); |
372 | reinterpret_cast<const StringImpl*>(&actiontypeData)->assertHashIsCorrect(); |
373 | reinterpret_cast<const StringImpl*>(&alttextData)->assertHashIsCorrect(); |
374 | reinterpret_cast<const StringImpl*>(&annotationData)->assertHashIsCorrect(); |
375 | reinterpret_cast<const StringImpl*>(&annotation_xmlData)->assertHashIsCorrect(); |
376 | reinterpret_cast<const StringImpl*>(&backgroundData)->assertHashIsCorrect(); |
377 | reinterpret_cast<const StringImpl*>(&closeData)->assertHashIsCorrect(); |
378 | reinterpret_cast<const StringImpl*>(&colorData)->assertHashIsCorrect(); |
379 | reinterpret_cast<const StringImpl*>(&columnspanData)->assertHashIsCorrect(); |
380 | reinterpret_cast<const StringImpl*>(&definitionURLData)->assertHashIsCorrect(); |
381 | reinterpret_cast<const StringImpl*>(&denomalignData)->assertHashIsCorrect(); |
382 | reinterpret_cast<const StringImpl*>(&depthData)->assertHashIsCorrect(); |
383 | reinterpret_cast<const StringImpl*>(&dirData)->assertHashIsCorrect(); |
384 | reinterpret_cast<const StringImpl*>(&displayData)->assertHashIsCorrect(); |
385 | reinterpret_cast<const StringImpl*>(&displaystyleData)->assertHashIsCorrect(); |
386 | reinterpret_cast<const StringImpl*>(&encodingData)->assertHashIsCorrect(); |
387 | reinterpret_cast<const StringImpl*>(&fenceData)->assertHashIsCorrect(); |
388 | reinterpret_cast<const StringImpl*>(&fontfamilyData)->assertHashIsCorrect(); |
389 | reinterpret_cast<const StringImpl*>(&fontsizeData)->assertHashIsCorrect(); |
390 | reinterpret_cast<const StringImpl*>(&fontstyleData)->assertHashIsCorrect(); |
391 | reinterpret_cast<const StringImpl*>(&fontweightData)->assertHashIsCorrect(); |
392 | reinterpret_cast<const StringImpl*>(&formData)->assertHashIsCorrect(); |
393 | reinterpret_cast<const StringImpl*>(&heightData)->assertHashIsCorrect(); |
394 | reinterpret_cast<const StringImpl*>(&hrefData)->assertHashIsCorrect(); |
395 | reinterpret_cast<const StringImpl*>(&largeopData)->assertHashIsCorrect(); |
396 | reinterpret_cast<const StringImpl*>(&linethicknessData)->assertHashIsCorrect(); |
397 | reinterpret_cast<const StringImpl*>(&lspaceData)->assertHashIsCorrect(); |
398 | reinterpret_cast<const StringImpl*>(&mactionData)->assertHashIsCorrect(); |
399 | reinterpret_cast<const StringImpl*>(&maligngroupData)->assertHashIsCorrect(); |
400 | reinterpret_cast<const StringImpl*>(&malignmarkData)->assertHashIsCorrect(); |
401 | reinterpret_cast<const StringImpl*>(&mathData)->assertHashIsCorrect(); |
402 | reinterpret_cast<const StringImpl*>(&mathbackgroundData)->assertHashIsCorrect(); |
403 | reinterpret_cast<const StringImpl*>(&mathcolorData)->assertHashIsCorrect(); |
404 | reinterpret_cast<const StringImpl*>(&mathsizeData)->assertHashIsCorrect(); |
405 | reinterpret_cast<const StringImpl*>(&mathvariantData)->assertHashIsCorrect(); |
406 | reinterpret_cast<const StringImpl*>(&maxsizeData)->assertHashIsCorrect(); |
407 | reinterpret_cast<const StringImpl*>(&mencloseData)->assertHashIsCorrect(); |
408 | reinterpret_cast<const StringImpl*>(&merrorData)->assertHashIsCorrect(); |
409 | reinterpret_cast<const StringImpl*>(&mfencedData)->assertHashIsCorrect(); |
410 | reinterpret_cast<const StringImpl*>(&mfracData)->assertHashIsCorrect(); |
411 | reinterpret_cast<const StringImpl*>(&mglyphData)->assertHashIsCorrect(); |
412 | reinterpret_cast<const StringImpl*>(&miData)->assertHashIsCorrect(); |
413 | reinterpret_cast<const StringImpl*>(&minsizeData)->assertHashIsCorrect(); |
414 | reinterpret_cast<const StringImpl*>(&mlabeledtrData)->assertHashIsCorrect(); |
415 | reinterpret_cast<const StringImpl*>(&mlongdivData)->assertHashIsCorrect(); |
416 | reinterpret_cast<const StringImpl*>(&mmultiscriptsData)->assertHashIsCorrect(); |
417 | reinterpret_cast<const StringImpl*>(&mnData)->assertHashIsCorrect(); |
418 | reinterpret_cast<const StringImpl*>(&moData)->assertHashIsCorrect(); |
419 | reinterpret_cast<const StringImpl*>(&movablelimitsData)->assertHashIsCorrect(); |
420 | reinterpret_cast<const StringImpl*>(&moverData)->assertHashIsCorrect(); |
421 | reinterpret_cast<const StringImpl*>(&mpaddedData)->assertHashIsCorrect(); |
422 | reinterpret_cast<const StringImpl*>(&mphantomData)->assertHashIsCorrect(); |
423 | reinterpret_cast<const StringImpl*>(&mprescriptsData)->assertHashIsCorrect(); |
424 | reinterpret_cast<const StringImpl*>(&mrootData)->assertHashIsCorrect(); |
425 | reinterpret_cast<const StringImpl*>(&mrowData)->assertHashIsCorrect(); |
426 | reinterpret_cast<const StringImpl*>(&msData)->assertHashIsCorrect(); |
427 | reinterpret_cast<const StringImpl*>(&mscarriesData)->assertHashIsCorrect(); |
428 | reinterpret_cast<const StringImpl*>(&mscarryData)->assertHashIsCorrect(); |
429 | reinterpret_cast<const StringImpl*>(&msgroupData)->assertHashIsCorrect(); |
430 | reinterpret_cast<const StringImpl*>(&mslineData)->assertHashIsCorrect(); |
431 | reinterpret_cast<const StringImpl*>(&mspaceData)->assertHashIsCorrect(); |
432 | reinterpret_cast<const StringImpl*>(&msqrtData)->assertHashIsCorrect(); |
433 | reinterpret_cast<const StringImpl*>(&msrowData)->assertHashIsCorrect(); |
434 | reinterpret_cast<const StringImpl*>(&mstackData)->assertHashIsCorrect(); |
435 | reinterpret_cast<const StringImpl*>(&mstyleData)->assertHashIsCorrect(); |
436 | reinterpret_cast<const StringImpl*>(&msubData)->assertHashIsCorrect(); |
437 | reinterpret_cast<const StringImpl*>(&msubsupData)->assertHashIsCorrect(); |
438 | reinterpret_cast<const StringImpl*>(&msupData)->assertHashIsCorrect(); |
439 | reinterpret_cast<const StringImpl*>(&mtableData)->assertHashIsCorrect(); |
440 | reinterpret_cast<const StringImpl*>(&mtdData)->assertHashIsCorrect(); |
441 | reinterpret_cast<const StringImpl*>(&mtextData)->assertHashIsCorrect(); |
442 | reinterpret_cast<const StringImpl*>(&mtrData)->assertHashIsCorrect(); |
443 | reinterpret_cast<const StringImpl*>(&munderData)->assertHashIsCorrect(); |
444 | reinterpret_cast<const StringImpl*>(&munderoverData)->assertHashIsCorrect(); |
445 | reinterpret_cast<const StringImpl*>(&noneData)->assertHashIsCorrect(); |
446 | reinterpret_cast<const StringImpl*>(¬ationData)->assertHashIsCorrect(); |
447 | reinterpret_cast<const StringImpl*>(&numalignData)->assertHashIsCorrect(); |
448 | reinterpret_cast<const StringImpl*>(&openData)->assertHashIsCorrect(); |
449 | reinterpret_cast<const StringImpl*>(&rowspanData)->assertHashIsCorrect(); |
450 | reinterpret_cast<const StringImpl*>(&rspaceData)->assertHashIsCorrect(); |
451 | reinterpret_cast<const StringImpl*>(&selectionData)->assertHashIsCorrect(); |
452 | reinterpret_cast<const StringImpl*>(&semanticsData)->assertHashIsCorrect(); |
453 | reinterpret_cast<const StringImpl*>(&separatorData)->assertHashIsCorrect(); |
454 | reinterpret_cast<const StringImpl*>(&separatorsData)->assertHashIsCorrect(); |
455 | reinterpret_cast<const StringImpl*>(&srcData)->assertHashIsCorrect(); |
456 | reinterpret_cast<const StringImpl*>(&stretchyData)->assertHashIsCorrect(); |
457 | reinterpret_cast<const StringImpl*>(&subscriptshiftData)->assertHashIsCorrect(); |
458 | reinterpret_cast<const StringImpl*>(&superscriptshiftData)->assertHashIsCorrect(); |
459 | reinterpret_cast<const StringImpl*>(&symmetricData)->assertHashIsCorrect(); |
460 | reinterpret_cast<const StringImpl*>(&voffsetData)->assertHashIsCorrect(); |
461 | reinterpret_cast<const StringImpl*>(&widthData)->assertHashIsCorrect(); |
462 | #endif // NDEBUG |
463 | |
464 | |
465 | struct TagsTableEntry { |
466 | LazyNeverDestroyed<const QualifiedName>* targetAddress; |
467 | const StaticStringImpl& name; |
468 | }; |
469 | |
470 | static const TagsTableEntry tagsTable[] = { |
471 | { (LazyNeverDestroyed<const QualifiedName>*)&annotationTag, *(&annotationData) }, |
472 | { (LazyNeverDestroyed<const QualifiedName>*)&annotation_xmlTag, *(&annotation_xmlData) }, |
473 | { (LazyNeverDestroyed<const QualifiedName>*)&mactionTag, *(&mactionData) }, |
474 | { (LazyNeverDestroyed<const QualifiedName>*)&maligngroupTag, *(&maligngroupData) }, |
475 | { (LazyNeverDestroyed<const QualifiedName>*)&malignmarkTag, *(&malignmarkData) }, |
476 | { (LazyNeverDestroyed<const QualifiedName>*)&mathTag, *(&mathData) }, |
477 | { (LazyNeverDestroyed<const QualifiedName>*)&mencloseTag, *(&mencloseData) }, |
478 | { (LazyNeverDestroyed<const QualifiedName>*)&merrorTag, *(&merrorData) }, |
479 | { (LazyNeverDestroyed<const QualifiedName>*)&mfencedTag, *(&mfencedData) }, |
480 | { (LazyNeverDestroyed<const QualifiedName>*)&mfracTag, *(&mfracData) }, |
481 | { (LazyNeverDestroyed<const QualifiedName>*)&mglyphTag, *(&mglyphData) }, |
482 | { (LazyNeverDestroyed<const QualifiedName>*)&miTag, *(&miData) }, |
483 | { (LazyNeverDestroyed<const QualifiedName>*)&mlabeledtrTag, *(&mlabeledtrData) }, |
484 | { (LazyNeverDestroyed<const QualifiedName>*)&mlongdivTag, *(&mlongdivData) }, |
485 | { (LazyNeverDestroyed<const QualifiedName>*)&mmultiscriptsTag, *(&mmultiscriptsData) }, |
486 | { (LazyNeverDestroyed<const QualifiedName>*)&mnTag, *(&mnData) }, |
487 | { (LazyNeverDestroyed<const QualifiedName>*)&moTag, *(&moData) }, |
488 | { (LazyNeverDestroyed<const QualifiedName>*)&moverTag, *(&moverData) }, |
489 | { (LazyNeverDestroyed<const QualifiedName>*)&mpaddedTag, *(&mpaddedData) }, |
490 | { (LazyNeverDestroyed<const QualifiedName>*)&mphantomTag, *(&mphantomData) }, |
491 | { (LazyNeverDestroyed<const QualifiedName>*)&mprescriptsTag, *(&mprescriptsData) }, |
492 | { (LazyNeverDestroyed<const QualifiedName>*)&mrootTag, *(&mrootData) }, |
493 | { (LazyNeverDestroyed<const QualifiedName>*)&mrowTag, *(&mrowData) }, |
494 | { (LazyNeverDestroyed<const QualifiedName>*)&msTag, *(&msData) }, |
495 | { (LazyNeverDestroyed<const QualifiedName>*)&mscarriesTag, *(&mscarriesData) }, |
496 | { (LazyNeverDestroyed<const QualifiedName>*)&mscarryTag, *(&mscarryData) }, |
497 | { (LazyNeverDestroyed<const QualifiedName>*)&msgroupTag, *(&msgroupData) }, |
498 | { (LazyNeverDestroyed<const QualifiedName>*)&mslineTag, *(&mslineData) }, |
499 | { (LazyNeverDestroyed<const QualifiedName>*)&mspaceTag, *(&mspaceData) }, |
500 | { (LazyNeverDestroyed<const QualifiedName>*)&msqrtTag, *(&msqrtData) }, |
501 | { (LazyNeverDestroyed<const QualifiedName>*)&msrowTag, *(&msrowData) }, |
502 | { (LazyNeverDestroyed<const QualifiedName>*)&mstackTag, *(&mstackData) }, |
503 | { (LazyNeverDestroyed<const QualifiedName>*)&mstyleTag, *(&mstyleData) }, |
504 | { (LazyNeverDestroyed<const QualifiedName>*)&msubTag, *(&msubData) }, |
505 | { (LazyNeverDestroyed<const QualifiedName>*)&msubsupTag, *(&msubsupData) }, |
506 | { (LazyNeverDestroyed<const QualifiedName>*)&msupTag, *(&msupData) }, |
507 | { (LazyNeverDestroyed<const QualifiedName>*)&mtableTag, *(&mtableData) }, |
508 | { (LazyNeverDestroyed<const QualifiedName>*)&mtdTag, *(&mtdData) }, |
509 | { (LazyNeverDestroyed<const QualifiedName>*)&mtextTag, *(&mtextData) }, |
510 | { (LazyNeverDestroyed<const QualifiedName>*)&mtrTag, *(&mtrData) }, |
511 | { (LazyNeverDestroyed<const QualifiedName>*)&munderTag, *(&munderData) }, |
512 | { (LazyNeverDestroyed<const QualifiedName>*)&munderoverTag, *(&munderoverData) }, |
513 | { (LazyNeverDestroyed<const QualifiedName>*)&noneTag, *(&noneData) }, |
514 | { (LazyNeverDestroyed<const QualifiedName>*)&semanticsTag, *(&semanticsData) }, |
515 | }; |
516 | |
517 | for (auto& entry : tagsTable) |
518 | entry.targetAddress->construct(nullAtom(), AtomicString(&entry.name), mathmlNS); |
519 | |
520 | struct AttributesTableEntry { |
521 | LazyNeverDestroyed<const QualifiedName>* targetAddress; |
522 | const StaticStringImpl& name; |
523 | }; |
524 | |
525 | static const AttributesTableEntry attributesTable[] = { |
526 | { &accentAttr, *(&accentData) }, |
527 | { &accentunderAttr, *(&accentunderData) }, |
528 | { &actiontypeAttr, *(&actiontypeData) }, |
529 | { &alttextAttr, *(&alttextData) }, |
530 | { &backgroundAttr, *(&backgroundData) }, |
531 | { &closeAttr, *(&closeData) }, |
532 | { &colorAttr, *(&colorData) }, |
533 | { &columnspanAttr, *(&columnspanData) }, |
534 | { &definitionURLAttr, *(&definitionURLData) }, |
535 | { &denomalignAttr, *(&denomalignData) }, |
536 | { &depthAttr, *(&depthData) }, |
537 | { &dirAttr, *(&dirData) }, |
538 | { &displayAttr, *(&displayData) }, |
539 | { &displaystyleAttr, *(&displaystyleData) }, |
540 | { &encodingAttr, *(&encodingData) }, |
541 | { &fenceAttr, *(&fenceData) }, |
542 | { &fontfamilyAttr, *(&fontfamilyData) }, |
543 | { &fontsizeAttr, *(&fontsizeData) }, |
544 | { &fontstyleAttr, *(&fontstyleData) }, |
545 | { &fontweightAttr, *(&fontweightData) }, |
546 | { &formAttr, *(&formData) }, |
547 | { &heightAttr, *(&heightData) }, |
548 | { &hrefAttr, *(&hrefData) }, |
549 | { &largeopAttr, *(&largeopData) }, |
550 | { &linethicknessAttr, *(&linethicknessData) }, |
551 | { &lspaceAttr, *(&lspaceData) }, |
552 | { &mathbackgroundAttr, *(&mathbackgroundData) }, |
553 | { &mathcolorAttr, *(&mathcolorData) }, |
554 | { &mathsizeAttr, *(&mathsizeData) }, |
555 | { &mathvariantAttr, *(&mathvariantData) }, |
556 | { &maxsizeAttr, *(&maxsizeData) }, |
557 | { &minsizeAttr, *(&minsizeData) }, |
558 | { &movablelimitsAttr, *(&movablelimitsData) }, |
559 | { ¬ationAttr, *(¬ationData) }, |
560 | { &numalignAttr, *(&numalignData) }, |
561 | { &openAttr, *(&openData) }, |
562 | { &rowspanAttr, *(&rowspanData) }, |
563 | { &rspaceAttr, *(&rspaceData) }, |
564 | { &selectionAttr, *(&selectionData) }, |
565 | { &separatorAttr, *(&separatorData) }, |
566 | { &separatorsAttr, *(&separatorsData) }, |
567 | { &srcAttr, *(&srcData) }, |
568 | { &stretchyAttr, *(&stretchyData) }, |
569 | { &subscriptshiftAttr, *(&subscriptshiftData) }, |
570 | { &superscriptshiftAttr, *(&superscriptshiftData) }, |
571 | { &symmetricAttr, *(&symmetricData) }, |
572 | { &voffsetAttr, *(&voffsetData) }, |
573 | { &widthAttr, *(&widthData) }, |
574 | }; |
575 | |
576 | for (auto& entry : attributesTable) |
577 | entry.targetAddress->construct(nullAtom(), AtomicString(&entry.name), nullAtom()); |
578 | } |
579 | |
580 | } } |
581 | |
582 | |