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
40namespace WebCore {
41
42namespace MathMLNames {
43
44using namespace WebCore;
45
46LazyNeverDestroyed<const AtomicString> mathmlNamespaceURI;
47
48#if COMPILER(MSVC)
49#pragma warning(push)
50#pragma warning(disable: 4307)
51#endif
52
53static constexpr StringImpl::StaticStringImpl accentData("accent");
54static constexpr StringImpl::StaticStringImpl accentunderData("accentunder");
55static constexpr StringImpl::StaticStringImpl actiontypeData("actiontype");
56static constexpr StringImpl::StaticStringImpl alttextData("alttext");
57static constexpr StringImpl::StaticStringImpl annotationData("annotation");
58static constexpr StringImpl::StaticStringImpl annotation_xmlData("annotation-xml");
59static constexpr StringImpl::StaticStringImpl backgroundData("background");
60static constexpr StringImpl::StaticStringImpl closeData("close");
61static constexpr StringImpl::StaticStringImpl colorData("color");
62static constexpr StringImpl::StaticStringImpl columnspanData("columnspan");
63static constexpr StringImpl::StaticStringImpl definitionURLData("definitionURL");
64static constexpr StringImpl::StaticStringImpl denomalignData("denomalign");
65static constexpr StringImpl::StaticStringImpl depthData("depth");
66static constexpr StringImpl::StaticStringImpl dirData("dir");
67static constexpr StringImpl::StaticStringImpl displayData("display");
68static constexpr StringImpl::StaticStringImpl displaystyleData("displaystyle");
69static constexpr StringImpl::StaticStringImpl encodingData("encoding");
70static constexpr StringImpl::StaticStringImpl fenceData("fence");
71static constexpr StringImpl::StaticStringImpl fontfamilyData("fontfamily");
72static constexpr StringImpl::StaticStringImpl fontsizeData("fontsize");
73static constexpr StringImpl::StaticStringImpl fontstyleData("fontstyle");
74static constexpr StringImpl::StaticStringImpl fontweightData("fontweight");
75static constexpr StringImpl::StaticStringImpl formData("form");
76static constexpr StringImpl::StaticStringImpl heightData("height");
77static constexpr StringImpl::StaticStringImpl hrefData("href");
78static constexpr StringImpl::StaticStringImpl largeopData("largeop");
79static constexpr StringImpl::StaticStringImpl linethicknessData("linethickness");
80static constexpr StringImpl::StaticStringImpl lspaceData("lspace");
81static constexpr StringImpl::StaticStringImpl mactionData("maction");
82static constexpr StringImpl::StaticStringImpl maligngroupData("maligngroup");
83static constexpr StringImpl::StaticStringImpl malignmarkData("malignmark");
84static constexpr StringImpl::StaticStringImpl mathData("math");
85static constexpr StringImpl::StaticStringImpl mathbackgroundData("mathbackground");
86static constexpr StringImpl::StaticStringImpl mathcolorData("mathcolor");
87static constexpr StringImpl::StaticStringImpl mathsizeData("mathsize");
88static constexpr StringImpl::StaticStringImpl mathvariantData("mathvariant");
89static constexpr StringImpl::StaticStringImpl maxsizeData("maxsize");
90static constexpr StringImpl::StaticStringImpl mencloseData("menclose");
91static constexpr StringImpl::StaticStringImpl merrorData("merror");
92static constexpr StringImpl::StaticStringImpl mfencedData("mfenced");
93static constexpr StringImpl::StaticStringImpl mfracData("mfrac");
94static constexpr StringImpl::StaticStringImpl mglyphData("mglyph");
95static constexpr StringImpl::StaticStringImpl miData("mi");
96static constexpr StringImpl::StaticStringImpl minsizeData("minsize");
97static constexpr StringImpl::StaticStringImpl mlabeledtrData("mlabeledtr");
98static constexpr StringImpl::StaticStringImpl mlongdivData("mlongdiv");
99static constexpr StringImpl::StaticStringImpl mmultiscriptsData("mmultiscripts");
100static constexpr StringImpl::StaticStringImpl mnData("mn");
101static constexpr StringImpl::StaticStringImpl moData("mo");
102static constexpr StringImpl::StaticStringImpl movablelimitsData("movablelimits");
103static constexpr StringImpl::StaticStringImpl moverData("mover");
104static constexpr StringImpl::StaticStringImpl mpaddedData("mpadded");
105static constexpr StringImpl::StaticStringImpl mphantomData("mphantom");
106static constexpr StringImpl::StaticStringImpl mprescriptsData("mprescripts");
107static constexpr StringImpl::StaticStringImpl mrootData("mroot");
108static constexpr StringImpl::StaticStringImpl mrowData("mrow");
109static constexpr StringImpl::StaticStringImpl msData("ms");
110static constexpr StringImpl::StaticStringImpl mscarriesData("mscarries");
111static constexpr StringImpl::StaticStringImpl mscarryData("mscarry");
112static constexpr StringImpl::StaticStringImpl msgroupData("msgroup");
113static constexpr StringImpl::StaticStringImpl mslineData("msline");
114static constexpr StringImpl::StaticStringImpl mspaceData("mspace");
115static constexpr StringImpl::StaticStringImpl msqrtData("msqrt");
116static constexpr StringImpl::StaticStringImpl msrowData("msrow");
117static constexpr StringImpl::StaticStringImpl mstackData("mstack");
118static constexpr StringImpl::StaticStringImpl mstyleData("mstyle");
119static constexpr StringImpl::StaticStringImpl msubData("msub");
120static constexpr StringImpl::StaticStringImpl msubsupData("msubsup");
121static constexpr StringImpl::StaticStringImpl msupData("msup");
122static constexpr StringImpl::StaticStringImpl mtableData("mtable");
123static constexpr StringImpl::StaticStringImpl mtdData("mtd");
124static constexpr StringImpl::StaticStringImpl mtextData("mtext");
125static constexpr StringImpl::StaticStringImpl mtrData("mtr");
126static constexpr StringImpl::StaticStringImpl munderData("munder");
127static constexpr StringImpl::StaticStringImpl munderoverData("munderover");
128static constexpr StringImpl::StaticStringImpl noneData("none");
129static constexpr StringImpl::StaticStringImpl notationData("notation");
130static constexpr StringImpl::StaticStringImpl numalignData("numalign");
131static constexpr StringImpl::StaticStringImpl openData("open");
132static constexpr StringImpl::StaticStringImpl rowspanData("rowspan");
133static constexpr StringImpl::StaticStringImpl rspaceData("rspace");
134static constexpr StringImpl::StaticStringImpl selectionData("selection");
135static constexpr StringImpl::StaticStringImpl semanticsData("semantics");
136static constexpr StringImpl::StaticStringImpl separatorData("separator");
137static constexpr StringImpl::StaticStringImpl separatorsData("separators");
138static constexpr StringImpl::StaticStringImpl srcData("src");
139static constexpr StringImpl::StaticStringImpl stretchyData("stretchy");
140static constexpr StringImpl::StaticStringImpl subscriptshiftData("subscriptshift");
141static constexpr StringImpl::StaticStringImpl superscriptshiftData("superscriptshift");
142static constexpr StringImpl::StaticStringImpl symmetricData("symmetric");
143static constexpr StringImpl::StaticStringImpl voffsetData("voffset");
144static constexpr StringImpl::StaticStringImpl widthData("width");
145
146#if COMPILER(MSVC)
147#pragma warning(pop)
148#endif
149
150// Tags
151WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> annotationTag;
152WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> annotation_xmlTag;
153WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mactionTag;
154WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> maligngroupTag;
155WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> malignmarkTag;
156WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mathTag;
157WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mencloseTag;
158WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> merrorTag;
159WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mfencedTag;
160WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mfracTag;
161WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mglyphTag;
162WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> miTag;
163WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mlabeledtrTag;
164WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mlongdivTag;
165WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mmultiscriptsTag;
166WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mnTag;
167WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> moTag;
168WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> moverTag;
169WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mpaddedTag;
170WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mphantomTag;
171WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mprescriptsTag;
172WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mrootTag;
173WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mrowTag;
174WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msTag;
175WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mscarriesTag;
176WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mscarryTag;
177WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msgroupTag;
178WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mslineTag;
179WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mspaceTag;
180WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msqrtTag;
181WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msrowTag;
182WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mstackTag;
183WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mstyleTag;
184WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msubTag;
185WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msubsupTag;
186WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> msupTag;
187WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mtableTag;
188WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mtdTag;
189WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mtextTag;
190WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> mtrTag;
191WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> munderTag;
192WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> munderoverTag;
193WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> noneTag;
194WEBCORE_EXPORT LazyNeverDestroyed<const MathMLQualifiedName> semanticsTag;
195
196
197const 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
249WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> accentAttr;
250WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> accentunderAttr;
251WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> actiontypeAttr;
252WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> alttextAttr;
253WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> backgroundAttr;
254WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> closeAttr;
255WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> colorAttr;
256WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> columnspanAttr;
257WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> definitionURLAttr;
258WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> denomalignAttr;
259WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> depthAttr;
260WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> dirAttr;
261WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> displayAttr;
262WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> displaystyleAttr;
263WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> encodingAttr;
264WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> fenceAttr;
265WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> fontfamilyAttr;
266WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> fontsizeAttr;
267WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> fontstyleAttr;
268WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> fontweightAttr;
269WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> formAttr;
270WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> heightAttr;
271WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> hrefAttr;
272WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> largeopAttr;
273WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> linethicknessAttr;
274WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> lspaceAttr;
275WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> mathbackgroundAttr;
276WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> mathcolorAttr;
277WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> mathsizeAttr;
278WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> mathvariantAttr;
279WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> maxsizeAttr;
280WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> minsizeAttr;
281WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> movablelimitsAttr;
282WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> notationAttr;
283WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> numalignAttr;
284WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> openAttr;
285WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> rowspanAttr;
286WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> rspaceAttr;
287WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> selectionAttr;
288WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> separatorAttr;
289WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> separatorsAttr;
290WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> srcAttr;
291WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> stretchyAttr;
292WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> subscriptshiftAttr;
293WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> superscriptshiftAttr;
294WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> symmetricAttr;
295WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> voffsetAttr;
296WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> widthAttr;
297
298
299const 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 &notationAttr.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
354void 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*>(&notationData)->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 { &notationAttr, *(&notationData) },
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