Bug 1845715 - Check for failure when getting RegExp match result template r=iain
[gecko.git] / parser / html / javasrc / ElementName.java
blob9ee2ad01520d04f222fee3a4593197594a43e841
1 /*
2 * Copyright (c) 2008-2017 Mozilla Foundation
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 * DEALINGS IN THE SOFTWARE.
23 package nu.validator.htmlparser.impl;
25 // uncomment to regenerate self
26 //import java.io.BufferedReader;
27 //import java.io.File;
28 //import java.io.FileInputStream;
29 //import java.io.IOException;
30 //import java.io.InputStreamReader;
31 //import java.util.Arrays;
32 //import java.util.Collections;
33 //import java.util.HashMap;
34 //import java.util.LinkedList;
35 //import java.util.List;
36 //import java.util.Map;
37 //import java.util.Map.Entry;
38 //import java.util.regex.Matcher;
39 //import java.util.regex.Pattern;
41 import nu.validator.htmlparser.annotation.Inline;
42 import nu.validator.htmlparser.annotation.Local;
43 import nu.validator.htmlparser.annotation.NoLength;
44 import nu.validator.htmlparser.annotation.Unsigned;
45 import nu.validator.htmlparser.common.Interner;
47 public final class ElementName
48 // uncomment when regenerating self
49 // implements Comparable<ElementName>
52 /**
53 * The mask for extracting the dispatch group.
55 public static final int GROUP_MASK = 127;
57 /**
58 * Indicates that the element is not a pre-interned element. Forbidden on
59 * preinterned elements.
61 public static final int NOT_INTERNED = (1 << 30);
63 /**
64 * Indicates that the element is in the "special" category. This bit should
65 * not be pre-set on MathML or SVG specials--only on HTML specials.
67 public static final int SPECIAL = (1 << 29);
69 /**
70 * The element is foster-parenting. This bit should be pre-set on elements
71 * that are foster-parenting as HTML.
73 public static final int FOSTER_PARENTING = (1 << 28);
75 /**
76 * The element is scoping. This bit should be pre-set on elements that are
77 * scoping as HTML.
79 public static final int SCOPING = (1 << 27);
81 /**
82 * The element is scoping as SVG.
84 public static final int SCOPING_AS_SVG = (1 << 26);
86 /**
87 * The element is scoping as MathML.
89 public static final int SCOPING_AS_MATHML = (1 << 25);
91 /**
92 * The element is an HTML integration point.
94 public static final int HTML_INTEGRATION_POINT = (1 << 24);
96 /**
97 * The element has an optional end tag.
99 public static final int OPTIONAL_END_TAG = (1 << 23);
101 private @Local String name;
103 private @Local String camelCaseName;
105 // CPPONLY: private @HtmlCreator Object htmlCreator;
107 // CPPONLY: private @SvgCreator Object svgCreator;
110 * The lowest 7 bits are the dispatch group. The high bits are flags.
112 public final int flags;
114 @Inline public @Local String getName() {
115 return name;
118 @Inline public @Local String getCamelCaseName() {
119 return camelCaseName;
122 // CPPONLY: @Inline public @HtmlCreator Object getHtmlCreator() {
123 // CPPONLY: return htmlCreator;
124 // CPPONLY: }
126 // CPPONLY: @Inline public @SvgCreator Object getSvgCreator() {
127 // CPPONLY: return svgCreator;
128 // CPPONLY: }
130 @Inline public int getFlags() {
131 return flags;
134 @Inline public int getGroup() {
135 return flags & ElementName.GROUP_MASK;
138 @Inline public boolean isInterned() {
139 return (flags & ElementName.NOT_INTERNED) == 0;
142 @Inline static int levelOrderBinarySearch(int[] data, int key) {
143 int n = data.length;
144 int i = 0;
146 while (i < n) {
147 int val = data[i];
148 if (val < key) {
149 i = 2 * i + 2;
150 } else if (val > key) {
151 i = 2 * i + 1;
152 } else {
153 return i;
157 return -1;
160 @Inline static ElementName elementNameByBuffer(@NoLength char[] buf,
161 int length, Interner interner) {
162 @Unsigned int hash = ElementName.bufToHash(buf, length);
163 int[] hashes;
164 hashes = ElementName.ELEMENT_HASHES;
165 int index = levelOrderBinarySearch(hashes, hash);
166 if (index < 0) {
167 return null;
168 } else {
169 ElementName elementName = ElementName.ELEMENT_NAMES[index];
170 @Local String name = elementName.name;
171 if (!Portability.localEqualsBuffer(name, buf, length)) {
172 return null;
174 return elementName;
179 * This method has to return a unique positive integer for each well-known
180 * lower-cased element name.
182 * @param buf
183 * @param len
184 * @return
186 @Inline private static @Unsigned int bufToHash(@NoLength char[] buf,
187 int length) {
188 @Unsigned int len = length;
189 @Unsigned int first = buf[0];
190 first <<= 19;
191 @Unsigned int second = 1 << 23;
192 @Unsigned int third = 0;
193 @Unsigned int fourth = 0;
194 @Unsigned int fifth = 0;
195 if (length >= 4) {
196 second = buf[length - 4];
197 second <<= 4;
198 third = buf[length - 3];
199 third <<= 9;
200 fourth = buf[length - 2];
201 fourth <<= 14;
202 fifth = buf[length - 1];
203 fifth <<= 24;
204 } else if (length == 3) {
205 second = buf[1];
206 second <<= 4;
207 third = buf[2];
208 third <<= 9;
209 } else if (length == 2) {
210 second = buf[1];
211 second <<= 24;
213 return len + first + second + third + fourth + fifth;
216 private ElementName(@Local String name, @Local String camelCaseName,
217 // CPPONLY: @HtmlCreator Object htmlCreator, @SvgCreator Object
218 // CPPONLY: svgCreator,
219 int flags) {
220 this.name = name;
221 this.camelCaseName = camelCaseName;
222 // CPPONLY: this.htmlCreator = htmlCreator;
223 // CPPONLY: this.svgCreator = svgCreator;
224 this.flags = flags;
227 public ElementName() {
228 this.name = null;
229 this.camelCaseName = null;
230 // CPPONLY: this.htmlCreator = NS_NewHTMLUnknownElement;
231 // CPPONLY: this.svgCreator = NS_NewSVGUnknownElement;
232 this.flags = TreeBuilder.OTHER | NOT_INTERNED;
235 public void destructor() {
236 // The translator adds refcount debug code here.
239 @Inline public void setNameForNonInterned(@Local String name
240 // CPPONLY: , boolean custom
242 // No need to worry about refcounting the local name, because in the
243 // C++ case the scoped atom table remembers its own atoms.
244 this.name = name;
245 this.camelCaseName = name;
246 // CPPONLY: if (custom) {
247 // CPPONLY: this.htmlCreator = NS_NewCustomElement;
248 // CPPONLY: } else {
249 // CPPONLY: this.htmlCreator = NS_NewHTMLUnknownElement;
250 // CPPONLY: }
251 // The assertion below relies on TreeBuilder.OTHER being zero!
252 // TreeBuilder.OTHER isn't referenced here, because it would create
253 // a circular C++ header dependency given that this method is inlined.
254 assert this.flags == ElementName.NOT_INTERNED;
257 // CPPONLY: @Inline public boolean isCustom() {
258 // CPPONLY: return this.htmlCreator == NS_NewCustomElement;
259 // CPPONLY: }
261 public static final ElementName ANNOTATION_XML = new ElementName(
262 "annotation-xml", "annotation-xml",
263 // CPPONLY: NS_NewHTMLUnknownElement, NS_NewSVGUnknownElement,
264 TreeBuilder.ANNOTATION_XML | SCOPING_AS_MATHML);
266 // START CODE ONLY USED FOR GENERATING CODE uncomment and run to regenerate
268 // private static final Pattern HTML_TAG_DEF = Pattern.compile(
269 // "^HTML_TAG\\(([^,]+),\\s*([^,]+),\\s*[^,]+\\).*$");
271 // private static final Pattern HTML_HTMLELEMENT_TAG_DEF = Pattern.compile(
272 // "^HTML_HTMLELEMENT_TAG\\(([^\\)]+)\\).*$");
274 // private static final Pattern SVG_TAG_DEF = Pattern.compile(
275 // "^SVG_(?:FROM_PARSER_)?TAG\\(([^,]+),\\s*([^\\)]+)\\).*$");
277 // private static final Map<String, String> htmlMap = new HashMap<String, String>();
279 // private static final Map<String, String> svgMap = new HashMap<String, String>();
281 // private static void ingestHtmlTags(File htmlList) throws IOException {
282 // // This doesn't need to be efficient, so let's make it easy to write.
283 // BufferedReader htmlReader = new BufferedReader(
284 // new InputStreamReader(new FileInputStream(htmlList), "utf-8"));
285 // try {
286 // String line;
287 // while ((line = htmlReader.readLine()) != null) {
288 // if (!line.startsWith("HTML_")) {
289 // continue;
290 // }
291 // if (line.startsWith("HTML_OTHER")) {
292 // continue;
293 // }
294 // Matcher m = HTML_TAG_DEF.matcher(line);
295 // if (m.matches()) {
296 // String iface = m.group(2);
297 // if ("Unknown".equals(iface)) {
298 // continue;
299 // }
300 // htmlMap.put(m.group(1), "NS_NewHTML" + iface + "Element");
301 // } else {
302 // m = HTML_HTMLELEMENT_TAG_DEF.matcher(line);
303 // if (!m.matches()) {
304 // throw new RuntimeException(
305 // "Malformed HTML element definition: " + line);
306 // }
307 // htmlMap.put(m.group(1), "NS_NewHTMLElement");
308 // }
309 // }
310 // } finally {
311 // htmlReader.close();
312 // }
313 // }
315 // private static void ingestSvgTags(File svgList) throws IOException {
316 // // This doesn't need to be efficient, so let's make it easy to write.
317 // BufferedReader svgReader = new BufferedReader(
318 // new InputStreamReader(new FileInputStream(svgList), "utf-8"));
319 // try {
320 // String line;
321 // while ((line = svgReader.readLine()) != null) {
322 // if (!line.startsWith("SVG_")) {
323 // continue;
324 // }
325 // Matcher m = SVG_TAG_DEF.matcher(line);
326 // if (!m.matches()) {
327 // throw new RuntimeException(
328 // "Malformed SVG element definition: " + line);
329 // }
330 // String name = m.group(1);
331 // if ("svgSwitch".equals(name)) {
332 // name = "switch";
333 // }
334 // svgMap.put(name, "NS_NewSVG" + m.group(2) + "Element");
335 // }
336 // } finally {
337 // svgReader.close();
338 // }
339 // }
341 // private static String htmlCreator(String name) {
342 // String creator = htmlMap.remove(name);
343 // if (creator != null) {
344 // return creator;
345 // }
346 // return "NS_NewHTMLUnknownElement";
347 // }
349 // private static String svgCreator(String name) {
350 // String creator = svgMap.remove(name);
351 // if (creator != null) {
352 // return creator;
353 // }
354 // return "NS_NewSVGUnknownElement";
355 // }
357 // /**
358 // * @see java.lang.Object#toString()
359 // */
360 // @Override public String toString() {
361 // return "(\"" + name + "\", \"" + camelCaseName + "\", \n// CPP"
362 // + "ONLY: " + htmlCreator(name) + ",\n// CPP" + "ONLY: "
363 // + svgCreator(camelCaseName) + ", \n" + decomposedFlags() + ")";
364 // }
366 // private String decomposedFlags() {
367 // StringBuilder buf = new StringBuilder("TreeBuilder.");
368 // buf.append(treeBuilderGroupToName());
369 // if ((flags & SPECIAL) != 0) {
370 // buf.append(" | SPECIAL");
371 // }
372 // if ((flags & FOSTER_PARENTING) != 0) {
373 // buf.append(" | FOSTER_PARENTING");
374 // }
375 // if ((flags & SCOPING) != 0) {
376 // buf.append(" | SCOPING");
377 // }
378 // if ((flags & SCOPING_AS_MATHML) != 0) {
379 // buf.append(" | SCOPING_AS_MATHML");
380 // }
381 // if ((flags & SCOPING_AS_SVG) != 0) {
382 // buf.append(" | SCOPING_AS_SVG");
383 // }
384 // if ((flags & OPTIONAL_END_TAG) != 0) {
385 // buf.append(" | OPTIONAL_END_TAG");
386 // }
387 // return buf.toString();
388 // }
390 // private String constName() {
391 // char[] buf = new char[name.length()];
392 // for (int i = 0; i < name.length(); i++) {
393 // char c = name.charAt(i);
394 // if (c == '-') {
395 // if (!"annotation-xml".equals(name)) {
396 // throw new RuntimeException(
397 // "Non-annotation-xml element name with hyphen: "
398 // + name);
399 // }
400 // buf[i] = '_';
401 // } else if (c >= '0' && c <= '9') {
402 // buf[i] = c;
403 // } else {
404 // buf[i] = (char) (c - 0x20);
405 // }
406 // }
407 // return new String(buf);
408 // }
410 // private int hash() {
411 // return bufToHash(name.toCharArray(), name.length());
412 // }
414 // public int compareTo(ElementName other) {
415 // int thisHash = this.hash();
416 // int otherHash = other.hash();
417 // if (thisHash < otherHash) {
418 // return -1;
419 // } else if (thisHash == otherHash) {
420 // return 0;
421 // } else {
422 // return 1;
423 // }
424 // }
426 // private String treeBuilderGroupToName() {
427 // switch (getGroup()) {
428 // case TreeBuilder.OTHER:
429 // return "OTHER";
430 // case TreeBuilder.A:
431 // return "A";
432 // case TreeBuilder.BASE:
433 // return "BASE";
434 // case TreeBuilder.BODY:
435 // return "BODY";
436 // case TreeBuilder.BR:
437 // return "BR";
438 // case TreeBuilder.BUTTON:
439 // return "BUTTON";
440 // case TreeBuilder.CAPTION:
441 // return "CAPTION";
442 // case TreeBuilder.COL:
443 // return "COL";
444 // case TreeBuilder.COLGROUP:
445 // return "COLGROUP";
446 // case TreeBuilder.FONT:
447 // return "FONT";
448 // case TreeBuilder.FORM:
449 // return "FORM";
450 // case TreeBuilder.FRAME:
451 // return "FRAME";
452 // case TreeBuilder.FRAMESET:
453 // return "FRAMESET";
454 // case TreeBuilder.IMAGE:
455 // return "IMAGE";
456 // case TreeBuilder.INPUT:
457 // return "INPUT";
458 // case TreeBuilder.LI:
459 // return "LI";
460 // case TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND:
461 // return "LINK_OR_BASEFONT_OR_BGSOUND";
462 // case TreeBuilder.MATH:
463 // return "MATH";
464 // case TreeBuilder.META:
465 // return "META";
466 // case TreeBuilder.SVG:
467 // return "SVG";
468 // case TreeBuilder.HEAD:
469 // return "HEAD";
470 // case TreeBuilder.HR:
471 // return "HR";
472 // case TreeBuilder.HTML:
473 // return "HTML";
474 // case TreeBuilder.KEYGEN:
475 // return "KEYGEN";
476 // case TreeBuilder.NOBR:
477 // return "NOBR";
478 // case TreeBuilder.NOFRAMES:
479 // return "NOFRAMES";
480 // case TreeBuilder.NOSCRIPT:
481 // return "NOSCRIPT";
482 // case TreeBuilder.OPTGROUP:
483 // return "OPTGROUP";
484 // case TreeBuilder.OPTION:
485 // return "OPTION";
486 // case TreeBuilder.P:
487 // return "P";
488 // case TreeBuilder.PLAINTEXT:
489 // return "PLAINTEXT";
490 // case TreeBuilder.SCRIPT:
491 // return "SCRIPT";
492 // case TreeBuilder.SELECT:
493 // return "SELECT";
494 // case TreeBuilder.STYLE:
495 // return "STYLE";
496 // case TreeBuilder.TABLE:
497 // return "TABLE";
498 // case TreeBuilder.TEXTAREA:
499 // return "TEXTAREA";
500 // case TreeBuilder.TITLE:
501 // return "TITLE";
502 // case TreeBuilder.TEMPLATE:
503 // return "TEMPLATE";
504 // case TreeBuilder.TR:
505 // return "TR";
506 // case TreeBuilder.XMP:
507 // return "XMP";
508 // case TreeBuilder.TBODY_OR_THEAD_OR_TFOOT:
509 // return "TBODY_OR_THEAD_OR_TFOOT";
510 // case TreeBuilder.TD_OR_TH:
511 // return "TD_OR_TH";
512 // case TreeBuilder.DD_OR_DT:
513 // return "DD_OR_DT";
514 // case TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6:
515 // return "H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6";
516 // case TreeBuilder.OBJECT:
517 // return "OBJECT";
518 // case TreeBuilder.OUTPUT:
519 // return "OUTPUT";
520 // case TreeBuilder.MARQUEE_OR_APPLET:
521 // return "MARQUEE_OR_APPLET";
522 // case TreeBuilder.PRE_OR_LISTING:
523 // return "PRE_OR_LISTING";
524 // case TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U:
525 // return "B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U";
526 // case TreeBuilder.UL_OR_OL_OR_DL:
527 // return "UL_OR_OL_OR_DL";
528 // case TreeBuilder.IFRAME:
529 // return "IFRAME";
530 // case TreeBuilder.NOEMBED:
531 // return "NOEMBED";
532 // case TreeBuilder.EMBED:
533 // return "EMBED";
534 // case TreeBuilder.IMG:
535 // return "IMG";
536 // case TreeBuilder.AREA_OR_WBR:
537 // return "AREA_OR_WBR";
538 // case TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
539 // return "DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU";
540 // case TreeBuilder.FIELDSET:
541 // return "FIELDSET";
542 // case TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY:
543 // return "ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY";
544 // case TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR:
545 // return "RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR";
546 // case TreeBuilder.RB_OR_RTC:
547 // return "RB_OR_RTC";
548 // case TreeBuilder.RT_OR_RP:
549 // return "RT_OR_RP";
550 // case TreeBuilder.PARAM_OR_SOURCE_OR_TRACK:
551 // return "PARAM_OR_SOURCE_OR_TRACK";
552 // case TreeBuilder.MGLYPH_OR_MALIGNMARK:
553 // return "MGLYPH_OR_MALIGNMARK";
554 // case TreeBuilder.MI_MO_MN_MS_MTEXT:
555 // return "MI_MO_MN_MS_MTEXT";
556 // case TreeBuilder.ANNOTATION_XML:
557 // return "ANNOTATION_XML";
558 // case TreeBuilder.FOREIGNOBJECT_OR_DESC:
559 // return "FOREIGNOBJECT_OR_DESC";
560 // }
561 // return null;
562 // }
564 // private static void fillLevelOrderArray(List<ElementName> sorted, int depth,
565 // int rootIdx, ElementName[] levelOrder) {
566 // if (rootIdx >= levelOrder.length) {
567 // return;
568 // }
570 // if (depth > 0) {
571 // fillLevelOrderArray(sorted, depth - 1, rootIdx * 2 + 1, levelOrder);
572 // }
574 // if (!sorted.isEmpty()) {
575 // levelOrder[rootIdx] = sorted.remove(0);
576 // }
578 // if (depth > 0) {
579 // fillLevelOrderArray(sorted, depth - 1, rootIdx * 2 + 2, levelOrder);
580 // }
581 // }
583 // /**
584 // * Regenerate self
585 // *
586 // * The args should be the paths to m-c files
587 // * parser/htmlparser/nsHTMLTagList.h and dom/svg/SVGTagList.h.
588 // */
589 // public static void main(String[] args) {
590 // File htmlList = new File(args[0]);
591 // File svgList = new File(args[1]);
592 // try {
593 // ingestHtmlTags(htmlList);
594 // } catch (IOException e) {
595 // throw new RuntimeException(e);
596 // }
597 // try {
598 // ingestSvgTags(svgList);
599 // } catch (IOException e) {
600 // throw new RuntimeException(e);
601 // }
603 // Arrays.sort(ELEMENT_NAMES);
604 // for (int i = 0; i < ELEMENT_NAMES.length; i++) {
605 // int hash = ELEMENT_NAMES[i].hash();
606 // if (hash < 0) {
607 // System.err.println("Negative hash: " + ELEMENT_NAMES[i].name);
608 // return;
609 // }
610 // for (int j = i + 1; j < ELEMENT_NAMES.length; j++) {
611 // if (hash == ELEMENT_NAMES[j].hash()) {
612 // System.err.println(
613 // "Hash collision: " + ELEMENT_NAMES[i].name + ", "
614 // + ELEMENT_NAMES[j].name);
615 // return;
616 // }
617 // }
618 // }
619 // for (int i = 0; i < ELEMENT_NAMES.length; i++) {
620 // ElementName el = ELEMENT_NAMES[i];
621 // System.out.println(
622 // "public static final ElementName " + el.constName()
623 // + " = new ElementName" + el.toString() + ";");
624 // }
626 // LinkedList<ElementName> sortedNames = new LinkedList<ElementName>();
627 // Collections.addAll(sortedNames, ELEMENT_NAMES);
628 // ElementName[] levelOrder = new ElementName[ELEMENT_NAMES.length];
629 // int bstDepth = (int) Math.ceil(
630 // Math.log(ELEMENT_NAMES.length) / Math.log(2));
631 // fillLevelOrderArray(sortedNames, bstDepth, 0, levelOrder);
633 // System.out.println(
634 // "private final static @NoLength ElementName[] ELEMENT_NAMES = {");
635 // for (int i = 0; i < levelOrder.length; i++) {
636 // ElementName el = levelOrder[i];
637 // System.out.println(el.constName() + ",");
638 // }
639 // System.out.println("};");
640 // System.out.println("private final static int[] ELEMENT_HASHES = {");
641 // for (int i = 0; i < levelOrder.length; i++) {
642 // ElementName el = levelOrder[i];
643 // System.out.println(Integer.toString(el.hash()) + ",");
644 // }
645 // System.out.println("};");
647 // for (Entry<String, String> entry : htmlMap.entrySet()) {
648 // System.err.println("Missing HTML element: " + entry.getKey());
649 // }
650 // for (Entry<String, String> entry : svgMap.entrySet()) {
651 // System.err.println("Missing SVG element: " + entry.getKey());
652 // }
653 // }
655 // START GENERATED CODE
656 public static final ElementName BIG = new ElementName("big", "big",
657 // CPPONLY: NS_NewHTMLElement,
658 // CPPONLY: NS_NewSVGUnknownElement,
659 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
660 public static final ElementName BDI = new ElementName("bdi", "bdi",
661 // CPPONLY: NS_NewHTMLElement,
662 // CPPONLY: NS_NewSVGUnknownElement,
663 TreeBuilder.OTHER);
664 public static final ElementName BDO = new ElementName("bdo", "bdo",
665 // CPPONLY: NS_NewHTMLElement,
666 // CPPONLY: NS_NewSVGUnknownElement,
667 TreeBuilder.OTHER);
668 public static final ElementName COL = new ElementName("col", "col",
669 // CPPONLY: NS_NewHTMLTableColElement,
670 // CPPONLY: NS_NewSVGUnknownElement,
671 TreeBuilder.COL | SPECIAL);
672 public static final ElementName DEL = new ElementName("del", "del",
673 // CPPONLY: NS_NewHTMLModElement,
674 // CPPONLY: NS_NewSVGUnknownElement,
675 TreeBuilder.OTHER);
676 public static final ElementName DFN = new ElementName("dfn", "dfn",
677 // CPPONLY: NS_NewHTMLElement,
678 // CPPONLY: NS_NewSVGUnknownElement,
679 TreeBuilder.OTHER);
680 public static final ElementName DIR = new ElementName("dir", "dir",
681 // CPPONLY: NS_NewHTMLSharedElement,
682 // CPPONLY: NS_NewSVGUnknownElement,
683 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
684 public static final ElementName DIV = new ElementName("div", "div",
685 // CPPONLY: NS_NewHTMLDivElement,
686 // CPPONLY: NS_NewSVGUnknownElement,
687 TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
688 public static final ElementName IMG = new ElementName("img", "img",
689 // CPPONLY: NS_NewHTMLImageElement,
690 // CPPONLY: NS_NewSVGUnknownElement,
691 TreeBuilder.IMG | SPECIAL);
692 public static final ElementName INS = new ElementName("ins", "ins",
693 // CPPONLY: NS_NewHTMLModElement,
694 // CPPONLY: NS_NewSVGUnknownElement,
695 TreeBuilder.OTHER);
696 public static final ElementName KBD = new ElementName("kbd", "kbd",
697 // CPPONLY: NS_NewHTMLElement,
698 // CPPONLY: NS_NewSVGUnknownElement,
699 TreeBuilder.OTHER);
700 public static final ElementName MAP = new ElementName("map", "map",
701 // CPPONLY: NS_NewHTMLMapElement,
702 // CPPONLY: NS_NewSVGUnknownElement,
703 TreeBuilder.OTHER);
704 public static final ElementName NAV = new ElementName("nav", "nav",
705 // CPPONLY: NS_NewHTMLElement,
706 // CPPONLY: NS_NewSVGUnknownElement,
707 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
708 public static final ElementName PRE = new ElementName("pre", "pre",
709 // CPPONLY: NS_NewHTMLPreElement,
710 // CPPONLY: NS_NewSVGUnknownElement,
711 TreeBuilder.PRE_OR_LISTING | SPECIAL);
712 public static final ElementName A = new ElementName("a", "a",
713 // CPPONLY: NS_NewHTMLAnchorElement,
714 // CPPONLY: NS_NewSVGAElement,
715 TreeBuilder.A);
716 public static final ElementName B = new ElementName("b", "b",
717 // CPPONLY: NS_NewHTMLElement,
718 // CPPONLY: NS_NewSVGUnknownElement,
719 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
720 public static final ElementName RTC = new ElementName("rtc", "rtc",
721 // CPPONLY: NS_NewHTMLElement,
722 // CPPONLY: NS_NewSVGUnknownElement,
723 TreeBuilder.RB_OR_RTC | OPTIONAL_END_TAG);
724 public static final ElementName SUB = new ElementName("sub", "sub",
725 // CPPONLY: NS_NewHTMLElement,
726 // CPPONLY: NS_NewSVGUnknownElement,
727 TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
728 public static final ElementName SVG = new ElementName("svg", "svg",
729 // CPPONLY: NS_NewHTMLUnknownElement,
730 // CPPONLY: NS_NewSVGSVGElement,
731 TreeBuilder.SVG);
732 public static final ElementName SUP = new ElementName("sup", "sup",
733 // CPPONLY: NS_NewHTMLElement,
734 // CPPONLY: NS_NewSVGUnknownElement,
735 TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
736 public static final ElementName SET = new ElementName("set", "set",
737 // CPPONLY: NS_NewHTMLUnknownElement,
738 // CPPONLY: NS_NewSVGSetElement,
739 TreeBuilder.OTHER);
740 public static final ElementName USE = new ElementName("use", "use",
741 // CPPONLY: NS_NewHTMLUnknownElement,
742 // CPPONLY: NS_NewSVGUseElement,
743 TreeBuilder.OTHER);
744 public static final ElementName VAR = new ElementName("var", "var",
745 // CPPONLY: NS_NewHTMLElement,
746 // CPPONLY: NS_NewSVGUnknownElement,
747 TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
748 public static final ElementName G = new ElementName("g", "g",
749 // CPPONLY: NS_NewHTMLUnknownElement,
750 // CPPONLY: NS_NewSVGGElement,
751 TreeBuilder.OTHER);
752 public static final ElementName WBR = new ElementName("wbr", "wbr",
753 // CPPONLY: NS_NewHTMLElement,
754 // CPPONLY: NS_NewSVGUnknownElement,
755 TreeBuilder.AREA_OR_WBR | SPECIAL);
756 public static final ElementName XMP = new ElementName("xmp", "xmp",
757 // CPPONLY: NS_NewHTMLPreElement,
758 // CPPONLY: NS_NewSVGUnknownElement,
759 TreeBuilder.XMP | SPECIAL);
760 public static final ElementName I = new ElementName("i", "i",
761 // CPPONLY: NS_NewHTMLElement,
762 // CPPONLY: NS_NewSVGUnknownElement,
763 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
764 public static final ElementName P = new ElementName("p", "p",
765 // CPPONLY: NS_NewHTMLParagraphElement,
766 // CPPONLY: NS_NewSVGUnknownElement,
767 TreeBuilder.P | SPECIAL | OPTIONAL_END_TAG);
768 public static final ElementName Q = new ElementName("q", "q",
769 // CPPONLY: NS_NewHTMLSharedElement,
770 // CPPONLY: NS_NewSVGUnknownElement,
771 TreeBuilder.OTHER);
772 public static final ElementName S = new ElementName("s", "s",
773 // CPPONLY: NS_NewHTMLElement,
774 // CPPONLY: NS_NewSVGUnknownElement,
775 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
776 public static final ElementName U = new ElementName("u", "u",
777 // CPPONLY: NS_NewHTMLElement,
778 // CPPONLY: NS_NewSVGUnknownElement,
779 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
780 public static final ElementName H1 = new ElementName("h1", "h1",
781 // CPPONLY: NS_NewHTMLHeadingElement,
782 // CPPONLY: NS_NewSVGUnknownElement,
783 TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
784 public static final ElementName H2 = new ElementName("h2", "h2",
785 // CPPONLY: NS_NewHTMLHeadingElement,
786 // CPPONLY: NS_NewSVGUnknownElement,
787 TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
788 public static final ElementName H3 = new ElementName("h3", "h3",
789 // CPPONLY: NS_NewHTMLHeadingElement,
790 // CPPONLY: NS_NewSVGUnknownElement,
791 TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
792 public static final ElementName H4 = new ElementName("h4", "h4",
793 // CPPONLY: NS_NewHTMLHeadingElement,
794 // CPPONLY: NS_NewSVGUnknownElement,
795 TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
796 public static final ElementName H5 = new ElementName("h5", "h5",
797 // CPPONLY: NS_NewHTMLHeadingElement,
798 // CPPONLY: NS_NewSVGUnknownElement,
799 TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
800 public static final ElementName H6 = new ElementName("h6", "h6",
801 // CPPONLY: NS_NewHTMLHeadingElement,
802 // CPPONLY: NS_NewSVGUnknownElement,
803 TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
804 public static final ElementName AREA = new ElementName("area", "area",
805 // CPPONLY: NS_NewHTMLAreaElement,
806 // CPPONLY: NS_NewSVGUnknownElement,
807 TreeBuilder.AREA_OR_WBR | SPECIAL);
808 public static final ElementName DATA = new ElementName("data", "data",
809 // CPPONLY: NS_NewHTMLDataElement,
810 // CPPONLY: NS_NewSVGUnknownElement,
811 TreeBuilder.OTHER);
812 public static final ElementName FEFUNCA = new ElementName("fefunca", "feFuncA",
813 // CPPONLY: NS_NewHTMLUnknownElement,
814 // CPPONLY: NS_NewSVGFEFuncAElement,
815 TreeBuilder.OTHER);
816 public static final ElementName METADATA = new ElementName("metadata", "metadata",
817 // CPPONLY: NS_NewHTMLUnknownElement,
818 // CPPONLY: NS_NewSVGMetadataElement,
819 TreeBuilder.OTHER);
820 public static final ElementName META = new ElementName("meta", "meta",
821 // CPPONLY: NS_NewHTMLMetaElement,
822 // CPPONLY: NS_NewSVGUnknownElement,
823 TreeBuilder.META | SPECIAL);
824 public static final ElementName TEXTAREA = new ElementName("textarea", "textarea",
825 // CPPONLY: NS_NewHTMLTextAreaElement,
826 // CPPONLY: NS_NewSVGUnknownElement,
827 TreeBuilder.TEXTAREA | SPECIAL);
828 public static final ElementName FEFUNCB = new ElementName("fefuncb", "feFuncB",
829 // CPPONLY: NS_NewHTMLUnknownElement,
830 // CPPONLY: NS_NewSVGFEFuncBElement,
831 TreeBuilder.OTHER);
832 public static final ElementName RB = new ElementName("rb", "rb",
833 // CPPONLY: NS_NewHTMLElement,
834 // CPPONLY: NS_NewSVGUnknownElement,
835 TreeBuilder.RB_OR_RTC | OPTIONAL_END_TAG);
836 public static final ElementName DESC = new ElementName("desc", "desc",
837 // CPPONLY: NS_NewHTMLUnknownElement,
838 // CPPONLY: NS_NewSVGDescElement,
839 TreeBuilder.FOREIGNOBJECT_OR_DESC | SCOPING_AS_SVG);
840 public static final ElementName DD = new ElementName("dd", "dd",
841 // CPPONLY: NS_NewHTMLElement,
842 // CPPONLY: NS_NewSVGUnknownElement,
843 TreeBuilder.DD_OR_DT | SPECIAL | OPTIONAL_END_TAG);
844 public static final ElementName BGSOUND = new ElementName("bgsound", "bgsound",
845 // CPPONLY: NS_NewHTMLUnknownElement,
846 // CPPONLY: NS_NewSVGUnknownElement,
847 TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
848 public static final ElementName EMBED = new ElementName("embed", "embed",
849 // CPPONLY: NS_NewHTMLEmbedElement,
850 // CPPONLY: NS_NewSVGUnknownElement,
851 TreeBuilder.EMBED | SPECIAL);
852 public static final ElementName FEBLEND = new ElementName("feblend", "feBlend",
853 // CPPONLY: NS_NewHTMLUnknownElement,
854 // CPPONLY: NS_NewSVGFEBlendElement,
855 TreeBuilder.OTHER);
856 public static final ElementName FEFLOOD = new ElementName("feflood", "feFlood",
857 // CPPONLY: NS_NewHTMLUnknownElement,
858 // CPPONLY: NS_NewSVGFEFloodElement,
859 TreeBuilder.OTHER);
860 public static final ElementName HEAD = new ElementName("head", "head",
861 // CPPONLY: NS_NewHTMLSharedElement,
862 // CPPONLY: NS_NewSVGUnknownElement,
863 TreeBuilder.HEAD | SPECIAL | OPTIONAL_END_TAG);
864 public static final ElementName LEGEND = new ElementName("legend", "legend",
865 // CPPONLY: NS_NewHTMLLegendElement,
866 // CPPONLY: NS_NewSVGUnknownElement,
867 TreeBuilder.OTHER);
868 public static final ElementName NOEMBED = new ElementName("noembed", "noembed",
869 // CPPONLY: NS_NewHTMLElement,
870 // CPPONLY: NS_NewSVGUnknownElement,
871 TreeBuilder.NOEMBED | SPECIAL);
872 public static final ElementName TD = new ElementName("td", "td",
873 // CPPONLY: NS_NewHTMLTableCellElement,
874 // CPPONLY: NS_NewSVGUnknownElement,
875 TreeBuilder.TD_OR_TH | SPECIAL | SCOPING | OPTIONAL_END_TAG);
876 public static final ElementName THEAD = new ElementName("thead", "thead",
877 // CPPONLY: NS_NewHTMLTableSectionElement,
878 // CPPONLY: NS_NewSVGUnknownElement,
879 TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
880 public static final ElementName ASIDE = new ElementName("aside", "aside",
881 // CPPONLY: NS_NewHTMLElement,
882 // CPPONLY: NS_NewSVGUnknownElement,
883 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
884 public static final ElementName ARTICLE = new ElementName("article", "article",
885 // CPPONLY: NS_NewHTMLElement,
886 // CPPONLY: NS_NewSVGUnknownElement,
887 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
888 public static final ElementName ANIMATE = new ElementName("animate", "animate",
889 // CPPONLY: NS_NewHTMLUnknownElement,
890 // CPPONLY: NS_NewSVGAnimateElement,
891 TreeBuilder.OTHER);
892 public static final ElementName BASE = new ElementName("base", "base",
893 // CPPONLY: NS_NewHTMLSharedElement,
894 // CPPONLY: NS_NewSVGUnknownElement,
895 TreeBuilder.BASE | SPECIAL);
896 public static final ElementName BLOCKQUOTE = new ElementName("blockquote", "blockquote",
897 // CPPONLY: NS_NewHTMLSharedElement,
898 // CPPONLY: NS_NewSVGUnknownElement,
899 TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
900 public static final ElementName CODE = new ElementName("code", "code",
901 // CPPONLY: NS_NewHTMLElement,
902 // CPPONLY: NS_NewSVGUnknownElement,
903 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
904 public static final ElementName CIRCLE = new ElementName("circle", "circle",
905 // CPPONLY: NS_NewHTMLUnknownElement,
906 // CPPONLY: NS_NewSVGCircleElement,
907 TreeBuilder.OTHER);
908 public static final ElementName CITE = new ElementName("cite", "cite",
909 // CPPONLY: NS_NewHTMLElement,
910 // CPPONLY: NS_NewSVGUnknownElement,
911 TreeBuilder.OTHER);
912 public static final ElementName ELLIPSE = new ElementName("ellipse", "ellipse",
913 // CPPONLY: NS_NewHTMLUnknownElement,
914 // CPPONLY: NS_NewSVGEllipseElement,
915 TreeBuilder.OTHER);
916 public static final ElementName FETURBULENCE = new ElementName("feturbulence", "feTurbulence",
917 // CPPONLY: NS_NewHTMLUnknownElement,
918 // CPPONLY: NS_NewSVGFETurbulenceElement,
919 TreeBuilder.OTHER);
920 public static final ElementName FEMERGENODE = new ElementName("femergenode", "feMergeNode",
921 // CPPONLY: NS_NewHTMLUnknownElement,
922 // CPPONLY: NS_NewSVGFEMergeNodeElement,
923 TreeBuilder.OTHER);
924 public static final ElementName FEIMAGE = new ElementName("feimage", "feImage",
925 // CPPONLY: NS_NewHTMLUnknownElement,
926 // CPPONLY: NS_NewSVGFEImageElement,
927 TreeBuilder.OTHER);
928 public static final ElementName FEMERGE = new ElementName("femerge", "feMerge",
929 // CPPONLY: NS_NewHTMLUnknownElement,
930 // CPPONLY: NS_NewSVGFEMergeElement,
931 TreeBuilder.OTHER);
932 public static final ElementName FETILE = new ElementName("fetile", "feTile",
933 // CPPONLY: NS_NewHTMLUnknownElement,
934 // CPPONLY: NS_NewSVGFETileElement,
935 TreeBuilder.OTHER);
936 public static final ElementName FRAME = new ElementName("frame", "frame",
937 // CPPONLY: NS_NewHTMLFrameElement,
938 // CPPONLY: NS_NewSVGUnknownElement,
939 TreeBuilder.FRAME | SPECIAL);
940 public static final ElementName FIGURE = new ElementName("figure", "figure",
941 // CPPONLY: NS_NewHTMLElement,
942 // CPPONLY: NS_NewSVGUnknownElement,
943 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
944 public static final ElementName FECOMPOSITE = new ElementName("fecomposite", "feComposite",
945 // CPPONLY: NS_NewHTMLUnknownElement,
946 // CPPONLY: NS_NewSVGFECompositeElement,
947 TreeBuilder.OTHER);
948 public static final ElementName IMAGE = new ElementName("image", "image",
949 // CPPONLY: NS_NewHTMLElement,
950 // CPPONLY: NS_NewSVGImageElement,
951 TreeBuilder.IMAGE);
952 public static final ElementName IFRAME = new ElementName("iframe", "iframe",
953 // CPPONLY: NS_NewHTMLIFrameElement,
954 // CPPONLY: NS_NewSVGUnknownElement,
955 TreeBuilder.IFRAME | SPECIAL);
956 public static final ElementName LINE = new ElementName("line", "line",
957 // CPPONLY: NS_NewHTMLUnknownElement,
958 // CPPONLY: NS_NewSVGLineElement,
959 TreeBuilder.OTHER);
960 public static final ElementName MARQUEE = new ElementName("marquee", "marquee",
961 // CPPONLY: NS_NewHTMLMarqueeElement,
962 // CPPONLY: NS_NewSVGUnknownElement,
963 TreeBuilder.MARQUEE_OR_APPLET | SPECIAL | SCOPING);
964 public static final ElementName POLYLINE = new ElementName("polyline", "polyline",
965 // CPPONLY: NS_NewHTMLUnknownElement,
966 // CPPONLY: NS_NewSVGPolylineElement,
967 TreeBuilder.OTHER);
968 public static final ElementName PICTURE = new ElementName("picture", "picture",
969 // CPPONLY: NS_NewHTMLPictureElement,
970 // CPPONLY: NS_NewSVGUnknownElement,
971 TreeBuilder.OTHER);
972 public static final ElementName SOURCE = new ElementName("source", "source",
973 // CPPONLY: NS_NewHTMLSourceElement,
974 // CPPONLY: NS_NewSVGUnknownElement,
975 TreeBuilder.PARAM_OR_SOURCE_OR_TRACK);
976 public static final ElementName STRIKE = new ElementName("strike", "strike",
977 // CPPONLY: NS_NewHTMLElement,
978 // CPPONLY: NS_NewSVGUnknownElement,
979 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
980 public static final ElementName STYLE = new ElementName("style", "style",
981 // CPPONLY: NS_NewHTMLStyleElement,
982 // CPPONLY: NS_NewSVGStyleElement,
983 TreeBuilder.STYLE | SPECIAL);
984 public static final ElementName TABLE = new ElementName("table", "table",
985 // CPPONLY: NS_NewHTMLTableElement,
986 // CPPONLY: NS_NewSVGUnknownElement,
987 TreeBuilder.TABLE | SPECIAL | FOSTER_PARENTING | SCOPING);
988 public static final ElementName TITLE = new ElementName("title", "title",
989 // CPPONLY: NS_NewHTMLTitleElement,
990 // CPPONLY: NS_NewSVGTitleElement,
991 TreeBuilder.TITLE | SPECIAL | SCOPING_AS_SVG);
992 public static final ElementName TIME = new ElementName("time", "time",
993 // CPPONLY: NS_NewHTMLTimeElement,
994 // CPPONLY: NS_NewSVGUnknownElement,
995 TreeBuilder.OTHER);
996 public static final ElementName TEMPLATE = new ElementName("template", "template",
997 // CPPONLY: NS_NewHTMLTemplateElement,
998 // CPPONLY: NS_NewSVGUnknownElement,
999 TreeBuilder.TEMPLATE | SPECIAL | SCOPING);
1000 public static final ElementName ALTGLYPHDEF = new ElementName("altglyphdef", "altGlyphDef",
1001 // CPPONLY: NS_NewHTMLUnknownElement,
1002 // CPPONLY: NS_NewSVGUnknownElement,
1003 TreeBuilder.OTHER);
1004 public static final ElementName GLYPHREF = new ElementName("glyphref", "glyphRef",
1005 // CPPONLY: NS_NewHTMLUnknownElement,
1006 // CPPONLY: NS_NewSVGUnknownElement,
1007 TreeBuilder.OTHER);
1008 public static final ElementName DIALOG = new ElementName("dialog", "dialog",
1009 // CPPONLY: NS_NewHTMLDialogElement,
1010 // CPPONLY: NS_NewSVGUnknownElement,
1011 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
1012 public static final ElementName FEFUNCG = new ElementName("fefuncg", "feFuncG",
1013 // CPPONLY: NS_NewHTMLUnknownElement,
1014 // CPPONLY: NS_NewSVGFEFuncGElement,
1015 TreeBuilder.OTHER);
1016 public static final ElementName FEDIFFUSELIGHTING = new ElementName("fediffuselighting", "feDiffuseLighting",
1017 // CPPONLY: NS_NewHTMLUnknownElement,
1018 // CPPONLY: NS_NewSVGFEDiffuseLightingElement,
1019 TreeBuilder.OTHER);
1020 public static final ElementName FESPECULARLIGHTING = new ElementName("fespecularlighting", "feSpecularLighting",
1021 // CPPONLY: NS_NewHTMLUnknownElement,
1022 // CPPONLY: NS_NewSVGFESpecularLightingElement,
1023 TreeBuilder.OTHER);
1024 public static final ElementName LISTING = new ElementName("listing", "listing",
1025 // CPPONLY: NS_NewHTMLPreElement,
1026 // CPPONLY: NS_NewSVGUnknownElement,
1027 TreeBuilder.PRE_OR_LISTING | SPECIAL);
1028 public static final ElementName STRONG = new ElementName("strong", "strong",
1029 // CPPONLY: NS_NewHTMLElement,
1030 // CPPONLY: NS_NewSVGUnknownElement,
1031 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
1032 public static final ElementName ALTGLYPH = new ElementName("altglyph", "altGlyph",
1033 // CPPONLY: NS_NewHTMLUnknownElement,
1034 // CPPONLY: NS_NewSVGUnknownElement,
1035 TreeBuilder.OTHER);
1036 public static final ElementName CLIPPATH = new ElementName("clippath", "clipPath",
1037 // CPPONLY: NS_NewHTMLUnknownElement,
1038 // CPPONLY: NS_NewSVGClipPathElement,
1039 TreeBuilder.OTHER);
1040 public static final ElementName MGLYPH = new ElementName("mglyph", "mglyph",
1041 // CPPONLY: NS_NewHTMLUnknownElement,
1042 // CPPONLY: NS_NewSVGUnknownElement,
1043 TreeBuilder.MGLYPH_OR_MALIGNMARK);
1044 public static final ElementName MATH = new ElementName("math", "math",
1045 // CPPONLY: NS_NewHTMLUnknownElement,
1046 // CPPONLY: NS_NewSVGUnknownElement,
1047 TreeBuilder.MATH);
1048 public static final ElementName MPATH = new ElementName("mpath", "mpath",
1049 // CPPONLY: NS_NewHTMLUnknownElement,
1050 // CPPONLY: NS_NewSVGMPathElement,
1051 TreeBuilder.OTHER);
1052 public static final ElementName PATH = new ElementName("path", "path",
1053 // CPPONLY: NS_NewHTMLUnknownElement,
1054 // CPPONLY: NS_NewSVGPathElement,
1055 TreeBuilder.OTHER);
1056 public static final ElementName TH = new ElementName("th", "th",
1057 // CPPONLY: NS_NewHTMLTableCellElement,
1058 // CPPONLY: NS_NewSVGUnknownElement,
1059 TreeBuilder.TD_OR_TH | SPECIAL | SCOPING | OPTIONAL_END_TAG);
1060 public static final ElementName SWITCH = new ElementName("switch", "switch",
1061 // CPPONLY: NS_NewHTMLUnknownElement,
1062 // CPPONLY: NS_NewSVGSwitchElement,
1063 TreeBuilder.OTHER);
1064 public static final ElementName TEXTPATH = new ElementName("textpath", "textPath",
1065 // CPPONLY: NS_NewHTMLUnknownElement,
1066 // CPPONLY: NS_NewSVGTextPathElement,
1067 TreeBuilder.OTHER);
1068 public static final ElementName LI = new ElementName("li", "li",
1069 // CPPONLY: NS_NewHTMLLIElement,
1070 // CPPONLY: NS_NewSVGUnknownElement,
1071 TreeBuilder.LI | SPECIAL | OPTIONAL_END_TAG);
1072 public static final ElementName MI = new ElementName("mi", "mi",
1073 // CPPONLY: NS_NewHTMLUnknownElement,
1074 // CPPONLY: NS_NewSVGUnknownElement,
1075 TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
1076 public static final ElementName LINK = new ElementName("link", "link",
1077 // CPPONLY: NS_NewHTMLLinkElement,
1078 // CPPONLY: NS_NewSVGUnknownElement,
1079 TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
1080 public static final ElementName MARK = new ElementName("mark", "mark",
1081 // CPPONLY: NS_NewHTMLElement,
1082 // CPPONLY: NS_NewSVGUnknownElement,
1083 TreeBuilder.OTHER);
1084 public static final ElementName MALIGNMARK = new ElementName("malignmark", "malignmark",
1085 // CPPONLY: NS_NewHTMLUnknownElement,
1086 // CPPONLY: NS_NewSVGUnknownElement,
1087 TreeBuilder.MGLYPH_OR_MALIGNMARK);
1088 public static final ElementName MASK = new ElementName("mask", "mask",
1089 // CPPONLY: NS_NewHTMLUnknownElement,
1090 // CPPONLY: NS_NewSVGMaskElement,
1091 TreeBuilder.OTHER);
1092 public static final ElementName TRACK = new ElementName("track", "track",
1093 // CPPONLY: NS_NewHTMLTrackElement,
1094 // CPPONLY: NS_NewSVGUnknownElement,
1095 TreeBuilder.PARAM_OR_SOURCE_OR_TRACK | SPECIAL);
1096 public static final ElementName DL = new ElementName("dl", "dl",
1097 // CPPONLY: NS_NewHTMLSharedListElement,
1098 // CPPONLY: NS_NewSVGUnknownElement,
1099 TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
1100 public static final ElementName HTML = new ElementName("html", "html",
1101 // CPPONLY: NS_NewHTMLSharedElement,
1102 // CPPONLY: NS_NewSVGUnknownElement,
1103 TreeBuilder.HTML | SPECIAL | SCOPING | OPTIONAL_END_TAG);
1104 public static final ElementName OL = new ElementName("ol", "ol",
1105 // CPPONLY: NS_NewHTMLSharedListElement,
1106 // CPPONLY: NS_NewSVGUnknownElement,
1107 TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
1108 public static final ElementName LABEL = new ElementName("label", "label",
1109 // CPPONLY: NS_NewHTMLLabelElement,
1110 // CPPONLY: NS_NewSVGUnknownElement,
1111 TreeBuilder.OTHER);
1112 public static final ElementName UL = new ElementName("ul", "ul",
1113 // CPPONLY: NS_NewHTMLSharedListElement,
1114 // CPPONLY: NS_NewSVGUnknownElement,
1115 TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
1116 public static final ElementName SMALL = new ElementName("small", "small",
1117 // CPPONLY: NS_NewHTMLElement,
1118 // CPPONLY: NS_NewSVGUnknownElement,
1119 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
1120 public static final ElementName SYMBOL = new ElementName("symbol", "symbol",
1121 // CPPONLY: NS_NewHTMLUnknownElement,
1122 // CPPONLY: NS_NewSVGSymbolElement,
1123 TreeBuilder.OTHER);
1124 public static final ElementName ALTGLYPHITEM = new ElementName("altglyphitem", "altGlyphItem",
1125 // CPPONLY: NS_NewHTMLUnknownElement,
1126 // CPPONLY: NS_NewSVGUnknownElement,
1127 TreeBuilder.OTHER);
1128 public static final ElementName ANIMATETRANSFORM = new ElementName("animatetransform", "animateTransform",
1129 // CPPONLY: NS_NewHTMLUnknownElement,
1130 // CPPONLY: NS_NewSVGAnimateTransformElement,
1131 TreeBuilder.OTHER);
1132 public static final ElementName ACRONYM = new ElementName("acronym", "acronym",
1133 // CPPONLY: NS_NewHTMLElement,
1134 // CPPONLY: NS_NewSVGUnknownElement,
1135 TreeBuilder.OTHER);
1136 public static final ElementName EM = new ElementName("em", "em",
1137 // CPPONLY: NS_NewHTMLElement,
1138 // CPPONLY: NS_NewSVGUnknownElement,
1139 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
1140 public static final ElementName FORM = new ElementName("form", "form",
1141 // CPPONLY: NS_NewHTMLFormElement,
1142 // CPPONLY: NS_NewSVGUnknownElement,
1143 TreeBuilder.FORM | SPECIAL);
1144 public static final ElementName PARAM = new ElementName("param", "param",
1145 // CPPONLY: NS_NewHTMLSharedElement,
1146 // CPPONLY: NS_NewSVGUnknownElement,
1147 TreeBuilder.PARAM_OR_SOURCE_OR_TRACK | SPECIAL);
1148 public static final ElementName ANIMATEMOTION = new ElementName("animatemotion", "animateMotion",
1149 // CPPONLY: NS_NewHTMLUnknownElement,
1150 // CPPONLY: NS_NewSVGAnimateMotionElement,
1151 TreeBuilder.OTHER);
1152 public static final ElementName BUTTON = new ElementName("button", "button",
1153 // CPPONLY: NS_NewHTMLButtonElement,
1154 // CPPONLY: NS_NewSVGUnknownElement,
1155 TreeBuilder.BUTTON | SPECIAL);
1156 public static final ElementName CAPTION = new ElementName("caption", "caption",
1157 // CPPONLY: NS_NewHTMLTableCaptionElement,
1158 // CPPONLY: NS_NewSVGUnknownElement,
1159 TreeBuilder.CAPTION | SPECIAL | SCOPING);
1160 public static final ElementName FIGCAPTION = new ElementName("figcaption", "figcaption",
1161 // CPPONLY: NS_NewHTMLElement,
1162 // CPPONLY: NS_NewSVGUnknownElement,
1163 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
1164 public static final ElementName MN = new ElementName("mn", "mn",
1165 // CPPONLY: NS_NewHTMLUnknownElement,
1166 // CPPONLY: NS_NewSVGUnknownElement,
1167 TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
1168 public static final ElementName KEYGEN = new ElementName("keygen", "keygen",
1169 // CPPONLY: NS_NewHTMLUnknownElement,
1170 // CPPONLY: NS_NewSVGUnknownElement,
1171 TreeBuilder.KEYGEN | SPECIAL);
1172 public static final ElementName MAIN = new ElementName("main", "main",
1173 // CPPONLY: NS_NewHTMLElement,
1174 // CPPONLY: NS_NewSVGUnknownElement,
1175 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
1176 public static final ElementName OPTION = new ElementName("option", "option",
1177 // CPPONLY: NS_NewHTMLOptionElement,
1178 // CPPONLY: NS_NewSVGUnknownElement,
1179 TreeBuilder.OPTION | OPTIONAL_END_TAG);
1180 public static final ElementName POLYGON = new ElementName("polygon", "polygon",
1181 // CPPONLY: NS_NewHTMLUnknownElement,
1182 // CPPONLY: NS_NewSVGPolygonElement,
1183 TreeBuilder.OTHER);
1184 public static final ElementName PATTERN = new ElementName("pattern", "pattern",
1185 // CPPONLY: NS_NewHTMLUnknownElement,
1186 // CPPONLY: NS_NewSVGPatternElement,
1187 TreeBuilder.OTHER);
1188 public static final ElementName SPAN = new ElementName("span", "span",
1189 // CPPONLY: NS_NewHTMLSpanElement,
1190 // CPPONLY: NS_NewSVGUnknownElement,
1191 TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
1192 public static final ElementName SECTION = new ElementName("section", "section",
1193 // CPPONLY: NS_NewHTMLElement,
1194 // CPPONLY: NS_NewSVGUnknownElement,
1195 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
1196 public static final ElementName TSPAN = new ElementName("tspan", "tspan",
1197 // CPPONLY: NS_NewHTMLUnknownElement,
1198 // CPPONLY: NS_NewSVGTSpanElement,
1199 TreeBuilder.OTHER);
1200 public static final ElementName AUDIO = new ElementName("audio", "audio",
1201 // CPPONLY: NS_NewHTMLAudioElement,
1202 // CPPONLY: NS_NewSVGUnknownElement,
1203 TreeBuilder.OTHER);
1204 public static final ElementName MO = new ElementName("mo", "mo",
1205 // CPPONLY: NS_NewHTMLUnknownElement,
1206 // CPPONLY: NS_NewSVGUnknownElement,
1207 TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
1208 public static final ElementName VIDEO = new ElementName("video", "video",
1209 // CPPONLY: NS_NewHTMLVideoElement,
1210 // CPPONLY: NS_NewSVGUnknownElement,
1211 TreeBuilder.OTHER);
1212 public static final ElementName COLGROUP = new ElementName("colgroup", "colgroup",
1213 // CPPONLY: NS_NewHTMLTableColElement,
1214 // CPPONLY: NS_NewSVGUnknownElement,
1215 TreeBuilder.COLGROUP | SPECIAL | OPTIONAL_END_TAG);
1216 public static final ElementName FEDISPLACEMENTMAP = new ElementName("fedisplacementmap", "feDisplacementMap",
1217 // CPPONLY: NS_NewHTMLUnknownElement,
1218 // CPPONLY: NS_NewSVGFEDisplacementMapElement,
1219 TreeBuilder.OTHER);
1220 public static final ElementName HGROUP = new ElementName("hgroup", "hgroup",
1221 // CPPONLY: NS_NewHTMLElement,
1222 // CPPONLY: NS_NewSVGUnknownElement,
1223 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
1224 public static final ElementName RP = new ElementName("rp", "rp",
1225 // CPPONLY: NS_NewHTMLElement,
1226 // CPPONLY: NS_NewSVGUnknownElement,
1227 TreeBuilder.RT_OR_RP | OPTIONAL_END_TAG);
1228 public static final ElementName OPTGROUP = new ElementName("optgroup", "optgroup",
1229 // CPPONLY: NS_NewHTMLOptGroupElement,
1230 // CPPONLY: NS_NewSVGUnknownElement,
1231 TreeBuilder.OPTGROUP | OPTIONAL_END_TAG);
1232 public static final ElementName SAMP = new ElementName("samp", "samp",
1233 // CPPONLY: NS_NewHTMLElement,
1234 // CPPONLY: NS_NewSVGUnknownElement,
1235 TreeBuilder.OTHER);
1236 public static final ElementName STOP = new ElementName("stop", "stop",
1237 // CPPONLY: NS_NewHTMLUnknownElement,
1238 // CPPONLY: NS_NewSVGStopElement,
1239 TreeBuilder.OTHER);
1240 public static final ElementName BR = new ElementName("br", "br",
1241 // CPPONLY: NS_NewHTMLBRElement,
1242 // CPPONLY: NS_NewSVGUnknownElement,
1243 TreeBuilder.BR | SPECIAL);
1244 public static final ElementName ABBR = new ElementName("abbr", "abbr",
1245 // CPPONLY: NS_NewHTMLElement,
1246 // CPPONLY: NS_NewSVGUnknownElement,
1247 TreeBuilder.OTHER);
1248 public static final ElementName ANIMATECOLOR = new ElementName("animatecolor", "animateColor",
1249 // CPPONLY: NS_NewHTMLUnknownElement,
1250 // CPPONLY: NS_NewSVGUnknownElement,
1251 TreeBuilder.OTHER);
1252 public static final ElementName CENTER = new ElementName("center", "center",
1253 // CPPONLY: NS_NewHTMLElement,
1254 // CPPONLY: NS_NewSVGUnknownElement,
1255 TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
1256 public static final ElementName HR = new ElementName("hr", "hr",
1257 // CPPONLY: NS_NewHTMLHRElement,
1258 // CPPONLY: NS_NewSVGUnknownElement,
1259 TreeBuilder.HR | SPECIAL);
1260 public static final ElementName FEFUNCR = new ElementName("fefuncr", "feFuncR",
1261 // CPPONLY: NS_NewHTMLUnknownElement,
1262 // CPPONLY: NS_NewSVGFEFuncRElement,
1263 TreeBuilder.OTHER);
1264 public static final ElementName FECOMPONENTTRANSFER = new ElementName("fecomponenttransfer", "feComponentTransfer",
1265 // CPPONLY: NS_NewHTMLUnknownElement,
1266 // CPPONLY: NS_NewSVGFEComponentTransferElement,
1267 TreeBuilder.OTHER);
1268 public static final ElementName FILTER = new ElementName("filter", "filter",
1269 // CPPONLY: NS_NewHTMLUnknownElement,
1270 // CPPONLY: NS_NewSVGFilterElement,
1271 TreeBuilder.OTHER);
1272 public static final ElementName FOOTER = new ElementName("footer", "footer",
1273 // CPPONLY: NS_NewHTMLElement,
1274 // CPPONLY: NS_NewSVGUnknownElement,
1275 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
1276 public static final ElementName FEGAUSSIANBLUR = new ElementName("fegaussianblur", "feGaussianBlur",
1277 // CPPONLY: NS_NewHTMLUnknownElement,
1278 // CPPONLY: NS_NewSVGFEGaussianBlurElement,
1279 TreeBuilder.OTHER);
1280 public static final ElementName HEADER = new ElementName("header", "header",
1281 // CPPONLY: NS_NewHTMLElement,
1282 // CPPONLY: NS_NewSVGUnknownElement,
1283 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
1284 public static final ElementName MARKER = new ElementName("marker", "marker",
1285 // CPPONLY: NS_NewHTMLUnknownElement,
1286 // CPPONLY: NS_NewSVGMarkerElement,
1287 TreeBuilder.OTHER);
1288 public static final ElementName METER = new ElementName("meter", "meter",
1289 // CPPONLY: NS_NewHTMLMeterElement,
1290 // CPPONLY: NS_NewSVGUnknownElement,
1291 TreeBuilder.OTHER);
1292 public static final ElementName NOBR = new ElementName("nobr", "nobr",
1293 // CPPONLY: NS_NewHTMLElement,
1294 // CPPONLY: NS_NewSVGUnknownElement,
1295 TreeBuilder.NOBR);
1296 public static final ElementName TR = new ElementName("tr", "tr",
1297 // CPPONLY: NS_NewHTMLTableRowElement,
1298 // CPPONLY: NS_NewSVGUnknownElement,
1299 TreeBuilder.TR | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
1300 public static final ElementName ADDRESS = new ElementName("address", "address",
1301 // CPPONLY: NS_NewHTMLElement,
1302 // CPPONLY: NS_NewSVGUnknownElement,
1303 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
1304 public static final ElementName CANVAS = new ElementName("canvas", "canvas",
1305 // CPPONLY: NS_NewHTMLCanvasElement,
1306 // CPPONLY: NS_NewSVGUnknownElement,
1307 TreeBuilder.OTHER);
1308 public static final ElementName DEFS = new ElementName("defs", "defs",
1309 // CPPONLY: NS_NewHTMLUnknownElement,
1310 // CPPONLY: NS_NewSVGDefsElement,
1311 TreeBuilder.OTHER);
1312 public static final ElementName DETAILS = new ElementName("details", "details",
1313 // CPPONLY: NS_NewHTMLDetailsElement,
1314 // CPPONLY: NS_NewSVGUnknownElement,
1315 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
1316 public static final ElementName MS = new ElementName("ms", "ms",
1317 // CPPONLY: NS_NewHTMLUnknownElement,
1318 // CPPONLY: NS_NewSVGUnknownElement,
1319 TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
1320 public static final ElementName NOFRAMES = new ElementName("noframes", "noframes",
1321 // CPPONLY: NS_NewHTMLElement,
1322 // CPPONLY: NS_NewSVGUnknownElement,
1323 TreeBuilder.NOFRAMES | SPECIAL);
1324 public static final ElementName PROGRESS = new ElementName("progress", "progress",
1325 // CPPONLY: NS_NewHTMLProgressElement,
1326 // CPPONLY: NS_NewSVGUnknownElement,
1327 TreeBuilder.OTHER);
1328 public static final ElementName DT = new ElementName("dt", "dt",
1329 // CPPONLY: NS_NewHTMLElement,
1330 // CPPONLY: NS_NewSVGUnknownElement,
1331 TreeBuilder.DD_OR_DT | SPECIAL | OPTIONAL_END_TAG);
1332 public static final ElementName APPLET = new ElementName("applet", "applet",
1333 // CPPONLY: NS_NewHTMLUnknownElement,
1334 // CPPONLY: NS_NewSVGUnknownElement,
1335 TreeBuilder.MARQUEE_OR_APPLET | SPECIAL | SCOPING);
1336 public static final ElementName BASEFONT = new ElementName("basefont", "basefont",
1337 // CPPONLY: NS_NewHTMLElement,
1338 // CPPONLY: NS_NewSVGUnknownElement,
1339 TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
1340 public static final ElementName DATALIST = new ElementName("datalist", "datalist",
1341 // CPPONLY: NS_NewHTMLDataListElement,
1342 // CPPONLY: NS_NewSVGUnknownElement,
1343 TreeBuilder.OTHER);
1344 public static final ElementName FOREIGNOBJECT = new ElementName("foreignobject", "foreignObject",
1345 // CPPONLY: NS_NewHTMLUnknownElement,
1346 // CPPONLY: NS_NewSVGForeignObjectElement,
1347 TreeBuilder.FOREIGNOBJECT_OR_DESC | SCOPING_AS_SVG);
1348 public static final ElementName FIELDSET = new ElementName("fieldset", "fieldset",
1349 // CPPONLY: NS_NewHTMLFieldSetElement,
1350 // CPPONLY: NS_NewSVGUnknownElement,
1351 TreeBuilder.FIELDSET | SPECIAL);
1352 public static final ElementName FRAMESET = new ElementName("frameset", "frameset",
1353 // CPPONLY: NS_NewHTMLFrameSetElement,
1354 // CPPONLY: NS_NewSVGUnknownElement,
1355 TreeBuilder.FRAMESET | SPECIAL);
1356 public static final ElementName FEOFFSET = new ElementName("feoffset", "feOffset",
1357 // CPPONLY: NS_NewHTMLUnknownElement,
1358 // CPPONLY: NS_NewSVGFEOffsetElement,
1359 TreeBuilder.OTHER);
1360 public static final ElementName FESPOTLIGHT = new ElementName("fespotlight", "feSpotLight",
1361 // CPPONLY: NS_NewHTMLUnknownElement,
1362 // CPPONLY: NS_NewSVGFESpotLightElement,
1363 TreeBuilder.OTHER);
1364 public static final ElementName FEPOINTLIGHT = new ElementName("fepointlight", "fePointLight",
1365 // CPPONLY: NS_NewHTMLUnknownElement,
1366 // CPPONLY: NS_NewSVGFEPointLightElement,
1367 TreeBuilder.OTHER);
1368 public static final ElementName FEDISTANTLIGHT = new ElementName("fedistantlight", "feDistantLight",
1369 // CPPONLY: NS_NewHTMLUnknownElement,
1370 // CPPONLY: NS_NewSVGFEDistantLightElement,
1371 TreeBuilder.OTHER);
1372 public static final ElementName FONT = new ElementName("font", "font",
1373 // CPPONLY: NS_NewHTMLFontElement,
1374 // CPPONLY: NS_NewSVGUnknownElement,
1375 TreeBuilder.FONT);
1376 public static final ElementName INPUT = new ElementName("input", "input",
1377 // CPPONLY: NS_NewHTMLInputElement,
1378 // CPPONLY: NS_NewSVGUnknownElement,
1379 TreeBuilder.INPUT | SPECIAL);
1380 public static final ElementName LINEARGRADIENT = new ElementName("lineargradient", "linearGradient",
1381 // CPPONLY: NS_NewHTMLUnknownElement,
1382 // CPPONLY: NS_NewSVGLinearGradientElement,
1383 TreeBuilder.OTHER);
1384 public static final ElementName MTEXT = new ElementName("mtext", "mtext",
1385 // CPPONLY: NS_NewHTMLUnknownElement,
1386 // CPPONLY: NS_NewSVGUnknownElement,
1387 TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
1388 public static final ElementName NOSCRIPT = new ElementName("noscript", "noscript",
1389 // CPPONLY: NS_NewHTMLElement,
1390 // CPPONLY: NS_NewSVGUnknownElement,
1391 TreeBuilder.NOSCRIPT | SPECIAL);
1392 public static final ElementName RT = new ElementName("rt", "rt",
1393 // CPPONLY: NS_NewHTMLElement,
1394 // CPPONLY: NS_NewSVGUnknownElement,
1395 TreeBuilder.RT_OR_RP | OPTIONAL_END_TAG);
1396 public static final ElementName OBJECT = new ElementName("object", "object",
1397 // CPPONLY: NS_NewHTMLObjectElement,
1398 // CPPONLY: NS_NewSVGUnknownElement,
1399 TreeBuilder.OBJECT | SPECIAL | SCOPING);
1400 public static final ElementName OUTPUT = new ElementName("output", "output",
1401 // CPPONLY: NS_NewHTMLOutputElement,
1402 // CPPONLY: NS_NewSVGUnknownElement,
1403 TreeBuilder.OUTPUT);
1404 public static final ElementName PLAINTEXT = new ElementName("plaintext", "plaintext",
1405 // CPPONLY: NS_NewHTMLElement,
1406 // CPPONLY: NS_NewSVGUnknownElement,
1407 TreeBuilder.PLAINTEXT | SPECIAL);
1408 public static final ElementName TT = new ElementName("tt", "tt",
1409 // CPPONLY: NS_NewHTMLElement,
1410 // CPPONLY: NS_NewSVGUnknownElement,
1411 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
1412 public static final ElementName RECT = new ElementName("rect", "rect",
1413 // CPPONLY: NS_NewHTMLUnknownElement,
1414 // CPPONLY: NS_NewSVGRectElement,
1415 TreeBuilder.OTHER);
1416 public static final ElementName RADIALGRADIENT = new ElementName("radialgradient", "radialGradient",
1417 // CPPONLY: NS_NewHTMLUnknownElement,
1418 // CPPONLY: NS_NewSVGRadialGradientElement,
1419 TreeBuilder.OTHER);
1420 public static final ElementName SELECT = new ElementName("select", "select",
1421 // CPPONLY: NS_NewHTMLSelectElement,
1422 // CPPONLY: NS_NewSVGUnknownElement,
1423 TreeBuilder.SELECT | SPECIAL);
1424 public static final ElementName SLOT = new ElementName("slot", "slot",
1425 // CPPONLY: NS_NewHTMLSlotElement,
1426 // CPPONLY: NS_NewSVGUnknownElement,
1427 TreeBuilder.OTHER);
1428 public static final ElementName SCRIPT = new ElementName("script", "script",
1429 // CPPONLY: NS_NewHTMLScriptElement,
1430 // CPPONLY: NS_NewSVGScriptElement,
1431 TreeBuilder.SCRIPT | SPECIAL);
1432 public static final ElementName TFOOT = new ElementName("tfoot", "tfoot",
1433 // CPPONLY: NS_NewHTMLTableSectionElement,
1434 // CPPONLY: NS_NewSVGUnknownElement,
1435 TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
1436 public static final ElementName TEXT = new ElementName("text", "text",
1437 // CPPONLY: NS_NewHTMLUnknownElement,
1438 // CPPONLY: NS_NewSVGTextElement,
1439 TreeBuilder.OTHER);
1440 public static final ElementName MENU = new ElementName("menu", "menu",
1441 // CPPONLY: NS_NewHTMLMenuElement,
1442 // CPPONLY: NS_NewSVGUnknownElement,
1443 TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
1444 public static final ElementName FEDROPSHADOW = new ElementName("fedropshadow", "feDropShadow",
1445 // CPPONLY: NS_NewHTMLUnknownElement,
1446 // CPPONLY: NS_NewSVGFEDropShadowElement,
1447 TreeBuilder.OTHER);
1448 public static final ElementName VIEW = new ElementName("view", "view",
1449 // CPPONLY: NS_NewHTMLUnknownElement,
1450 // CPPONLY: NS_NewSVGViewElement,
1451 TreeBuilder.OTHER);
1452 public static final ElementName FECOLORMATRIX = new ElementName("fecolormatrix", "feColorMatrix",
1453 // CPPONLY: NS_NewHTMLUnknownElement,
1454 // CPPONLY: NS_NewSVGFEColorMatrixElement,
1455 TreeBuilder.OTHER);
1456 public static final ElementName FECONVOLVEMATRIX = new ElementName("feconvolvematrix", "feConvolveMatrix",
1457 // CPPONLY: NS_NewHTMLUnknownElement,
1458 // CPPONLY: NS_NewSVGFEConvolveMatrixElement,
1459 TreeBuilder.OTHER);
1460 public static final ElementName BODY = new ElementName("body", "body",
1461 // CPPONLY: NS_NewHTMLBodyElement,
1462 // CPPONLY: NS_NewSVGUnknownElement,
1463 TreeBuilder.BODY | SPECIAL | OPTIONAL_END_TAG);
1464 public static final ElementName FEMORPHOLOGY = new ElementName("femorphology", "feMorphology",
1465 // CPPONLY: NS_NewHTMLUnknownElement,
1466 // CPPONLY: NS_NewSVGFEMorphologyElement,
1467 TreeBuilder.OTHER);
1468 public static final ElementName RUBY = new ElementName("ruby", "ruby",
1469 // CPPONLY: NS_NewHTMLElement,
1470 // CPPONLY: NS_NewSVGUnknownElement,
1471 TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
1472 public static final ElementName SUMMARY = new ElementName("summary", "summary",
1473 // CPPONLY: NS_NewHTMLSummaryElement,
1474 // CPPONLY: NS_NewSVGUnknownElement,
1475 TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
1476 public static final ElementName TBODY = new ElementName("tbody", "tbody",
1477 // CPPONLY: NS_NewHTMLTableSectionElement,
1478 // CPPONLY: NS_NewSVGUnknownElement,
1479 TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
1480 private final static @NoLength ElementName[] ELEMENT_NAMES = {
1482 CITE,
1483 FRAMESET,
1485 CLIPPATH,
1486 METER,
1487 RADIALGRADIENT,
1489 BGSOUND,
1490 SOURCE,
1491 HTML,
1492 OPTGROUP,
1493 NOFRAMES,
1494 MTEXT,
1495 VIEW,
1496 DIV,
1498 FEFUNCA,
1499 THEAD,
1500 FIGURE,
1501 GLYPHREF,
1503 ACRONYM,
1504 TSPAN,
1505 FEFUNCR,
1506 CANVAS,
1507 BASEFONT,
1508 FEDISTANTLIGHT,
1509 OUTPUT,
1510 TFOOT,
1511 FEMORPHOLOGY,
1512 COL,
1513 MAP,
1514 SUP,
1517 FEFUNCB,
1518 HEAD,
1519 BASE,
1520 FEIMAGE,
1521 LINE,
1522 TITLE,
1523 FESPECULARLIGHTING,
1524 PATH,
1525 MALIGNMARK,
1526 SMALL,
1527 ANIMATEMOTION,
1528 POLYGON,
1529 COLGROUP,
1530 ABBR,
1531 FEGAUSSIANBLUR,
1533 DETAILS,
1535 FOREIGNOBJECT,
1536 FESPOTLIGHT,
1537 INPUT,
1540 SLOT,
1541 MENU,
1542 FECONVOLVEMATRIX,
1543 SUMMARY,
1544 BDI,
1545 DFN,
1546 INS,
1547 PRE,
1548 SUB,
1549 USE,
1550 XMP,
1553 AREA,
1554 META,
1555 DESC,
1556 FEBLEND,
1557 NOEMBED,
1558 ARTICLE,
1559 CODE,
1560 FETURBULENCE,
1561 FETILE,
1562 IMAGE,
1563 POLYLINE,
1564 STYLE,
1565 TEMPLATE,
1566 FEFUNCG,
1567 STRONG,
1568 MATH,
1569 SWITCH,
1570 LINK,
1571 TRACK,
1572 LABEL,
1573 ALTGLYPHITEM,
1574 FORM,
1575 CAPTION,
1576 MAIN,
1577 SPAN,
1579 HGROUP,
1580 STOP,
1581 CENTER,
1582 FILTER,
1583 MARKER,
1584 NOBR,
1585 ADDRESS,
1586 DEFS,
1588 PROGRESS,
1589 APPLET,
1590 DATALIST,
1591 FIELDSET,
1592 FEOFFSET,
1593 FEPOINTLIGHT,
1594 FONT,
1595 LINEARGRADIENT,
1596 NOSCRIPT,
1597 OBJECT,
1598 PLAINTEXT,
1599 RECT,
1600 SELECT,
1601 SCRIPT,
1602 TEXT,
1603 FEDROPSHADOW,
1604 FECOLORMATRIX,
1605 BODY,
1606 RUBY,
1607 TBODY,
1608 BIG,
1609 BDO,
1610 DEL,
1611 DIR,
1612 IMG,
1613 KBD,
1614 NAV,
1616 RTC,
1617 SVG,
1618 SET,
1619 VAR,
1620 WBR,
1627 DATA,
1628 METADATA,
1629 TEXTAREA,
1632 EMBED,
1633 FEFLOOD,
1634 LEGEND,
1636 ASIDE,
1637 ANIMATE,
1638 BLOCKQUOTE,
1639 CIRCLE,
1640 ELLIPSE,
1641 FEMERGENODE,
1642 FEMERGE,
1643 FRAME,
1644 FECOMPOSITE,
1645 IFRAME,
1646 MARQUEE,
1647 PICTURE,
1648 STRIKE,
1649 TABLE,
1650 TIME,
1651 ALTGLYPHDEF,
1652 DIALOG,
1653 FEDIFFUSELIGHTING,
1654 LISTING,
1655 ALTGLYPH,
1656 MGLYPH,
1657 MPATH,
1659 TEXTPATH,
1661 MARK,
1662 MASK,
1666 SYMBOL,
1667 ANIMATETRANSFORM,
1669 PARAM,
1670 BUTTON,
1671 FIGCAPTION,
1672 KEYGEN,
1673 OPTION,
1674 PATTERN,
1675 SECTION,
1676 AUDIO,
1677 VIDEO,
1678 FEDISPLACEMENTMAP,
1680 SAMP,
1682 ANIMATECOLOR,
1684 FECOMPONENTTRANSFER,
1685 FOOTER,
1686 HEADER,
1688 private final static int[] ELEMENT_HASHES = {
1689 1902641154,
1690 1748359220,
1691 2001349720,
1692 876609538,
1693 1798686984,
1694 1971465813,
1695 2007781534,
1696 59768833,
1697 1730965751,
1698 1756474198,
1699 1868312196,
1700 1939219752,
1701 1988763672,
1702 2005324101,
1703 2060065124,
1704 52490899,
1705 62390273,
1706 1682547543,
1707 1740181637,
1708 1749905526,
1709 1766992520,
1710 1818230786,
1711 1881613047,
1712 1907959605,
1713 1967760215,
1714 1982935782,
1715 1999397992,
1716 2001392798,
1717 2006329158,
1718 2008851557,
1719 2085266636,
1720 51961587,
1721 57206291,
1722 60352339,
1723 67108865,
1724 943718402,
1725 1699324759,
1726 1733890180,
1727 1747814436,
1728 1749715159,
1729 1752979652,
1730 1757146773,
1731 1783388498,
1732 1805502724,
1733 1854228698,
1734 1874053333,
1735 1898223949,
1736 1906087319,
1737 1932928296,
1738 1965115924,
1739 1968053806,
1740 1973420034,
1741 1983633431,
1742 1998585858,
1743 2001309869,
1744 2001392795,
1745 2003183333,
1746 2005925890,
1747 2006974466,
1748 2008325940,
1749 2021937364,
1750 2068523856,
1751 2092255447,
1752 51435587,
1753 52486755,
1754 55110883,
1755 58773795,
1756 60345171,
1757 61395251,
1758 62973651,
1759 68681729,
1760 910163970,
1761 1679960596,
1762 1686491348,
1763 1715310660,
1764 1733054663,
1765 1737099991,
1766 1747176599,
1767 1748100148,
1768 1749656156,
1769 1749801286,
1770 1751288021,
1771 1755076808,
1772 1756625221,
1773 1757268168,
1774 1783210839,
1775 1790207270,
1776 1803929812,
1777 1806806678,
1778 1853642948,
1779 1857653029,
1780 1870268949,
1781 1881288348,
1782 1884120164,
1783 1899272519,
1784 1904412884,
1785 1907435316,
1786 1919418370,
1787 1935549734,
1788 1941221172,
1789 1966223078,
1790 1967795910,
1791 1971461414,
1792 1971938532,
1793 1982173479,
1794 1983533124,
1795 1986527234,
1796 1990037800,
1797 1998724870,
1798 2000525512,
1799 2001349704,
1800 2001349736,
1801 2001392796,
1802 2001495140,
1803 2004635806,
1804 2005719336,
1805 2006028454,
1806 2006896969,
1807 2007601444,
1808 2008125638,
1809 2008340774,
1810 2008994116,
1811 2051837468,
1812 2068523853,
1813 2083120164,
1814 2091479332,
1815 2092557349,
1816 51434643,
1817 51438659,
1818 52485715,
1819 52488851,
1820 55104723,
1821 56151587,
1822 57733651,
1823 59244545,
1824 59821379,
1825 60347747,
1826 60354131,
1827 61925907,
1828 62450211,
1829 63438849,
1830 67633153,
1831 69730305,
1832 893386754,
1833 926941186,
1834 960495618,
1835 1681770564,
1836 1686489160,
1837 1689922072,
1838 1703936002,
1839 1730150402,
1840 1732381397,
1841 1733076167,
1842 1736200310,
1843 1738539010,
1844 1747048757,
1845 1747306711,
1846 1747838298,
1847 1748225318,
1848 1749395095,
1849 1749673195,
1850 1749723735,
1851 1749813541,
1852 1749932347,
1853 1751386406,
1854 1753362711,
1855 1755148615,
1856 1756600614,
1857 1757137429,
1858 1757157700,
1859 1763839627,
1860 1782357526,
1861 1783388497,
1862 1786534215,
1863 1797585096,
1864 1803876550,
1865 1803929861,
1866 1805647874,
1867 1807599880,
1868 1818755074,
1869 1854228692,
1870 1854245076,
1871 1864368130,
1872 1870135298,
1873 1873281026,
1874 1874102998,
1875 1881498736,
1876 1881669634,
1877 1889085973,
1878 1898753862,
1879 1900845386,
1880 1903302038,
1881 1905563974,
1882 1906135367,
1883 1907661127,
1884 1914900309,
1885 1925844629,
1886 1934172497,
1887 1938817026,
1888 1941178676,
1889 1963982850,
1890 1965334268,
1891 1967128578,
1892 1967788867,
1893 1967795958,
1894 1968836118,