Bug 1916073 - Add some wpt conditions for Android
[gecko.git] / parser / html / javasrc / ElementName.java
blob2d09c338db82ac2e258b56a9616344fea222b570
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) {
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_SEARCH_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_SEARCH_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_SEARCH_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_SEARCH_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_SEARCH_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_SEARCH_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_SEARCH_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_SEARCH_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 SEARCH = new ElementName("search", "search",
1061 // CPPONLY: NS_NewHTMLElement,
1062 // CPPONLY: NS_NewSVGUnknownElement,
1063 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_SEARCH_OR_SECTION_OR_SUMMARY | SPECIAL);
1064 public static final ElementName SWITCH = new ElementName("switch", "switch",
1065 // CPPONLY: NS_NewHTMLUnknownElement,
1066 // CPPONLY: NS_NewSVGSwitchElement,
1067 TreeBuilder.OTHER);
1068 public static final ElementName TEXTPATH = new ElementName("textpath", "textPath",
1069 // CPPONLY: NS_NewHTMLUnknownElement,
1070 // CPPONLY: NS_NewSVGTextPathElement,
1071 TreeBuilder.OTHER);
1072 public static final ElementName LI = new ElementName("li", "li",
1073 // CPPONLY: NS_NewHTMLLIElement,
1074 // CPPONLY: NS_NewSVGUnknownElement,
1075 TreeBuilder.LI | SPECIAL | OPTIONAL_END_TAG);
1076 public static final ElementName MI = new ElementName("mi", "mi",
1077 // CPPONLY: NS_NewHTMLUnknownElement,
1078 // CPPONLY: NS_NewSVGUnknownElement,
1079 TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
1080 public static final ElementName LINK = new ElementName("link", "link",
1081 // CPPONLY: NS_NewHTMLLinkElement,
1082 // CPPONLY: NS_NewSVGUnknownElement,
1083 TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
1084 public static final ElementName MARK = new ElementName("mark", "mark",
1085 // CPPONLY: NS_NewHTMLElement,
1086 // CPPONLY: NS_NewSVGUnknownElement,
1087 TreeBuilder.OTHER);
1088 public static final ElementName MALIGNMARK = new ElementName("malignmark", "malignmark",
1089 // CPPONLY: NS_NewHTMLUnknownElement,
1090 // CPPONLY: NS_NewSVGUnknownElement,
1091 TreeBuilder.MGLYPH_OR_MALIGNMARK);
1092 public static final ElementName MASK = new ElementName("mask", "mask",
1093 // CPPONLY: NS_NewHTMLUnknownElement,
1094 // CPPONLY: NS_NewSVGMaskElement,
1095 TreeBuilder.OTHER);
1096 public static final ElementName TRACK = new ElementName("track", "track",
1097 // CPPONLY: NS_NewHTMLTrackElement,
1098 // CPPONLY: NS_NewSVGUnknownElement,
1099 TreeBuilder.PARAM_OR_SOURCE_OR_TRACK | SPECIAL);
1100 public static final ElementName DL = new ElementName("dl", "dl",
1101 // CPPONLY: NS_NewHTMLSharedListElement,
1102 // CPPONLY: NS_NewSVGUnknownElement,
1103 TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
1104 public static final ElementName HTML = new ElementName("html", "html",
1105 // CPPONLY: NS_NewHTMLSharedElement,
1106 // CPPONLY: NS_NewSVGUnknownElement,
1107 TreeBuilder.HTML | SPECIAL | SCOPING | OPTIONAL_END_TAG);
1108 public static final ElementName OL = new ElementName("ol", "ol",
1109 // CPPONLY: NS_NewHTMLSharedListElement,
1110 // CPPONLY: NS_NewSVGUnknownElement,
1111 TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
1112 public static final ElementName LABEL = new ElementName("label", "label",
1113 // CPPONLY: NS_NewHTMLLabelElement,
1114 // CPPONLY: NS_NewSVGUnknownElement,
1115 TreeBuilder.OTHER);
1116 public static final ElementName UL = new ElementName("ul", "ul",
1117 // CPPONLY: NS_NewHTMLSharedListElement,
1118 // CPPONLY: NS_NewSVGUnknownElement,
1119 TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
1120 public static final ElementName SMALL = new ElementName("small", "small",
1121 // CPPONLY: NS_NewHTMLElement,
1122 // CPPONLY: NS_NewSVGUnknownElement,
1123 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
1124 public static final ElementName SYMBOL = new ElementName("symbol", "symbol",
1125 // CPPONLY: NS_NewHTMLUnknownElement,
1126 // CPPONLY: NS_NewSVGSymbolElement,
1127 TreeBuilder.OTHER);
1128 public static final ElementName ALTGLYPHITEM = new ElementName("altglyphitem", "altGlyphItem",
1129 // CPPONLY: NS_NewHTMLUnknownElement,
1130 // CPPONLY: NS_NewSVGUnknownElement,
1131 TreeBuilder.OTHER);
1132 public static final ElementName ANIMATETRANSFORM = new ElementName("animatetransform", "animateTransform",
1133 // CPPONLY: NS_NewHTMLUnknownElement,
1134 // CPPONLY: NS_NewSVGAnimateTransformElement,
1135 TreeBuilder.OTHER);
1136 public static final ElementName ACRONYM = new ElementName("acronym", "acronym",
1137 // CPPONLY: NS_NewHTMLElement,
1138 // CPPONLY: NS_NewSVGUnknownElement,
1139 TreeBuilder.OTHER);
1140 public static final ElementName EM = new ElementName("em", "em",
1141 // CPPONLY: NS_NewHTMLElement,
1142 // CPPONLY: NS_NewSVGUnknownElement,
1143 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
1144 public static final ElementName FORM = new ElementName("form", "form",
1145 // CPPONLY: NS_NewHTMLFormElement,
1146 // CPPONLY: NS_NewSVGUnknownElement,
1147 TreeBuilder.FORM | SPECIAL);
1148 public static final ElementName PARAM = new ElementName("param", "param",
1149 // CPPONLY: NS_NewHTMLSharedElement,
1150 // CPPONLY: NS_NewSVGUnknownElement,
1151 TreeBuilder.PARAM_OR_SOURCE_OR_TRACK | SPECIAL);
1152 public static final ElementName ANIMATEMOTION = new ElementName("animatemotion", "animateMotion",
1153 // CPPONLY: NS_NewHTMLUnknownElement,
1154 // CPPONLY: NS_NewSVGAnimateMotionElement,
1155 TreeBuilder.OTHER);
1156 public static final ElementName BUTTON = new ElementName("button", "button",
1157 // CPPONLY: NS_NewHTMLButtonElement,
1158 // CPPONLY: NS_NewSVGUnknownElement,
1159 TreeBuilder.BUTTON | SPECIAL);
1160 public static final ElementName CAPTION = new ElementName("caption", "caption",
1161 // CPPONLY: NS_NewHTMLTableCaptionElement,
1162 // CPPONLY: NS_NewSVGUnknownElement,
1163 TreeBuilder.CAPTION | SPECIAL | SCOPING);
1164 public static final ElementName FIGCAPTION = new ElementName("figcaption", "figcaption",
1165 // CPPONLY: NS_NewHTMLElement,
1166 // CPPONLY: NS_NewSVGUnknownElement,
1167 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_SEARCH_OR_SECTION_OR_SUMMARY | SPECIAL);
1168 public static final ElementName MN = new ElementName("mn", "mn",
1169 // CPPONLY: NS_NewHTMLUnknownElement,
1170 // CPPONLY: NS_NewSVGUnknownElement,
1171 TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
1172 public static final ElementName KEYGEN = new ElementName("keygen", "keygen",
1173 // CPPONLY: NS_NewHTMLUnknownElement,
1174 // CPPONLY: NS_NewSVGUnknownElement,
1175 TreeBuilder.KEYGEN | SPECIAL);
1176 public static final ElementName MAIN = new ElementName("main", "main",
1177 // CPPONLY: NS_NewHTMLElement,
1178 // CPPONLY: NS_NewSVGUnknownElement,
1179 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_SEARCH_OR_SECTION_OR_SUMMARY | SPECIAL);
1180 public static final ElementName OPTION = new ElementName("option", "option",
1181 // CPPONLY: NS_NewHTMLOptionElement,
1182 // CPPONLY: NS_NewSVGUnknownElement,
1183 TreeBuilder.OPTION | OPTIONAL_END_TAG);
1184 public static final ElementName POLYGON = new ElementName("polygon", "polygon",
1185 // CPPONLY: NS_NewHTMLUnknownElement,
1186 // CPPONLY: NS_NewSVGPolygonElement,
1187 TreeBuilder.OTHER);
1188 public static final ElementName PATTERN = new ElementName("pattern", "pattern",
1189 // CPPONLY: NS_NewHTMLUnknownElement,
1190 // CPPONLY: NS_NewSVGPatternElement,
1191 TreeBuilder.OTHER);
1192 public static final ElementName SPAN = new ElementName("span", "span",
1193 // CPPONLY: NS_NewHTMLSpanElement,
1194 // CPPONLY: NS_NewSVGUnknownElement,
1195 TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
1196 public static final ElementName SECTION = new ElementName("section", "section",
1197 // CPPONLY: NS_NewHTMLElement,
1198 // CPPONLY: NS_NewSVGUnknownElement,
1199 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_SEARCH_OR_SECTION_OR_SUMMARY | SPECIAL);
1200 public static final ElementName TSPAN = new ElementName("tspan", "tspan",
1201 // CPPONLY: NS_NewHTMLUnknownElement,
1202 // CPPONLY: NS_NewSVGTSpanElement,
1203 TreeBuilder.OTHER);
1204 public static final ElementName AUDIO = new ElementName("audio", "audio",
1205 // CPPONLY: NS_NewHTMLAudioElement,
1206 // CPPONLY: NS_NewSVGUnknownElement,
1207 TreeBuilder.OTHER);
1208 public static final ElementName MO = new ElementName("mo", "mo",
1209 // CPPONLY: NS_NewHTMLUnknownElement,
1210 // CPPONLY: NS_NewSVGUnknownElement,
1211 TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
1212 public static final ElementName VIDEO = new ElementName("video", "video",
1213 // CPPONLY: NS_NewHTMLVideoElement,
1214 // CPPONLY: NS_NewSVGUnknownElement,
1215 TreeBuilder.OTHER);
1216 public static final ElementName COLGROUP = new ElementName("colgroup", "colgroup",
1217 // CPPONLY: NS_NewHTMLTableColElement,
1218 // CPPONLY: NS_NewSVGUnknownElement,
1219 TreeBuilder.COLGROUP | SPECIAL | OPTIONAL_END_TAG);
1220 public static final ElementName FEDISPLACEMENTMAP = new ElementName("fedisplacementmap", "feDisplacementMap",
1221 // CPPONLY: NS_NewHTMLUnknownElement,
1222 // CPPONLY: NS_NewSVGFEDisplacementMapElement,
1223 TreeBuilder.OTHER);
1224 public static final ElementName HGROUP = new ElementName("hgroup", "hgroup",
1225 // CPPONLY: NS_NewHTMLElement,
1226 // CPPONLY: NS_NewSVGUnknownElement,
1227 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_SEARCH_OR_SECTION_OR_SUMMARY | SPECIAL);
1228 public static final ElementName RP = new ElementName("rp", "rp",
1229 // CPPONLY: NS_NewHTMLElement,
1230 // CPPONLY: NS_NewSVGUnknownElement,
1231 TreeBuilder.RT_OR_RP | OPTIONAL_END_TAG);
1232 public static final ElementName OPTGROUP = new ElementName("optgroup", "optgroup",
1233 // CPPONLY: NS_NewHTMLOptGroupElement,
1234 // CPPONLY: NS_NewSVGUnknownElement,
1235 TreeBuilder.OPTGROUP | OPTIONAL_END_TAG);
1236 public static final ElementName SAMP = new ElementName("samp", "samp",
1237 // CPPONLY: NS_NewHTMLElement,
1238 // CPPONLY: NS_NewSVGUnknownElement,
1239 TreeBuilder.OTHER);
1240 public static final ElementName STOP = new ElementName("stop", "stop",
1241 // CPPONLY: NS_NewHTMLUnknownElement,
1242 // CPPONLY: NS_NewSVGStopElement,
1243 TreeBuilder.OTHER);
1244 public static final ElementName BR = new ElementName("br", "br",
1245 // CPPONLY: NS_NewHTMLBRElement,
1246 // CPPONLY: NS_NewSVGUnknownElement,
1247 TreeBuilder.BR | SPECIAL);
1248 public static final ElementName ABBR = new ElementName("abbr", "abbr",
1249 // CPPONLY: NS_NewHTMLElement,
1250 // CPPONLY: NS_NewSVGUnknownElement,
1251 TreeBuilder.OTHER);
1252 public static final ElementName ANIMATECOLOR = new ElementName("animatecolor", "animateColor",
1253 // CPPONLY: NS_NewHTMLUnknownElement,
1254 // CPPONLY: NS_NewSVGUnknownElement,
1255 TreeBuilder.OTHER);
1256 public static final ElementName CENTER = new ElementName("center", "center",
1257 // CPPONLY: NS_NewHTMLElement,
1258 // CPPONLY: NS_NewSVGUnknownElement,
1259 TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
1260 public static final ElementName HR = new ElementName("hr", "hr",
1261 // CPPONLY: NS_NewHTMLHRElement,
1262 // CPPONLY: NS_NewSVGUnknownElement,
1263 TreeBuilder.HR | SPECIAL);
1264 public static final ElementName FEFUNCR = new ElementName("fefuncr", "feFuncR",
1265 // CPPONLY: NS_NewHTMLUnknownElement,
1266 // CPPONLY: NS_NewSVGFEFuncRElement,
1267 TreeBuilder.OTHER);
1268 public static final ElementName FECOMPONENTTRANSFER = new ElementName("fecomponenttransfer", "feComponentTransfer",
1269 // CPPONLY: NS_NewHTMLUnknownElement,
1270 // CPPONLY: NS_NewSVGFEComponentTransferElement,
1271 TreeBuilder.OTHER);
1272 public static final ElementName FILTER = new ElementName("filter", "filter",
1273 // CPPONLY: NS_NewHTMLUnknownElement,
1274 // CPPONLY: NS_NewSVGFilterElement,
1275 TreeBuilder.OTHER);
1276 public static final ElementName FOOTER = new ElementName("footer", "footer",
1277 // CPPONLY: NS_NewHTMLElement,
1278 // CPPONLY: NS_NewSVGUnknownElement,
1279 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_SEARCH_OR_SECTION_OR_SUMMARY | SPECIAL);
1280 public static final ElementName FEGAUSSIANBLUR = new ElementName("fegaussianblur", "feGaussianBlur",
1281 // CPPONLY: NS_NewHTMLUnknownElement,
1282 // CPPONLY: NS_NewSVGFEGaussianBlurElement,
1283 TreeBuilder.OTHER);
1284 public static final ElementName HEADER = new ElementName("header", "header",
1285 // CPPONLY: NS_NewHTMLElement,
1286 // CPPONLY: NS_NewSVGUnknownElement,
1287 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_SEARCH_OR_SECTION_OR_SUMMARY | SPECIAL);
1288 public static final ElementName MARKER = new ElementName("marker", "marker",
1289 // CPPONLY: NS_NewHTMLUnknownElement,
1290 // CPPONLY: NS_NewSVGMarkerElement,
1291 TreeBuilder.OTHER);
1292 public static final ElementName METER = new ElementName("meter", "meter",
1293 // CPPONLY: NS_NewHTMLMeterElement,
1294 // CPPONLY: NS_NewSVGUnknownElement,
1295 TreeBuilder.OTHER);
1296 public static final ElementName NOBR = new ElementName("nobr", "nobr",
1297 // CPPONLY: NS_NewHTMLElement,
1298 // CPPONLY: NS_NewSVGUnknownElement,
1299 TreeBuilder.NOBR);
1300 public static final ElementName TR = new ElementName("tr", "tr",
1301 // CPPONLY: NS_NewHTMLTableRowElement,
1302 // CPPONLY: NS_NewSVGUnknownElement,
1303 TreeBuilder.TR | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
1304 public static final ElementName ADDRESS = new ElementName("address", "address",
1305 // CPPONLY: NS_NewHTMLElement,
1306 // CPPONLY: NS_NewSVGUnknownElement,
1307 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_SEARCH_OR_SECTION_OR_SUMMARY | SPECIAL);
1308 public static final ElementName CANVAS = new ElementName("canvas", "canvas",
1309 // CPPONLY: NS_NewHTMLCanvasElement,
1310 // CPPONLY: NS_NewSVGUnknownElement,
1311 TreeBuilder.OTHER);
1312 public static final ElementName DEFS = new ElementName("defs", "defs",
1313 // CPPONLY: NS_NewHTMLUnknownElement,
1314 // CPPONLY: NS_NewSVGDefsElement,
1315 TreeBuilder.OTHER);
1316 public static final ElementName DETAILS = new ElementName("details", "details",
1317 // CPPONLY: NS_NewHTMLDetailsElement,
1318 // CPPONLY: NS_NewSVGUnknownElement,
1319 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_SEARCH_OR_SECTION_OR_SUMMARY | SPECIAL);
1320 public static final ElementName MS = new ElementName("ms", "ms",
1321 // CPPONLY: NS_NewHTMLUnknownElement,
1322 // CPPONLY: NS_NewSVGUnknownElement,
1323 TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
1324 public static final ElementName NOFRAMES = new ElementName("noframes", "noframes",
1325 // CPPONLY: NS_NewHTMLElement,
1326 // CPPONLY: NS_NewSVGUnknownElement,
1327 TreeBuilder.NOFRAMES | SPECIAL);
1328 public static final ElementName PROGRESS = new ElementName("progress", "progress",
1329 // CPPONLY: NS_NewHTMLProgressElement,
1330 // CPPONLY: NS_NewSVGUnknownElement,
1331 TreeBuilder.OTHER);
1332 public static final ElementName DT = new ElementName("dt", "dt",
1333 // CPPONLY: NS_NewHTMLElement,
1334 // CPPONLY: NS_NewSVGUnknownElement,
1335 TreeBuilder.DD_OR_DT | SPECIAL | OPTIONAL_END_TAG);
1336 public static final ElementName APPLET = new ElementName("applet", "applet",
1337 // CPPONLY: NS_NewHTMLUnknownElement,
1338 // CPPONLY: NS_NewSVGUnknownElement,
1339 TreeBuilder.MARQUEE_OR_APPLET | SPECIAL | SCOPING);
1340 public static final ElementName BASEFONT = new ElementName("basefont", "basefont",
1341 // CPPONLY: NS_NewHTMLElement,
1342 // CPPONLY: NS_NewSVGUnknownElement,
1343 TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
1344 public static final ElementName DATALIST = new ElementName("datalist", "datalist",
1345 // CPPONLY: NS_NewHTMLDataListElement,
1346 // CPPONLY: NS_NewSVGUnknownElement,
1347 TreeBuilder.OTHER);
1348 public static final ElementName FOREIGNOBJECT = new ElementName("foreignobject", "foreignObject",
1349 // CPPONLY: NS_NewHTMLUnknownElement,
1350 // CPPONLY: NS_NewSVGForeignObjectElement,
1351 TreeBuilder.FOREIGNOBJECT_OR_DESC | SCOPING_AS_SVG);
1352 public static final ElementName FIELDSET = new ElementName("fieldset", "fieldset",
1353 // CPPONLY: NS_NewHTMLFieldSetElement,
1354 // CPPONLY: NS_NewSVGUnknownElement,
1355 TreeBuilder.FIELDSET | SPECIAL);
1356 public static final ElementName FRAMESET = new ElementName("frameset", "frameset",
1357 // CPPONLY: NS_NewHTMLFrameSetElement,
1358 // CPPONLY: NS_NewSVGUnknownElement,
1359 TreeBuilder.FRAMESET | SPECIAL);
1360 public static final ElementName FEOFFSET = new ElementName("feoffset", "feOffset",
1361 // CPPONLY: NS_NewHTMLUnknownElement,
1362 // CPPONLY: NS_NewSVGFEOffsetElement,
1363 TreeBuilder.OTHER);
1364 public static final ElementName FESPOTLIGHT = new ElementName("fespotlight", "feSpotLight",
1365 // CPPONLY: NS_NewHTMLUnknownElement,
1366 // CPPONLY: NS_NewSVGFESpotLightElement,
1367 TreeBuilder.OTHER);
1368 public static final ElementName FEPOINTLIGHT = new ElementName("fepointlight", "fePointLight",
1369 // CPPONLY: NS_NewHTMLUnknownElement,
1370 // CPPONLY: NS_NewSVGFEPointLightElement,
1371 TreeBuilder.OTHER);
1372 public static final ElementName FEDISTANTLIGHT = new ElementName("fedistantlight", "feDistantLight",
1373 // CPPONLY: NS_NewHTMLUnknownElement,
1374 // CPPONLY: NS_NewSVGFEDistantLightElement,
1375 TreeBuilder.OTHER);
1376 public static final ElementName FONT = new ElementName("font", "font",
1377 // CPPONLY: NS_NewHTMLFontElement,
1378 // CPPONLY: NS_NewSVGUnknownElement,
1379 TreeBuilder.FONT);
1380 public static final ElementName INPUT = new ElementName("input", "input",
1381 // CPPONLY: NS_NewHTMLInputElement,
1382 // CPPONLY: NS_NewSVGUnknownElement,
1383 TreeBuilder.INPUT | SPECIAL);
1384 public static final ElementName LINEARGRADIENT = new ElementName("lineargradient", "linearGradient",
1385 // CPPONLY: NS_NewHTMLUnknownElement,
1386 // CPPONLY: NS_NewSVGLinearGradientElement,
1387 TreeBuilder.OTHER);
1388 public static final ElementName MTEXT = new ElementName("mtext", "mtext",
1389 // CPPONLY: NS_NewHTMLUnknownElement,
1390 // CPPONLY: NS_NewSVGUnknownElement,
1391 TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
1392 public static final ElementName NOSCRIPT = new ElementName("noscript", "noscript",
1393 // CPPONLY: NS_NewHTMLElement,
1394 // CPPONLY: NS_NewSVGUnknownElement,
1395 TreeBuilder.NOSCRIPT | SPECIAL);
1396 public static final ElementName RT = new ElementName("rt", "rt",
1397 // CPPONLY: NS_NewHTMLElement,
1398 // CPPONLY: NS_NewSVGUnknownElement,
1399 TreeBuilder.RT_OR_RP | OPTIONAL_END_TAG);
1400 public static final ElementName OBJECT = new ElementName("object", "object",
1401 // CPPONLY: NS_NewHTMLObjectElement,
1402 // CPPONLY: NS_NewSVGUnknownElement,
1403 TreeBuilder.OBJECT | SPECIAL | SCOPING);
1404 public static final ElementName OUTPUT = new ElementName("output", "output",
1405 // CPPONLY: NS_NewHTMLOutputElement,
1406 // CPPONLY: NS_NewSVGUnknownElement,
1407 TreeBuilder.OUTPUT);
1408 public static final ElementName PLAINTEXT = new ElementName("plaintext", "plaintext",
1409 // CPPONLY: NS_NewHTMLElement,
1410 // CPPONLY: NS_NewSVGUnknownElement,
1411 TreeBuilder.PLAINTEXT | SPECIAL);
1412 public static final ElementName TT = new ElementName("tt", "tt",
1413 // CPPONLY: NS_NewHTMLElement,
1414 // CPPONLY: NS_NewSVGUnknownElement,
1415 TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
1416 public static final ElementName RECT = new ElementName("rect", "rect",
1417 // CPPONLY: NS_NewHTMLUnknownElement,
1418 // CPPONLY: NS_NewSVGRectElement,
1419 TreeBuilder.OTHER);
1420 public static final ElementName RADIALGRADIENT = new ElementName("radialgradient", "radialGradient",
1421 // CPPONLY: NS_NewHTMLUnknownElement,
1422 // CPPONLY: NS_NewSVGRadialGradientElement,
1423 TreeBuilder.OTHER);
1424 public static final ElementName SELECT = new ElementName("select", "select",
1425 // CPPONLY: NS_NewHTMLSelectElement,
1426 // CPPONLY: NS_NewSVGUnknownElement,
1427 TreeBuilder.SELECT | SPECIAL);
1428 public static final ElementName SLOT = new ElementName("slot", "slot",
1429 // CPPONLY: NS_NewHTMLSlotElement,
1430 // CPPONLY: NS_NewSVGUnknownElement,
1431 TreeBuilder.OTHER);
1432 public static final ElementName SCRIPT = new ElementName("script", "script",
1433 // CPPONLY: NS_NewHTMLScriptElement,
1434 // CPPONLY: NS_NewSVGScriptElement,
1435 TreeBuilder.SCRIPT | SPECIAL);
1436 public static final ElementName TFOOT = new ElementName("tfoot", "tfoot",
1437 // CPPONLY: NS_NewHTMLTableSectionElement,
1438 // CPPONLY: NS_NewSVGUnknownElement,
1439 TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
1440 public static final ElementName TEXT = new ElementName("text", "text",
1441 // CPPONLY: NS_NewHTMLUnknownElement,
1442 // CPPONLY: NS_NewSVGTextElement,
1443 TreeBuilder.OTHER);
1444 public static final ElementName MENU = new ElementName("menu", "menu",
1445 // CPPONLY: NS_NewHTMLMenuElement,
1446 // CPPONLY: NS_NewSVGUnknownElement,
1447 TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
1448 public static final ElementName FEDROPSHADOW = new ElementName("fedropshadow", "feDropShadow",
1449 // CPPONLY: NS_NewHTMLUnknownElement,
1450 // CPPONLY: NS_NewSVGFEDropShadowElement,
1451 TreeBuilder.OTHER);
1452 public static final ElementName VIEW = new ElementName("view", "view",
1453 // CPPONLY: NS_NewHTMLUnknownElement,
1454 // CPPONLY: NS_NewSVGViewElement,
1455 TreeBuilder.OTHER);
1456 public static final ElementName FECOLORMATRIX = new ElementName("fecolormatrix", "feColorMatrix",
1457 // CPPONLY: NS_NewHTMLUnknownElement,
1458 // CPPONLY: NS_NewSVGFEColorMatrixElement,
1459 TreeBuilder.OTHER);
1460 public static final ElementName FECONVOLVEMATRIX = new ElementName("feconvolvematrix", "feConvolveMatrix",
1461 // CPPONLY: NS_NewHTMLUnknownElement,
1462 // CPPONLY: NS_NewSVGFEConvolveMatrixElement,
1463 TreeBuilder.OTHER);
1464 public static final ElementName BODY = new ElementName("body", "body",
1465 // CPPONLY: NS_NewHTMLBodyElement,
1466 // CPPONLY: NS_NewSVGUnknownElement,
1467 TreeBuilder.BODY | SPECIAL | OPTIONAL_END_TAG);
1468 public static final ElementName FEMORPHOLOGY = new ElementName("femorphology", "feMorphology",
1469 // CPPONLY: NS_NewHTMLUnknownElement,
1470 // CPPONLY: NS_NewSVGFEMorphologyElement,
1471 TreeBuilder.OTHER);
1472 public static final ElementName RUBY = new ElementName("ruby", "ruby",
1473 // CPPONLY: NS_NewHTMLElement,
1474 // CPPONLY: NS_NewSVGUnknownElement,
1475 TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
1476 public static final ElementName SUMMARY = new ElementName("summary", "summary",
1477 // CPPONLY: NS_NewHTMLSummaryElement,
1478 // CPPONLY: NS_NewSVGUnknownElement,
1479 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_SEARCH_OR_SECTION_OR_SUMMARY | SPECIAL);
1480 public static final ElementName TBODY = new ElementName("tbody", "tbody",
1481 // CPPONLY: NS_NewHTMLTableSectionElement,
1482 // CPPONLY: NS_NewSVGUnknownElement,
1483 TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
1484 private final static @NoLength ElementName[] ELEMENT_NAMES = {
1485 FIGCAPTION,
1486 CITE,
1487 FRAMESET,
1489 CLIPPATH,
1490 METER,
1491 RADIALGRADIENT,
1493 BGSOUND,
1494 SOURCE,
1497 NOFRAMES,
1498 MTEXT,
1499 VIEW,
1500 DIV,
1502 FEFUNCA,
1503 THEAD,
1504 FIGURE,
1505 GLYPHREF,
1506 TEXTPATH,
1507 ANIMATETRANSFORM,
1508 SECTION,
1510 CANVAS,
1511 BASEFONT,
1512 FEDISTANTLIGHT,
1513 OUTPUT,
1514 TFOOT,
1515 FEMORPHOLOGY,
1516 COL,
1517 MAP,
1518 SUP,
1521 FEFUNCB,
1522 HEAD,
1523 BASE,
1524 FEIMAGE,
1525 LINE,
1526 TITLE,
1527 FESPECULARLIGHTING,
1528 PATH,
1529 MARK,
1531 PARAM,
1532 OPTION,
1533 VIDEO,
1535 FOOTER,
1537 DETAILS,
1539 FOREIGNOBJECT,
1540 FESPOTLIGHT,
1541 INPUT,
1544 SLOT,
1545 MENU,
1546 FECONVOLVEMATRIX,
1547 SUMMARY,
1548 BDI,
1549 DFN,
1550 INS,
1551 PRE,
1552 SUB,
1553 USE,
1554 XMP,
1557 AREA,
1558 META,
1559 DESC,
1560 FEBLEND,
1561 NOEMBED,
1562 ARTICLE,
1563 CODE,
1564 FETURBULENCE,
1565 FETILE,
1566 IMAGE,
1567 POLYLINE,
1568 STYLE,
1569 TEMPLATE,
1570 FEFUNCG,
1571 STRONG,
1572 MATH,
1573 SEARCH,
1575 MASK,
1577 SYMBOL,
1579 BUTTON,
1580 KEYGEN,
1581 PATTERN,
1582 AUDIO,
1583 FEDISPLACEMENTMAP,
1584 SAMP,
1585 ANIMATECOLOR,
1586 FECOMPONENTTRANSFER,
1587 HEADER,
1588 NOBR,
1589 ADDRESS,
1590 DEFS,
1592 PROGRESS,
1593 APPLET,
1594 DATALIST,
1595 FIELDSET,
1596 FEOFFSET,
1597 FEPOINTLIGHT,
1598 FONT,
1599 LINEARGRADIENT,
1600 NOSCRIPT,
1601 OBJECT,
1602 PLAINTEXT,
1603 RECT,
1604 SELECT,
1605 SCRIPT,
1606 TEXT,
1607 FEDROPSHADOW,
1608 FECOLORMATRIX,
1609 BODY,
1610 RUBY,
1611 TBODY,
1612 BIG,
1613 BDO,
1614 DEL,
1615 DIR,
1616 IMG,
1617 KBD,
1618 NAV,
1620 RTC,
1621 SVG,
1622 SET,
1623 VAR,
1624 WBR,
1631 DATA,
1632 METADATA,
1633 TEXTAREA,
1636 EMBED,
1637 FEFLOOD,
1638 LEGEND,
1640 ASIDE,
1641 ANIMATE,
1642 BLOCKQUOTE,
1643 CIRCLE,
1644 ELLIPSE,
1645 FEMERGENODE,
1646 FEMERGE,
1647 FRAME,
1648 FECOMPOSITE,
1649 IFRAME,
1650 MARQUEE,
1651 PICTURE,
1652 STRIKE,
1653 TABLE,
1654 TIME,
1655 ALTGLYPHDEF,
1656 DIALOG,
1657 FEDIFFUSELIGHTING,
1658 LISTING,
1659 ALTGLYPH,
1660 MGLYPH,
1661 MPATH,
1663 SWITCH,
1665 LINK,
1666 MALIGNMARK,
1667 TRACK,
1668 HTML,
1669 LABEL,
1670 SMALL,
1671 ALTGLYPHITEM,
1672 ACRONYM,
1673 FORM,
1674 ANIMATEMOTION,
1675 CAPTION,
1677 MAIN,
1678 POLYGON,
1679 SPAN,
1680 TSPAN,
1682 COLGROUP,
1683 HGROUP,
1684 OPTGROUP,
1685 STOP,
1686 ABBR,
1687 CENTER,
1688 FEFUNCR,
1689 FILTER,
1690 FEGAUSSIANBLUR,
1691 MARKER,
1693 private final static int[] ELEMENT_HASHES = {
1694 1900845386,
1695 1748359220,
1696 2001349720,
1697 876609538,
1698 1798686984,
1699 1971465813,
1700 2007781534,
1701 59768833,
1702 1730965751,
1703 1756474198,
1704 1864368130,
1705 1938817026,
1706 1988763672,
1707 2005324101,
1708 2060065124,
1709 52490899,
1710 62390273,
1711 1682547543,
1712 1740181637,
1713 1749905526,
1714 1766992520,
1715 1807599880,
1716 1881498736,
1717 1907661127,
1718 1967128578,
1719 1982935782,
1720 1999397992,
1721 2001392798,
1722 2006329158,
1723 2008851557,
1724 2085266636,
1725 51961587,
1726 57206291,
1727 60352339,
1728 67108865,
1729 943718402,
1730 1699324759,
1731 1733890180,
1732 1747814436,
1733 1749715159,
1734 1752979652,
1735 1757146773,
1736 1783388498,
1737 1805502724,
1738 1854228692,
1739 1873281026,
1740 1889085973,
1741 1905563974,
1742 1925844629,
1743 1963982850,
1744 1967795958,
1745 1973420034,
1746 1983633431,
1747 1998585858,
1748 2001309869,
1749 2001392795,
1750 2003183333,
1751 2005925890,
1752 2006974466,
1753 2008325940,
1754 2021937364,
1755 2068523856,
1756 2092255447,
1757 51435587,
1758 52486755,
1759 55110883,
1760 58773795,
1761 60345171,
1762 61395251,
1763 62973651,
1764 68681729,
1765 910163970,
1766 1679960596,
1767 1686491348,
1768 1715310660,
1769 1733054663,
1770 1737099991,
1771 1747176599,
1772 1748100148,
1773 1749656156,
1774 1749801286,
1775 1751288021,
1776 1755076808,
1777 1756625221,
1778 1757268168,
1779 1783210839,
1780 1790207270,
1781 1803929812,
1782 1806805526,
1783 1818755074,
1784 1854245076,
1785 1870135298,
1786 1874102998,
1787 1881669634,
1788 1898753862,
1789 1903302038,
1790 1906135367,
1791 1914900309,
1792 1934172497,
1793 1941178676,
1794 1965334268,
1795 1967788867,
1796 1968836118,
1797 1971938532,
1798 1982173479,
1799 1983533124,
1800 1986527234,
1801 1990037800,
1802 1998724870,
1803 2000525512,
1804 2001349704,
1805 2001349736,
1806 2001392796,
1807 2001495140,
1808 2004635806,
1809 2005719336,
1810 2006028454,
1811 2006896969,
1812 2007601444,
1813 2008125638,
1814 2008340774,
1815 2008994116,
1816 2051837468,
1817 2068523853,
1818 2083120164,
1819 2091479332,
1820 2092557349,
1821 51434643,
1822 51438659,
1823 52485715,
1824 52488851,
1825 55104723,
1826 56151587,
1827 57733651,
1828 59244545,
1829 59821379,
1830 60347747,
1831 60354131,
1832 61925907,
1833 62450211,
1834 63438849,
1835 67633153,
1836 69730305,
1837 893386754,
1838 926941186,
1839 960495618,
1840 1681770564,
1841 1686489160,
1842 1689922072,
1843 1703936002,
1844 1730150402,
1845 1732381397,
1846 1733076167,
1847 1736200310,
1848 1738539010,
1849 1747048757,
1850 1747306711,
1851 1747838298,
1852 1748225318,
1853 1749395095,
1854 1749673195,
1855 1749723735,
1856 1749813541,
1857 1749932347,
1858 1751386406,
1859 1753362711,
1860 1755148615,
1861 1756600614,
1862 1757137429,
1863 1757157700,
1864 1763839627,
1865 1782357526,
1866 1783388497,
1867 1786534215,
1868 1797585096,
1869 1803876550,
1870 1803929861,
1871 1805647874,
1872 1806806678,
1873 1818230786,
1874 1853642948,
1875 1854228698,
1876 1857653029,
1877 1868312196,
1878 1870268949,
1879 1874053333,
1880 1881288348,
1881 1881613047,
1882 1884120164,
1883 1898223949,
1884 1899272519,
1885 1902641154,
1886 1904412884,
1887 1906087319,
1888 1907435316,
1889 1907959605,
1890 1919418370,
1891 1932928296,
1892 1935549734,
1893 1939219752,
1894 1941221172,
1895 1965115924,
1896 1966223078,
1897 1967760215,
1898 1967795910,
1899 1968053806,
1900 1971461414,