| 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 | |