forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			1904 lines
		
	
	
	
		
			67 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			1904 lines
		
	
	
	
		
			67 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2008-2017 Mozilla Foundation
 | |
|  *
 | |
|  * Permission is hereby granted, free of charge, to any person obtaining a
 | |
|  * copy of this software and associated documentation files (the "Software"),
 | |
|  * to deal in the Software without restriction, including without limitation
 | |
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | |
|  * and/or sell copies of the Software, and to permit persons to whom the
 | |
|  * Software is furnished to do so, subject to the following conditions:
 | |
|  *
 | |
|  * The above copyright notice and this permission notice shall be included in
 | |
|  * all copies or substantial portions of the Software.
 | |
|  *
 | |
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | |
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | |
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 | |
|  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | |
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | |
|  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 | |
|  * DEALINGS IN THE SOFTWARE.
 | |
|  */
 | |
| 
 | |
| package nu.validator.htmlparser.impl;
 | |
| 
 | |
| // uncomment to regenerate self
 | |
| //import java.io.BufferedReader;
 | |
| //import java.io.File;
 | |
| //import java.io.FileInputStream;
 | |
| //import java.io.IOException;
 | |
| //import java.io.InputStreamReader;
 | |
| //import java.util.Arrays;
 | |
| //import java.util.Collections;
 | |
| //import java.util.HashMap;
 | |
| //import java.util.LinkedList;
 | |
| //import java.util.List;
 | |
| //import java.util.Map;
 | |
| //import java.util.Map.Entry;
 | |
| //import java.util.regex.Matcher;
 | |
| //import java.util.regex.Pattern;
 | |
| 
 | |
| import nu.validator.htmlparser.annotation.Inline;
 | |
| import nu.validator.htmlparser.annotation.Local;
 | |
| import nu.validator.htmlparser.annotation.NoLength;
 | |
| import nu.validator.htmlparser.annotation.Unsigned;
 | |
| import nu.validator.htmlparser.common.Interner;
 | |
| 
 | |
| public final class ElementName
 | |
|         // uncomment when regenerating self
 | |
| //        implements Comparable<ElementName>
 | |
| {
 | |
| 
 | |
|     /**
 | |
|      * The mask for extracting the dispatch group.
 | |
|      */
 | |
|     public static final int GROUP_MASK = 127;
 | |
| 
 | |
|     /**
 | |
|      * Indicates that the element is not a pre-interned element. Forbidden on
 | |
|      * preinterned elements.
 | |
|      */
 | |
|     public static final int NOT_INTERNED = (1 << 30);
 | |
| 
 | |
|     /**
 | |
|      * Indicates that the element is in the "special" category. This bit should
 | |
|      * not be pre-set on MathML or SVG specials--only on HTML specials.
 | |
|      */
 | |
|     public static final int SPECIAL = (1 << 29);
 | |
| 
 | |
|     /**
 | |
|      * The element is foster-parenting. This bit should be pre-set on elements
 | |
|      * that are foster-parenting as HTML.
 | |
|      */
 | |
|     public static final int FOSTER_PARENTING = (1 << 28);
 | |
| 
 | |
|     /**
 | |
|      * The element is scoping. This bit should be pre-set on elements that are
 | |
|      * scoping as HTML.
 | |
|      */
 | |
|     public static final int SCOPING = (1 << 27);
 | |
| 
 | |
|     /**
 | |
|      * The element is scoping as SVG.
 | |
|      */
 | |
|     public static final int SCOPING_AS_SVG = (1 << 26);
 | |
| 
 | |
|     /**
 | |
|      * The element is scoping as MathML.
 | |
|      */
 | |
|     public static final int SCOPING_AS_MATHML = (1 << 25);
 | |
| 
 | |
|     /**
 | |
|      * The element is an HTML integration point.
 | |
|      */
 | |
|     public static final int HTML_INTEGRATION_POINT = (1 << 24);
 | |
| 
 | |
|     /**
 | |
|      * The element has an optional end tag.
 | |
|      */
 | |
|     public static final int OPTIONAL_END_TAG = (1 << 23);
 | |
| 
 | |
|     private @Local String name;
 | |
| 
 | |
|     private @Local String camelCaseName;
 | |
| 
 | |
|     // CPPONLY: private @HtmlCreator Object htmlCreator;
 | |
| 
 | |
|     // CPPONLY: private @SvgCreator Object svgCreator;
 | |
| 
 | |
|     /**
 | |
|      * The lowest 7 bits are the dispatch group. The high bits are flags.
 | |
|      */
 | |
|     public final int flags;
 | |
| 
 | |
|     @Inline public @Local String getName() {
 | |
|         return name;
 | |
|     }
 | |
| 
 | |
|     @Inline public @Local String getCamelCaseName() {
 | |
|         return camelCaseName;
 | |
|     }
 | |
| 
 | |
|     // CPPONLY: @Inline public @HtmlCreator Object getHtmlCreator() {
 | |
|     // CPPONLY: return htmlCreator;
 | |
|     // CPPONLY: }
 | |
| 
 | |
|     // CPPONLY: @Inline public @SvgCreator Object getSvgCreator() {
 | |
|     // CPPONLY: return svgCreator;
 | |
|     // CPPONLY: }
 | |
| 
 | |
|     @Inline public int getFlags() {
 | |
|         return flags;
 | |
|     }
 | |
| 
 | |
|     @Inline public int getGroup() {
 | |
|         return flags & ElementName.GROUP_MASK;
 | |
|     }
 | |
| 
 | |
|     @Inline public boolean isInterned() {
 | |
|         return (flags & ElementName.NOT_INTERNED) == 0;
 | |
|     }
 | |
| 
 | |
|     @Inline static int levelOrderBinarySearch(int[] data, int key) {
 | |
|         int n = data.length;
 | |
|         int i = 0;
 | |
| 
 | |
|         while (i < n) {
 | |
|             int val = data[i];
 | |
|             if (val < key) {
 | |
|                 i = 2 * i + 2;
 | |
|             } else if (val > key) {
 | |
|                 i = 2 * i + 1;
 | |
|             } else {
 | |
|                 return i;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return -1;
 | |
|     }
 | |
| 
 | |
|     @Inline static ElementName elementNameByBuffer(@NoLength char[] buf,
 | |
|             int length, Interner interner) {
 | |
|         @Unsigned int hash = ElementName.bufToHash(buf, length);
 | |
|         int[] hashes;
 | |
|         hashes = ElementName.ELEMENT_HASHES;
 | |
|         int index = levelOrderBinarySearch(hashes, hash);
 | |
|         if (index < 0) {
 | |
|             return null;
 | |
|         } else {
 | |
|             ElementName elementName = ElementName.ELEMENT_NAMES[index];
 | |
|             @Local String name = elementName.name;
 | |
|             if (!Portability.localEqualsBuffer(name, buf, length)) {
 | |
|                 return null;
 | |
|             }
 | |
|             return elementName;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * This method has to return a unique positive integer for each well-known
 | |
|      * lower-cased element name.
 | |
|      *
 | |
|      * @param buf
 | |
|      * @param len
 | |
|      * @return
 | |
|      */
 | |
|     @Inline private static @Unsigned int bufToHash(@NoLength char[] buf,
 | |
|             int length) {
 | |
|         @Unsigned int len = length;
 | |
|         @Unsigned int first = buf[0];
 | |
|         first <<= 19;
 | |
|         @Unsigned int second = 1 << 23;
 | |
|         @Unsigned int third = 0;
 | |
|         @Unsigned int fourth = 0;
 | |
|         @Unsigned int fifth = 0;
 | |
|         if (length >= 4) {
 | |
|             second = buf[length - 4];
 | |
|             second <<= 4;
 | |
|             third = buf[length - 3];
 | |
|             third <<= 9;
 | |
|             fourth = buf[length - 2];
 | |
|             fourth <<= 14;
 | |
|             fifth = buf[length - 1];
 | |
|             fifth <<= 24;
 | |
|         } else if (length == 3) {
 | |
|             second = buf[1];
 | |
|             second <<= 4;
 | |
|             third = buf[2];
 | |
|             third <<= 9;
 | |
|         } else if (length == 2) {
 | |
|             second = buf[1];
 | |
|             second <<= 24;
 | |
|         }
 | |
|         return len + first + second + third + fourth + fifth;
 | |
|     }
 | |
| 
 | |
|     private ElementName(@Local String name, @Local String camelCaseName,
 | |
|             // CPPONLY: @HtmlCreator Object htmlCreator, @SvgCreator Object
 | |
|             // CPPONLY: svgCreator,
 | |
|             int flags) {
 | |
|         this.name = name;
 | |
|         this.camelCaseName = camelCaseName;
 | |
|         // CPPONLY: this.htmlCreator = htmlCreator;
 | |
|         // CPPONLY: this.svgCreator = svgCreator;
 | |
|         this.flags = flags;
 | |
|     }
 | |
| 
 | |
|     public ElementName() {
 | |
|         this.name = null;
 | |
|         this.camelCaseName = null;
 | |
|         // CPPONLY: this.htmlCreator = NS_NewHTMLUnknownElement;
 | |
|         // CPPONLY: this.svgCreator = NS_NewSVGUnknownElement;
 | |
|         this.flags = TreeBuilder.OTHER | NOT_INTERNED;
 | |
|     }
 | |
| 
 | |
|     public void destructor() {
 | |
|         // The translator adds refcount debug code here.
 | |
|     }
 | |
| 
 | |
|     @Inline public void setNameForNonInterned(@Local String name
 | |
|     // CPPONLY: , boolean custom
 | |
|     ) {
 | |
|         // No need to worry about refcounting the local name, because in the
 | |
|         // C++ case the scoped atom table remembers its own atoms.
 | |
|         this.name = name;
 | |
|         this.camelCaseName = name;
 | |
|         // CPPONLY: if (custom) {
 | |
|         // CPPONLY: this.htmlCreator = NS_NewCustomElement;
 | |
|         // CPPONLY: } else {
 | |
|         // CPPONLY: this.htmlCreator = NS_NewHTMLUnknownElement;
 | |
|         // CPPONLY: }
 | |
|         // The assertion below relies on TreeBuilder.OTHER being zero!
 | |
|         // TreeBuilder.OTHER isn't referenced here, because it would create
 | |
|         // a circular C++ header dependency given that this method is inlined.
 | |
|         assert this.flags == ElementName.NOT_INTERNED;
 | |
|     }
 | |
| 
 | |
|     // CPPONLY: @Inline public boolean isCustom() {
 | |
|     // CPPONLY: return this.htmlCreator == NS_NewCustomElement;
 | |
|     // CPPONLY: }
 | |
| 
 | |
|     public static final ElementName ANNOTATION_XML = new ElementName(
 | |
|             "annotation-xml", "annotation-xml",
 | |
|             // CPPONLY: NS_NewHTMLUnknownElement, NS_NewSVGUnknownElement,
 | |
|             TreeBuilder.ANNOTATION_XML | SCOPING_AS_MATHML);
 | |
| 
 | |
|     // START CODE ONLY USED FOR GENERATING CODE uncomment and run to regenerate
 | |
| 
 | |
| //    private static final Pattern HTML_TAG_DEF = Pattern.compile(
 | |
| //            "^HTML_TAG\\(([^,]+),\\s*([^,]+),\\s*[^,]+\\).*$");
 | |
| //
 | |
| //    private static final Pattern HTML_HTMLELEMENT_TAG_DEF = Pattern.compile(
 | |
| //            "^HTML_HTMLELEMENT_TAG\\(([^\\)]+)\\).*$");
 | |
| //
 | |
| //    private static final Pattern SVG_TAG_DEF = Pattern.compile(
 | |
| //            "^SVG_(?:FROM_PARSER_)?TAG\\(([^,]+),\\s*([^\\)]+)\\).*$");
 | |
| //
 | |
| //    private static final Map<String, String> htmlMap = new HashMap<String, String>();
 | |
| //
 | |
| //    private static final Map<String, String> svgMap = new HashMap<String, String>();
 | |
| //
 | |
| //    private static void ingestHtmlTags(File htmlList) throws IOException {
 | |
| //        // This doesn't need to be efficient, so let's make it easy to write.
 | |
| //        BufferedReader htmlReader = new BufferedReader(
 | |
| //                new InputStreamReader(new FileInputStream(htmlList), "utf-8"));
 | |
| //        try {
 | |
| //            String line;
 | |
| //            while ((line = htmlReader.readLine()) != null) {
 | |
| //                if (!line.startsWith("HTML_")) {
 | |
| //                    continue;
 | |
| //                }
 | |
| //                if (line.startsWith("HTML_OTHER")) {
 | |
| //                    continue;
 | |
| //                }
 | |
| //                Matcher m = HTML_TAG_DEF.matcher(line);
 | |
| //                if (m.matches()) {
 | |
| //                    String iface = m.group(2);
 | |
| //                    if ("Unknown".equals(iface)) {
 | |
| //                        continue;
 | |
| //                    }
 | |
| //                    htmlMap.put(m.group(1), "NS_NewHTML" + iface + "Element");
 | |
| //                } else {
 | |
| //                    m = HTML_HTMLELEMENT_TAG_DEF.matcher(line);
 | |
| //                    if (!m.matches()) {
 | |
| //                        throw new RuntimeException(
 | |
| //                                "Malformed HTML element definition: " + line);
 | |
| //                    }
 | |
| //                    htmlMap.put(m.group(1), "NS_NewHTMLElement");
 | |
| //                }
 | |
| //            }
 | |
| //        } finally {
 | |
| //            htmlReader.close();
 | |
| //        }
 | |
| //    }
 | |
| //
 | |
| //    private static void ingestSvgTags(File svgList) throws IOException {
 | |
| //        // This doesn't need to be efficient, so let's make it easy to write.
 | |
| //        BufferedReader svgReader = new BufferedReader(
 | |
| //                new InputStreamReader(new FileInputStream(svgList), "utf-8"));
 | |
| //        try {
 | |
| //            String line;
 | |
| //            while ((line = svgReader.readLine()) != null) {
 | |
| //                if (!line.startsWith("SVG_")) {
 | |
| //                    continue;
 | |
| //                }
 | |
| //                Matcher m = SVG_TAG_DEF.matcher(line);
 | |
| //                if (!m.matches()) {
 | |
| //                    throw new RuntimeException(
 | |
| //                            "Malformed SVG element definition: " + line);
 | |
| //                }
 | |
| //                String name = m.group(1);
 | |
| //                if ("svgSwitch".equals(name)) {
 | |
| //                    name = "switch";
 | |
| //                }
 | |
| //                svgMap.put(name, "NS_NewSVG" + m.group(2) + "Element");
 | |
| //            }
 | |
| //        } finally {
 | |
| //            svgReader.close();
 | |
| //        }
 | |
| //    }
 | |
| //
 | |
| //    private static String htmlCreator(String name) {
 | |
| //        String creator = htmlMap.remove(name);
 | |
| //        if (creator != null) {
 | |
| //            return creator;
 | |
| //        }
 | |
| //        return "NS_NewHTMLUnknownElement";
 | |
| //    }
 | |
| //
 | |
| //    private static String svgCreator(String name) {
 | |
| //        String creator = svgMap.remove(name);
 | |
| //        if (creator != null) {
 | |
| //            return creator;
 | |
| //        }
 | |
| //        return "NS_NewSVGUnknownElement";
 | |
| //    }
 | |
| //
 | |
| //    /**
 | |
| //     * @see java.lang.Object#toString()
 | |
| //     */
 | |
| //    @Override public String toString() {
 | |
| //        return "(\"" + name + "\", \"" + camelCaseName + "\", \n// CPP"
 | |
| //                + "ONLY: " + htmlCreator(name) + ",\n// CPP" + "ONLY: "
 | |
| //                + svgCreator(camelCaseName) + ", \n" + decomposedFlags() + ")";
 | |
| //    }
 | |
| //
 | |
| //    private String decomposedFlags() {
 | |
| //        StringBuilder buf = new StringBuilder("TreeBuilder.");
 | |
| //        buf.append(treeBuilderGroupToName());
 | |
| //        if ((flags & SPECIAL) != 0) {
 | |
| //            buf.append(" | SPECIAL");
 | |
| //        }
 | |
| //        if ((flags & FOSTER_PARENTING) != 0) {
 | |
| //            buf.append(" | FOSTER_PARENTING");
 | |
| //        }
 | |
| //        if ((flags & SCOPING) != 0) {
 | |
| //            buf.append(" | SCOPING");
 | |
| //        }
 | |
| //        if ((flags & SCOPING_AS_MATHML) != 0) {
 | |
| //            buf.append(" | SCOPING_AS_MATHML");
 | |
| //        }
 | |
| //        if ((flags & SCOPING_AS_SVG) != 0) {
 | |
| //            buf.append(" | SCOPING_AS_SVG");
 | |
| //        }
 | |
| //        if ((flags & OPTIONAL_END_TAG) != 0) {
 | |
| //            buf.append(" | OPTIONAL_END_TAG");
 | |
| //        }
 | |
| //        return buf.toString();
 | |
| //    }
 | |
| //
 | |
| //    private String constName() {
 | |
| //        char[] buf = new char[name.length()];
 | |
| //        for (int i = 0; i < name.length(); i++) {
 | |
| //            char c = name.charAt(i);
 | |
| //            if (c == '-') {
 | |
| //                if (!"annotation-xml".equals(name)) {
 | |
| //                    throw new RuntimeException(
 | |
| //                            "Non-annotation-xml element name with hyphen: "
 | |
| //                                    + name);
 | |
| //                }
 | |
| //                buf[i] = '_';
 | |
| //            } else if (c >= '0' && c <= '9') {
 | |
| //                buf[i] = c;
 | |
| //            } else {
 | |
| //                buf[i] = (char) (c - 0x20);
 | |
| //            }
 | |
| //        }
 | |
| //        return new String(buf);
 | |
| //    }
 | |
| //
 | |
| //    private int hash() {
 | |
| //        return bufToHash(name.toCharArray(), name.length());
 | |
| //    }
 | |
| //
 | |
| //    public int compareTo(ElementName other) {
 | |
| //        int thisHash = this.hash();
 | |
| //        int otherHash = other.hash();
 | |
| //        if (thisHash < otherHash) {
 | |
| //            return -1;
 | |
| //        } else if (thisHash == otherHash) {
 | |
| //            return 0;
 | |
| //        } else {
 | |
| //            return 1;
 | |
| //        }
 | |
| //    }
 | |
| //
 | |
| //    private String treeBuilderGroupToName() {
 | |
| //        switch (getGroup()) {
 | |
| //            case TreeBuilder.OTHER:
 | |
| //                return "OTHER";
 | |
| //            case TreeBuilder.A:
 | |
| //                return "A";
 | |
| //            case TreeBuilder.BASE:
 | |
| //                return "BASE";
 | |
| //            case TreeBuilder.BODY:
 | |
| //                return "BODY";
 | |
| //            case TreeBuilder.BR:
 | |
| //                return "BR";
 | |
| //            case TreeBuilder.BUTTON:
 | |
| //                return "BUTTON";
 | |
| //            case TreeBuilder.CAPTION:
 | |
| //                return "CAPTION";
 | |
| //            case TreeBuilder.COL:
 | |
| //                return "COL";
 | |
| //            case TreeBuilder.COLGROUP:
 | |
| //                return "COLGROUP";
 | |
| //            case TreeBuilder.FONT:
 | |
| //                return "FONT";
 | |
| //            case TreeBuilder.FORM:
 | |
| //                return "FORM";
 | |
| //            case TreeBuilder.FRAME:
 | |
| //                return "FRAME";
 | |
| //            case TreeBuilder.FRAMESET:
 | |
| //                return "FRAMESET";
 | |
| //            case TreeBuilder.IMAGE:
 | |
| //                return "IMAGE";
 | |
| //            case TreeBuilder.INPUT:
 | |
| //                return "INPUT";
 | |
| //            case TreeBuilder.LI:
 | |
| //                return "LI";
 | |
| //            case TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND:
 | |
| //                return "LINK_OR_BASEFONT_OR_BGSOUND";
 | |
| //            case TreeBuilder.MATH:
 | |
| //                return "MATH";
 | |
| //            case TreeBuilder.META:
 | |
| //                return "META";
 | |
| //            case TreeBuilder.SVG:
 | |
| //                return "SVG";
 | |
| //            case TreeBuilder.HEAD:
 | |
| //                return "HEAD";
 | |
| //            case TreeBuilder.HR:
 | |
| //                return "HR";
 | |
| //            case TreeBuilder.HTML:
 | |
| //                return "HTML";
 | |
| //            case TreeBuilder.KEYGEN:
 | |
| //                return "KEYGEN";
 | |
| //            case TreeBuilder.NOBR:
 | |
| //                return "NOBR";
 | |
| //            case TreeBuilder.NOFRAMES:
 | |
| //                return "NOFRAMES";
 | |
| //            case TreeBuilder.NOSCRIPT:
 | |
| //                return "NOSCRIPT";
 | |
| //            case TreeBuilder.OPTGROUP:
 | |
| //                return "OPTGROUP";
 | |
| //            case TreeBuilder.OPTION:
 | |
| //                return "OPTION";
 | |
| //            case TreeBuilder.P:
 | |
| //                return "P";
 | |
| //            case TreeBuilder.PLAINTEXT:
 | |
| //                return "PLAINTEXT";
 | |
| //            case TreeBuilder.SCRIPT:
 | |
| //                return "SCRIPT";
 | |
| //            case TreeBuilder.SELECT:
 | |
| //                return "SELECT";
 | |
| //            case TreeBuilder.STYLE:
 | |
| //                return "STYLE";
 | |
| //            case TreeBuilder.TABLE:
 | |
| //                return "TABLE";
 | |
| //            case TreeBuilder.TEXTAREA:
 | |
| //                return "TEXTAREA";
 | |
| //            case TreeBuilder.TITLE:
 | |
| //                return "TITLE";
 | |
| //            case TreeBuilder.TEMPLATE:
 | |
| //                return "TEMPLATE";
 | |
| //            case TreeBuilder.TR:
 | |
| //                return "TR";
 | |
| //            case TreeBuilder.XMP:
 | |
| //                return "XMP";
 | |
| //            case TreeBuilder.TBODY_OR_THEAD_OR_TFOOT:
 | |
| //                return "TBODY_OR_THEAD_OR_TFOOT";
 | |
| //            case TreeBuilder.TD_OR_TH:
 | |
| //                return "TD_OR_TH";
 | |
| //            case TreeBuilder.DD_OR_DT:
 | |
| //                return "DD_OR_DT";
 | |
| //            case TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6:
 | |
| //                return "H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6";
 | |
| //            case TreeBuilder.OBJECT:
 | |
| //                return "OBJECT";
 | |
| //            case TreeBuilder.OUTPUT:
 | |
| //                return "OUTPUT";
 | |
| //            case TreeBuilder.MARQUEE_OR_APPLET:
 | |
| //                return "MARQUEE_OR_APPLET";
 | |
| //            case TreeBuilder.PRE_OR_LISTING:
 | |
| //                return "PRE_OR_LISTING";
 | |
| //            case TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U:
 | |
| //                return "B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U";
 | |
| //            case TreeBuilder.UL_OR_OL_OR_DL:
 | |
| //                return "UL_OR_OL_OR_DL";
 | |
| //            case TreeBuilder.IFRAME:
 | |
| //                return "IFRAME";
 | |
| //            case TreeBuilder.NOEMBED:
 | |
| //                return "NOEMBED";
 | |
| //            case TreeBuilder.EMBED:
 | |
| //                return "EMBED";
 | |
| //            case TreeBuilder.IMG:
 | |
| //                return "IMG";
 | |
| //            case TreeBuilder.AREA_OR_WBR:
 | |
| //                return "AREA_OR_WBR";
 | |
| //            case TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
 | |
| //                return "DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU";
 | |
| //            case TreeBuilder.FIELDSET:
 | |
| //                return "FIELDSET";
 | |
| //            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:
 | |
| //                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";
 | |
| //            case TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR:
 | |
| //                return "RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR";
 | |
| //            case TreeBuilder.RB_OR_RTC:
 | |
| //                return "RB_OR_RTC";
 | |
| //            case TreeBuilder.RT_OR_RP:
 | |
| //                return "RT_OR_RP";
 | |
| //            case TreeBuilder.PARAM_OR_SOURCE_OR_TRACK:
 | |
| //                return "PARAM_OR_SOURCE_OR_TRACK";
 | |
| //            case TreeBuilder.MGLYPH_OR_MALIGNMARK:
 | |
| //                return "MGLYPH_OR_MALIGNMARK";
 | |
| //            case TreeBuilder.MI_MO_MN_MS_MTEXT:
 | |
| //                return "MI_MO_MN_MS_MTEXT";
 | |
| //            case TreeBuilder.ANNOTATION_XML:
 | |
| //                return "ANNOTATION_XML";
 | |
| //            case TreeBuilder.FOREIGNOBJECT_OR_DESC:
 | |
| //                return "FOREIGNOBJECT_OR_DESC";
 | |
| //            case TreeBuilder.MENUITEM:
 | |
| //                return "MENUITEM";
 | |
| //        }
 | |
| //        return null;
 | |
| //    }
 | |
| //
 | |
| //    private static void fillLevelOrderArray(List<ElementName> sorted, int depth,
 | |
| //            int rootIdx, ElementName[] levelOrder) {
 | |
| //        if (rootIdx >= levelOrder.length) {
 | |
| //            return;
 | |
| //        }
 | |
| //
 | |
| //        if (depth > 0) {
 | |
| //            fillLevelOrderArray(sorted, depth - 1, rootIdx * 2 + 1, levelOrder);
 | |
| //        }
 | |
| //
 | |
| //        if (!sorted.isEmpty()) {
 | |
| //            levelOrder[rootIdx] = sorted.remove(0);
 | |
| //        }
 | |
| //
 | |
| //        if (depth > 0) {
 | |
| //            fillLevelOrderArray(sorted, depth - 1, rootIdx * 2 + 2, levelOrder);
 | |
| //        }
 | |
| //    }
 | |
| //
 | |
| //    /**
 | |
| //     * Regenerate self
 | |
| //     *
 | |
| //     * The args should be the paths to m-c files
 | |
| //     * parser/htmlparser/nsHTMLTagList.h and dom/svg/SVGTagList.h.
 | |
| //     */
 | |
| //    public static void main(String[] args) {
 | |
| //        File htmlList = new File(args[0]);
 | |
| //        File svgList = new File(args[1]);
 | |
| //        try {
 | |
| //            ingestHtmlTags(htmlList);
 | |
| //        } catch (IOException e) {
 | |
| //            throw new RuntimeException(e);
 | |
| //        }
 | |
| //        try {
 | |
| //            ingestSvgTags(svgList);
 | |
| //        } catch (IOException e) {
 | |
| //            throw new RuntimeException(e);
 | |
| //        }
 | |
| //
 | |
| //        Arrays.sort(ELEMENT_NAMES);
 | |
| //        for (int i = 0; i < ELEMENT_NAMES.length; i++) {
 | |
| //            int hash = ELEMENT_NAMES[i].hash();
 | |
| //            if (hash < 0) {
 | |
| //                System.err.println("Negative hash: " + ELEMENT_NAMES[i].name);
 | |
| //                return;
 | |
| //            }
 | |
| //            for (int j = i + 1; j < ELEMENT_NAMES.length; j++) {
 | |
| //                if (hash == ELEMENT_NAMES[j].hash()) {
 | |
| //                    System.err.println(
 | |
| //                            "Hash collision: " + ELEMENT_NAMES[i].name + ", "
 | |
| //                                    + ELEMENT_NAMES[j].name);
 | |
| //                    return;
 | |
| //                }
 | |
| //            }
 | |
| //        }
 | |
| //        for (int i = 0; i < ELEMENT_NAMES.length; i++) {
 | |
| //            ElementName el = ELEMENT_NAMES[i];
 | |
| //            System.out.println(
 | |
| //                    "public static final ElementName " + el.constName()
 | |
| //                            + " = new ElementName" + el.toString() + ";");
 | |
| //        }
 | |
| //
 | |
| //        LinkedList<ElementName> sortedNames = new LinkedList<ElementName>();
 | |
| //        Collections.addAll(sortedNames, ELEMENT_NAMES);
 | |
| //        ElementName[] levelOrder = new ElementName[ELEMENT_NAMES.length];
 | |
| //        int bstDepth = (int) Math.ceil(
 | |
| //                Math.log(ELEMENT_NAMES.length) / Math.log(2));
 | |
| //        fillLevelOrderArray(sortedNames, bstDepth, 0, levelOrder);
 | |
| //
 | |
| //        System.out.println(
 | |
| //                "private final static @NoLength ElementName[] ELEMENT_NAMES = {");
 | |
| //        for (int i = 0; i < levelOrder.length; i++) {
 | |
| //            ElementName el = levelOrder[i];
 | |
| //            System.out.println(el.constName() + ",");
 | |
| //        }
 | |
| //        System.out.println("};");
 | |
| //        System.out.println("private final static int[] ELEMENT_HASHES = {");
 | |
| //        for (int i = 0; i < levelOrder.length; i++) {
 | |
| //            ElementName el = levelOrder[i];
 | |
| //            System.out.println(Integer.toString(el.hash()) + ",");
 | |
| //        }
 | |
| //        System.out.println("};");
 | |
| //
 | |
| //        for (Entry<String, String> entry : htmlMap.entrySet()) {
 | |
| //            System.err.println("Missing HTML element: " + entry.getKey());
 | |
| //        }
 | |
| //        for (Entry<String, String> entry : svgMap.entrySet()) {
 | |
| //            System.err.println("Missing SVG element: " + entry.getKey());
 | |
| //        }
 | |
| //    }
 | |
| 
 | |
|     // START GENERATED CODE
 | |
| public static final ElementName BIG = new ElementName("big", "big", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName BDI = new ElementName("bdi", "bdi", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName BDO = new ElementName("bdo", "bdo", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName COL = new ElementName("col", "col", 
 | |
| // CPPONLY: NS_NewHTMLTableColElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.COL | SPECIAL);
 | |
| public static final ElementName DEL = new ElementName("del", "del", 
 | |
| // CPPONLY: NS_NewHTMLModElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName DFN = new ElementName("dfn", "dfn", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName DIR = new ElementName("dir", "dir", 
 | |
| // CPPONLY: NS_NewHTMLSharedElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName DIV = new ElementName("div", "div", 
 | |
| // CPPONLY: NS_NewHTMLDivElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
 | |
| public static final ElementName IMG = new ElementName("img", "img", 
 | |
| // CPPONLY: NS_NewHTMLImageElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.IMG | SPECIAL);
 | |
| public static final ElementName INS = new ElementName("ins", "ins", 
 | |
| // CPPONLY: NS_NewHTMLModElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName KBD = new ElementName("kbd", "kbd", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName MAP = new ElementName("map", "map", 
 | |
| // CPPONLY: NS_NewHTMLMapElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName NAV = new ElementName("nav", "nav", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName PRE = new ElementName("pre", "pre", 
 | |
| // CPPONLY: NS_NewHTMLPreElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.PRE_OR_LISTING | SPECIAL);
 | |
| public static final ElementName A = new ElementName("a", "a", 
 | |
| // CPPONLY: NS_NewHTMLAnchorElement,
 | |
| // CPPONLY: NS_NewSVGAElement, 
 | |
| TreeBuilder.A);
 | |
| public static final ElementName B = new ElementName("b", "b", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName RTC = new ElementName("rtc", "rtc", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.RB_OR_RTC | OPTIONAL_END_TAG);
 | |
| public static final ElementName SUB = new ElementName("sub", "sub", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
 | |
| public static final ElementName SVG = new ElementName("svg", "svg", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGSVGElement, 
 | |
| TreeBuilder.SVG);
 | |
| public static final ElementName SUP = new ElementName("sup", "sup", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
 | |
| public static final ElementName SET = new ElementName("set", "set", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGSetElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName USE = new ElementName("use", "use", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUseElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName VAR = new ElementName("var", "var", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
 | |
| public static final ElementName G = new ElementName("g", "g", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGGElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName WBR = new ElementName("wbr", "wbr", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.AREA_OR_WBR | SPECIAL);
 | |
| public static final ElementName XMP = new ElementName("xmp", "xmp", 
 | |
| // CPPONLY: NS_NewHTMLPreElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.XMP | SPECIAL);
 | |
| public static final ElementName I = new ElementName("i", "i", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName P = new ElementName("p", "p", 
 | |
| // CPPONLY: NS_NewHTMLParagraphElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.P | SPECIAL | OPTIONAL_END_TAG);
 | |
| public static final ElementName Q = new ElementName("q", "q", 
 | |
| // CPPONLY: NS_NewHTMLSharedElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName S = new ElementName("s", "s", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName U = new ElementName("u", "u", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName H1 = new ElementName("h1", "h1", 
 | |
| // CPPONLY: NS_NewHTMLHeadingElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
 | |
| public static final ElementName H2 = new ElementName("h2", "h2", 
 | |
| // CPPONLY: NS_NewHTMLHeadingElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
 | |
| public static final ElementName H3 = new ElementName("h3", "h3", 
 | |
| // CPPONLY: NS_NewHTMLHeadingElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
 | |
| public static final ElementName H4 = new ElementName("h4", "h4", 
 | |
| // CPPONLY: NS_NewHTMLHeadingElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
 | |
| public static final ElementName H5 = new ElementName("h5", "h5", 
 | |
| // CPPONLY: NS_NewHTMLHeadingElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
 | |
| public static final ElementName H6 = new ElementName("h6", "h6", 
 | |
| // CPPONLY: NS_NewHTMLHeadingElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
 | |
| public static final ElementName AREA = new ElementName("area", "area", 
 | |
| // CPPONLY: NS_NewHTMLAreaElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.AREA_OR_WBR | SPECIAL);
 | |
| public static final ElementName DATA = new ElementName("data", "data", 
 | |
| // CPPONLY: NS_NewHTMLDataElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FEFUNCA = new ElementName("fefunca", "feFuncA", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEFuncAElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName METADATA = new ElementName("metadata", "metadata", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGMetadataElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName META = new ElementName("meta", "meta", 
 | |
| // CPPONLY: NS_NewHTMLMetaElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.META | SPECIAL);
 | |
| public static final ElementName TEXTAREA = new ElementName("textarea", "textarea", 
 | |
| // CPPONLY: NS_NewHTMLTextAreaElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.TEXTAREA | SPECIAL);
 | |
| public static final ElementName FEFUNCB = new ElementName("fefuncb", "feFuncB", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEFuncBElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName RB = new ElementName("rb", "rb", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.RB_OR_RTC | OPTIONAL_END_TAG);
 | |
| public static final ElementName DESC = new ElementName("desc", "desc", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGDescElement, 
 | |
| TreeBuilder.FOREIGNOBJECT_OR_DESC | SCOPING_AS_SVG);
 | |
| public static final ElementName DD = new ElementName("dd", "dd", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.DD_OR_DT | SPECIAL | OPTIONAL_END_TAG);
 | |
| public static final ElementName BGSOUND = new ElementName("bgsound", "bgsound", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
 | |
| public static final ElementName EMBED = new ElementName("embed", "embed", 
 | |
| // CPPONLY: NS_NewHTMLEmbedElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.EMBED | SPECIAL);
 | |
| public static final ElementName FEBLEND = new ElementName("feblend", "feBlend", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEBlendElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FEFLOOD = new ElementName("feflood", "feFlood", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEFloodElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName HEAD = new ElementName("head", "head", 
 | |
| // CPPONLY: NS_NewHTMLSharedElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.HEAD | SPECIAL | OPTIONAL_END_TAG);
 | |
| public static final ElementName LEGEND = new ElementName("legend", "legend", 
 | |
| // CPPONLY: NS_NewHTMLLegendElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName NOEMBED = new ElementName("noembed", "noembed", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.NOEMBED | SPECIAL);
 | |
| public static final ElementName TD = new ElementName("td", "td", 
 | |
| // CPPONLY: NS_NewHTMLTableCellElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.TD_OR_TH | SPECIAL | SCOPING | OPTIONAL_END_TAG);
 | |
| public static final ElementName THEAD = new ElementName("thead", "thead", 
 | |
| // CPPONLY: NS_NewHTMLTableSectionElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
 | |
| public static final ElementName ASIDE = new ElementName("aside", "aside", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName ARTICLE = new ElementName("article", "article", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName ANIMATE = new ElementName("animate", "animate", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGAnimateElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName BASE = new ElementName("base", "base", 
 | |
| // CPPONLY: NS_NewHTMLSharedElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.BASE | SPECIAL);
 | |
| public static final ElementName BLOCKQUOTE = new ElementName("blockquote", "blockquote", 
 | |
| // CPPONLY: NS_NewHTMLSharedElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
 | |
| public static final ElementName CODE = new ElementName("code", "code", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName CIRCLE = new ElementName("circle", "circle", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGCircleElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName CITE = new ElementName("cite", "cite", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName ELLIPSE = new ElementName("ellipse", "ellipse", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGEllipseElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FETURBULENCE = new ElementName("feturbulence", "feTurbulence", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFETurbulenceElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FEMERGENODE = new ElementName("femergenode", "feMergeNode", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEMergeNodeElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FEIMAGE = new ElementName("feimage", "feImage", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEImageElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FEMERGE = new ElementName("femerge", "feMerge", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEMergeElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FETILE = new ElementName("fetile", "feTile", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFETileElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FRAME = new ElementName("frame", "frame", 
 | |
| // CPPONLY: NS_NewHTMLFrameElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.FRAME | SPECIAL);
 | |
| public static final ElementName FIGURE = new ElementName("figure", "figure", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName FECOMPOSITE = new ElementName("fecomposite", "feComposite", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFECompositeElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName IMAGE = new ElementName("image", "image", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGImageElement, 
 | |
| TreeBuilder.IMAGE);
 | |
| public static final ElementName IFRAME = new ElementName("iframe", "iframe", 
 | |
| // CPPONLY: NS_NewHTMLIFrameElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.IFRAME | SPECIAL);
 | |
| public static final ElementName LINE = new ElementName("line", "line", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGLineElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName MARQUEE = new ElementName("marquee", "marquee", 
 | |
| // CPPONLY: NS_NewHTMLDivElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MARQUEE_OR_APPLET | SPECIAL | SCOPING);
 | |
| public static final ElementName POLYLINE = new ElementName("polyline", "polyline", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGPolylineElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName PICTURE = new ElementName("picture", "picture", 
 | |
| // CPPONLY: NS_NewHTMLPictureElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName SOURCE = new ElementName("source", "source", 
 | |
| // CPPONLY: NS_NewHTMLSourceElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.PARAM_OR_SOURCE_OR_TRACK);
 | |
| public static final ElementName STRIKE = new ElementName("strike", "strike", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName STYLE = new ElementName("style", "style", 
 | |
| // CPPONLY: NS_NewHTMLStyleElement,
 | |
| // CPPONLY: NS_NewSVGStyleElement, 
 | |
| TreeBuilder.STYLE | SPECIAL);
 | |
| public static final ElementName TABLE = new ElementName("table", "table", 
 | |
| // CPPONLY: NS_NewHTMLTableElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.TABLE | SPECIAL | FOSTER_PARENTING | SCOPING);
 | |
| public static final ElementName TITLE = new ElementName("title", "title", 
 | |
| // CPPONLY: NS_NewHTMLTitleElement,
 | |
| // CPPONLY: NS_NewSVGTitleElement, 
 | |
| TreeBuilder.TITLE | SPECIAL | SCOPING_AS_SVG);
 | |
| public static final ElementName TIME = new ElementName("time", "time", 
 | |
| // CPPONLY: NS_NewHTMLTimeElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName TEMPLATE = new ElementName("template", "template", 
 | |
| // CPPONLY: NS_NewHTMLTemplateElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.TEMPLATE | SPECIAL | SCOPING);
 | |
| public static final ElementName ALTGLYPHDEF = new ElementName("altglyphdef", "altGlyphDef", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName GLYPHREF = new ElementName("glyphref", "glyphRef", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName DIALOG = new ElementName("dialog", "dialog", 
 | |
| // CPPONLY: NS_NewHTMLDialogElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName FEFUNCG = new ElementName("fefuncg", "feFuncG", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEFuncGElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FEDIFFUSELIGHTING = new ElementName("fediffuselighting", "feDiffuseLighting", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEDiffuseLightingElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FESPECULARLIGHTING = new ElementName("fespecularlighting", "feSpecularLighting", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFESpecularLightingElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName LISTING = new ElementName("listing", "listing", 
 | |
| // CPPONLY: NS_NewHTMLPreElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.PRE_OR_LISTING | SPECIAL);
 | |
| public static final ElementName STRONG = new ElementName("strong", "strong", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName ALTGLYPH = new ElementName("altglyph", "altGlyph", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName CLIPPATH = new ElementName("clippath", "clipPath", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGClipPathElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName MGLYPH = new ElementName("mglyph", "mglyph", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MGLYPH_OR_MALIGNMARK);
 | |
| public static final ElementName MATH = new ElementName("math", "math", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MATH);
 | |
| public static final ElementName MPATH = new ElementName("mpath", "mpath", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGMPathElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName PATH = new ElementName("path", "path", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGPathElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName TH = new ElementName("th", "th", 
 | |
| // CPPONLY: NS_NewHTMLTableCellElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.TD_OR_TH | SPECIAL | SCOPING | OPTIONAL_END_TAG);
 | |
| public static final ElementName SWITCH = new ElementName("switch", "switch", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGSwitchElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName TEXTPATH = new ElementName("textpath", "textPath", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGTextPathElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName LI = new ElementName("li", "li", 
 | |
| // CPPONLY: NS_NewHTMLLIElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.LI | SPECIAL | OPTIONAL_END_TAG);
 | |
| public static final ElementName MI = new ElementName("mi", "mi", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
 | |
| public static final ElementName LINK = new ElementName("link", "link", 
 | |
| // CPPONLY: NS_NewHTMLLinkElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
 | |
| public static final ElementName MARK = new ElementName("mark", "mark", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName MALIGNMARK = new ElementName("malignmark", "malignmark", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MGLYPH_OR_MALIGNMARK);
 | |
| public static final ElementName MASK = new ElementName("mask", "mask", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGMaskElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName TRACK = new ElementName("track", "track", 
 | |
| // CPPONLY: NS_NewHTMLTrackElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.PARAM_OR_SOURCE_OR_TRACK | SPECIAL);
 | |
| public static final ElementName DL = new ElementName("dl", "dl", 
 | |
| // CPPONLY: NS_NewHTMLSharedListElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
 | |
| public static final ElementName HTML = new ElementName("html", "html", 
 | |
| // CPPONLY: NS_NewHTMLSharedElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.HTML | SPECIAL | SCOPING | OPTIONAL_END_TAG);
 | |
| public static final ElementName OL = new ElementName("ol", "ol", 
 | |
| // CPPONLY: NS_NewHTMLSharedListElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
 | |
| public static final ElementName LABEL = new ElementName("label", "label", 
 | |
| // CPPONLY: NS_NewHTMLLabelElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName UL = new ElementName("ul", "ul", 
 | |
| // CPPONLY: NS_NewHTMLSharedListElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
 | |
| public static final ElementName SMALL = new ElementName("small", "small", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName SYMBOL = new ElementName("symbol", "symbol", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGSymbolElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName ALTGLYPHITEM = new ElementName("altglyphitem", "altGlyphItem", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName ANIMATETRANSFORM = new ElementName("animatetransform", "animateTransform", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGAnimateTransformElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName ACRONYM = new ElementName("acronym", "acronym", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName EM = new ElementName("em", "em", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName FORM = new ElementName("form", "form", 
 | |
| // CPPONLY: NS_NewHTMLFormElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.FORM | SPECIAL);
 | |
| public static final ElementName MENUITEM = new ElementName("menuitem", "menuitem", 
 | |
| // CPPONLY: NS_NewHTMLMenuItemElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MENUITEM);
 | |
| public static final ElementName PARAM = new ElementName("param", "param", 
 | |
| // CPPONLY: NS_NewHTMLSharedElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.PARAM_OR_SOURCE_OR_TRACK | SPECIAL);
 | |
| public static final ElementName ANIMATEMOTION = new ElementName("animatemotion", "animateMotion", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGAnimateMotionElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName BUTTON = new ElementName("button", "button", 
 | |
| // CPPONLY: NS_NewHTMLButtonElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.BUTTON | SPECIAL);
 | |
| public static final ElementName CAPTION = new ElementName("caption", "caption", 
 | |
| // CPPONLY: NS_NewHTMLTableCaptionElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.CAPTION | SPECIAL | SCOPING);
 | |
| public static final ElementName FIGCAPTION = new ElementName("figcaption", "figcaption", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName MN = new ElementName("mn", "mn", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
 | |
| public static final ElementName KEYGEN = new ElementName("keygen", "keygen", 
 | |
| // CPPONLY: NS_NewHTMLSpanElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.KEYGEN);
 | |
| public static final ElementName MAIN = new ElementName("main", "main", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName OPTION = new ElementName("option", "option", 
 | |
| // CPPONLY: NS_NewHTMLOptionElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OPTION | OPTIONAL_END_TAG);
 | |
| public static final ElementName POLYGON = new ElementName("polygon", "polygon", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGPolygonElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName PATTERN = new ElementName("pattern", "pattern", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGPatternElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName SPAN = new ElementName("span", "span", 
 | |
| // CPPONLY: NS_NewHTMLSpanElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
 | |
| public static final ElementName SECTION = new ElementName("section", "section", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName TSPAN = new ElementName("tspan", "tspan", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGTSpanElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName AUDIO = new ElementName("audio", "audio", 
 | |
| // CPPONLY: NS_NewHTMLAudioElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName MO = new ElementName("mo", "mo", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
 | |
| public static final ElementName VIDEO = new ElementName("video", "video", 
 | |
| // CPPONLY: NS_NewHTMLVideoElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName COLGROUP = new ElementName("colgroup", "colgroup", 
 | |
| // CPPONLY: NS_NewHTMLTableColElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.COLGROUP | SPECIAL | OPTIONAL_END_TAG);
 | |
| public static final ElementName FEDISPLACEMENTMAP = new ElementName("fedisplacementmap", "feDisplacementMap", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEDisplacementMapElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName HGROUP = new ElementName("hgroup", "hgroup", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName RP = new ElementName("rp", "rp", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.RT_OR_RP | OPTIONAL_END_TAG);
 | |
| public static final ElementName OPTGROUP = new ElementName("optgroup", "optgroup", 
 | |
| // CPPONLY: NS_NewHTMLOptGroupElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OPTGROUP | OPTIONAL_END_TAG);
 | |
| public static final ElementName SAMP = new ElementName("samp", "samp", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName STOP = new ElementName("stop", "stop", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGStopElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName BR = new ElementName("br", "br", 
 | |
| // CPPONLY: NS_NewHTMLBRElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.BR | SPECIAL);
 | |
| public static final ElementName ABBR = new ElementName("abbr", "abbr", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName ANIMATECOLOR = new ElementName("animatecolor", "animateColor", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName CENTER = new ElementName("center", "center", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
 | |
| public static final ElementName HR = new ElementName("hr", "hr", 
 | |
| // CPPONLY: NS_NewHTMLHRElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.HR | SPECIAL);
 | |
| public static final ElementName FEFUNCR = new ElementName("fefuncr", "feFuncR", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEFuncRElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FECOMPONENTTRANSFER = new ElementName("fecomponenttransfer", "feComponentTransfer", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEComponentTransferElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FILTER = new ElementName("filter", "filter", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFilterElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FOOTER = new ElementName("footer", "footer", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName FEGAUSSIANBLUR = new ElementName("fegaussianblur", "feGaussianBlur", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEGaussianBlurElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName HEADER = new ElementName("header", "header", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName MARKER = new ElementName("marker", "marker", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGMarkerElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName METER = new ElementName("meter", "meter", 
 | |
| // CPPONLY: NS_NewHTMLMeterElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName NOBR = new ElementName("nobr", "nobr", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.NOBR);
 | |
| public static final ElementName TR = new ElementName("tr", "tr", 
 | |
| // CPPONLY: NS_NewHTMLTableRowElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.TR | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
 | |
| public static final ElementName ADDRESS = new ElementName("address", "address", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName CANVAS = new ElementName("canvas", "canvas", 
 | |
| // CPPONLY: NS_NewHTMLCanvasElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName DEFS = new ElementName("defs", "defs", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGDefsElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName DETAILS = new ElementName("details", "details", 
 | |
| // CPPONLY: NS_NewHTMLDetailsElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName MS = new ElementName("ms", "ms", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
 | |
| public static final ElementName NOFRAMES = new ElementName("noframes", "noframes", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.NOFRAMES | SPECIAL);
 | |
| public static final ElementName PROGRESS = new ElementName("progress", "progress", 
 | |
| // CPPONLY: NS_NewHTMLProgressElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName DT = new ElementName("dt", "dt", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.DD_OR_DT | SPECIAL | OPTIONAL_END_TAG);
 | |
| public static final ElementName APPLET = new ElementName("applet", "applet", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MARQUEE_OR_APPLET | SPECIAL | SCOPING);
 | |
| public static final ElementName BASEFONT = new ElementName("basefont", "basefont", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
 | |
| public static final ElementName DATALIST = new ElementName("datalist", "datalist", 
 | |
| // CPPONLY: NS_NewHTMLDataListElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FOREIGNOBJECT = new ElementName("foreignobject", "foreignObject", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGForeignObjectElement, 
 | |
| TreeBuilder.FOREIGNOBJECT_OR_DESC | SCOPING_AS_SVG);
 | |
| public static final ElementName FIELDSET = new ElementName("fieldset", "fieldset", 
 | |
| // CPPONLY: NS_NewHTMLFieldSetElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.FIELDSET | SPECIAL);
 | |
| public static final ElementName FRAMESET = new ElementName("frameset", "frameset", 
 | |
| // CPPONLY: NS_NewHTMLFrameSetElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.FRAMESET | SPECIAL);
 | |
| public static final ElementName FEOFFSET = new ElementName("feoffset", "feOffset", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEOffsetElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FESPOTLIGHT = new ElementName("fespotlight", "feSpotLight", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFESpotLightElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FEPOINTLIGHT = new ElementName("fepointlight", "fePointLight", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEPointLightElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FEDISTANTLIGHT = new ElementName("fedistantlight", "feDistantLight", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEDistantLightElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FONT = new ElementName("font", "font", 
 | |
| // CPPONLY: NS_NewHTMLFontElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.FONT);
 | |
| public static final ElementName INPUT = new ElementName("input", "input", 
 | |
| // CPPONLY: NS_NewHTMLInputElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.INPUT | SPECIAL);
 | |
| public static final ElementName LINEARGRADIENT = new ElementName("lineargradient", "linearGradient", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGLinearGradientElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName MTEXT = new ElementName("mtext", "mtext", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
 | |
| public static final ElementName NOSCRIPT = new ElementName("noscript", "noscript", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.NOSCRIPT | SPECIAL);
 | |
| public static final ElementName RT = new ElementName("rt", "rt", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.RT_OR_RP | OPTIONAL_END_TAG);
 | |
| public static final ElementName OBJECT = new ElementName("object", "object", 
 | |
| // CPPONLY: NS_NewHTMLObjectElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OBJECT | SPECIAL | SCOPING);
 | |
| public static final ElementName OUTPUT = new ElementName("output", "output", 
 | |
| // CPPONLY: NS_NewHTMLOutputElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OUTPUT);
 | |
| public static final ElementName PLAINTEXT = new ElementName("plaintext", "plaintext", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.PLAINTEXT | SPECIAL);
 | |
| public static final ElementName TT = new ElementName("tt", "tt", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
 | |
| public static final ElementName RECT = new ElementName("rect", "rect", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGRectElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName RADIALGRADIENT = new ElementName("radialgradient", "radialGradient", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGRadialGradientElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName SELECT = new ElementName("select", "select", 
 | |
| // CPPONLY: NS_NewHTMLSelectElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.SELECT | SPECIAL);
 | |
| public static final ElementName SLOT = new ElementName("slot", "slot", 
 | |
| // CPPONLY: NS_NewHTMLSlotElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName SCRIPT = new ElementName("script", "script", 
 | |
| // CPPONLY: NS_NewHTMLScriptElement,
 | |
| // CPPONLY: NS_NewSVGScriptElement, 
 | |
| TreeBuilder.SCRIPT | SPECIAL);
 | |
| public static final ElementName TFOOT = new ElementName("tfoot", "tfoot", 
 | |
| // CPPONLY: NS_NewHTMLTableSectionElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
 | |
| public static final ElementName TEXT = new ElementName("text", "text", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGTextElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName MENU = new ElementName("menu", "menu", 
 | |
| // CPPONLY: NS_NewHTMLMenuElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
 | |
| public static final ElementName FEDROPSHADOW = new ElementName("fedropshadow", "feDropShadow", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEDropShadowElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName VIEW = new ElementName("view", "view", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGViewElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FECOLORMATRIX = new ElementName("fecolormatrix", "feColorMatrix", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEColorMatrixElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName FECONVOLVEMATRIX = new ElementName("feconvolvematrix", "feConvolveMatrix", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEConvolveMatrixElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName BODY = new ElementName("body", "body", 
 | |
| // CPPONLY: NS_NewHTMLBodyElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.BODY | SPECIAL | OPTIONAL_END_TAG);
 | |
| public static final ElementName FEMORPHOLOGY = new ElementName("femorphology", "feMorphology", 
 | |
| // CPPONLY: NS_NewHTMLUnknownElement,
 | |
| // CPPONLY: NS_NewSVGFEMorphologyElement, 
 | |
| TreeBuilder.OTHER);
 | |
| public static final ElementName RUBY = new ElementName("ruby", "ruby", 
 | |
| // CPPONLY: NS_NewHTMLElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
 | |
| public static final ElementName SUMMARY = new ElementName("summary", "summary", 
 | |
| // CPPONLY: NS_NewHTMLSummaryElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| 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);
 | |
| public static final ElementName TBODY = new ElementName("tbody", "tbody", 
 | |
| // CPPONLY: NS_NewHTMLTableSectionElement,
 | |
| // CPPONLY: NS_NewSVGUnknownElement, 
 | |
| TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
 | |
| private final static @NoLength ElementName[] ELEMENT_NAMES = {
 | |
| FIGCAPTION,
 | |
| CITE,
 | |
| FRAMESET,
 | |
| H1,
 | |
| CLIPPATH,
 | |
| METER,
 | |
| RADIALGRADIENT,
 | |
| B,
 | |
| BGSOUND,
 | |
| SOURCE,
 | |
| HTML,
 | |
| RP,
 | |
| NOFRAMES,
 | |
| MTEXT,
 | |
| VIEW,
 | |
| DIV,
 | |
| G,
 | |
| FEFUNCA,
 | |
| THEAD,
 | |
| FIGURE,
 | |
| GLYPHREF,
 | |
| LI,
 | |
| ACRONYM,
 | |
| SECTION,
 | |
| HR,
 | |
| CANVAS,
 | |
| BASEFONT,
 | |
| FEDISTANTLIGHT,
 | |
| OUTPUT,
 | |
| TFOOT,
 | |
| FEMORPHOLOGY,
 | |
| COL,
 | |
| MAP,
 | |
| SUP,
 | |
| P,
 | |
| H5,
 | |
| FEFUNCB,
 | |
| HEAD,
 | |
| BASE,
 | |
| FEIMAGE,
 | |
| LINE,
 | |
| TITLE,
 | |
| FESPECULARLIGHTING,
 | |
| PATH,
 | |
| MALIGNMARK,
 | |
| SMALL,
 | |
| PARAM,
 | |
| OPTION,
 | |
| VIDEO,
 | |
| BR,
 | |
| FOOTER,
 | |
| TR,
 | |
| DETAILS,
 | |
| DT,
 | |
| FOREIGNOBJECT,
 | |
| FESPOTLIGHT,
 | |
| INPUT,
 | |
| RT,
 | |
| TT,
 | |
| SLOT,
 | |
| MENU,
 | |
| FECONVOLVEMATRIX,
 | |
| SUMMARY,
 | |
| BDI,
 | |
| DFN,
 | |
| INS,
 | |
| PRE,
 | |
| SUB,
 | |
| USE,
 | |
| XMP,
 | |
| S,
 | |
| H3,
 | |
| AREA,
 | |
| META,
 | |
| DESC,
 | |
| FEBLEND,
 | |
| NOEMBED,
 | |
| ARTICLE,
 | |
| CODE,
 | |
| FETURBULENCE,
 | |
| FETILE,
 | |
| IMAGE,
 | |
| POLYLINE,
 | |
| STYLE,
 | |
| TEMPLATE,
 | |
| FEFUNCG,
 | |
| STRONG,
 | |
| MATH,
 | |
| SWITCH,
 | |
| LINK,
 | |
| TRACK,
 | |
| LABEL,
 | |
| ALTGLYPHITEM,
 | |
| FORM,
 | |
| BUTTON,
 | |
| KEYGEN,
 | |
| PATTERN,
 | |
| AUDIO,
 | |
| FEDISPLACEMENTMAP,
 | |
| SAMP,
 | |
| ANIMATECOLOR,
 | |
| FECOMPONENTTRANSFER,
 | |
| HEADER,
 | |
| NOBR,
 | |
| ADDRESS,
 | |
| DEFS,
 | |
| MS,
 | |
| PROGRESS,
 | |
| APPLET,
 | |
| DATALIST,
 | |
| FIELDSET,
 | |
| FEOFFSET,
 | |
| FEPOINTLIGHT,
 | |
| FONT,
 | |
| LINEARGRADIENT,
 | |
| NOSCRIPT,
 | |
| OBJECT,
 | |
| PLAINTEXT,
 | |
| RECT,
 | |
| SELECT,
 | |
| SCRIPT,
 | |
| TEXT,
 | |
| FEDROPSHADOW,
 | |
| FECOLORMATRIX,
 | |
| BODY,
 | |
| RUBY,
 | |
| TBODY,
 | |
| BIG,
 | |
| BDO,
 | |
| DEL,
 | |
| DIR,
 | |
| IMG,
 | |
| KBD,
 | |
| NAV,
 | |
| A,
 | |
| RTC,
 | |
| SVG,
 | |
| SET,
 | |
| VAR,
 | |
| WBR,
 | |
| I,
 | |
| Q,
 | |
| U,
 | |
| H2,
 | |
| H4,
 | |
| H6,
 | |
| DATA,
 | |
| METADATA,
 | |
| TEXTAREA,
 | |
| RB,
 | |
| DD,
 | |
| EMBED,
 | |
| FEFLOOD,
 | |
| LEGEND,
 | |
| TD,
 | |
| ASIDE,
 | |
| ANIMATE,
 | |
| BLOCKQUOTE,
 | |
| CIRCLE,
 | |
| ELLIPSE,
 | |
| FEMERGENODE,
 | |
| FEMERGE,
 | |
| FRAME,
 | |
| FECOMPOSITE,
 | |
| IFRAME,
 | |
| MARQUEE,
 | |
| PICTURE,
 | |
| STRIKE,
 | |
| TABLE,
 | |
| TIME,
 | |
| ALTGLYPHDEF,
 | |
| DIALOG,
 | |
| FEDIFFUSELIGHTING,
 | |
| LISTING,
 | |
| ALTGLYPH,
 | |
| MGLYPH,
 | |
| MPATH,
 | |
| TH,
 | |
| TEXTPATH,
 | |
| MI,
 | |
| MARK,
 | |
| MASK,
 | |
| DL,
 | |
| OL,
 | |
| UL,
 | |
| SYMBOL,
 | |
| ANIMATETRANSFORM,
 | |
| EM,
 | |
| MENUITEM,
 | |
| ANIMATEMOTION,
 | |
| CAPTION,
 | |
| MN,
 | |
| MAIN,
 | |
| POLYGON,
 | |
| SPAN,
 | |
| TSPAN,
 | |
| MO,
 | |
| COLGROUP,
 | |
| HGROUP,
 | |
| OPTGROUP,
 | |
| STOP,
 | |
| ABBR,
 | |
| CENTER,
 | |
| FEFUNCR,
 | |
| FILTER,
 | |
| FEGAUSSIANBLUR,
 | |
| MARKER,
 | |
| };
 | |
| private final static int[] ELEMENT_HASHES = {
 | |
| 1900845386,
 | |
| 1748359220,
 | |
| 2001349720,
 | |
| 876609538,
 | |
| 1798686984,
 | |
| 1971465813,
 | |
| 2007781534,
 | |
| 59768833,
 | |
| 1730965751,
 | |
| 1756474198,
 | |
| 1868312196,
 | |
| 1938817026,
 | |
| 1988763672,
 | |
| 2005324101,
 | |
| 2060065124,
 | |
| 52490899,
 | |
| 62390273,
 | |
| 1682547543,
 | |
| 1740181637,
 | |
| 1749905526,
 | |
| 1766992520,
 | |
| 1818230786,
 | |
| 1881613047,
 | |
| 1907661127,
 | |
| 1967128578,
 | |
| 1982935782,
 | |
| 1999397992,
 | |
| 2001392798,
 | |
| 2006329158,
 | |
| 2008851557,
 | |
| 2085266636,
 | |
| 51961587,
 | |
| 57206291,
 | |
| 60352339,
 | |
| 67108865,
 | |
| 943718402,
 | |
| 1699324759,
 | |
| 1733890180,
 | |
| 1747814436,
 | |
| 1749715159,
 | |
| 1752979652,
 | |
| 1757146773,
 | |
| 1783388498,
 | |
| 1805502724,
 | |
| 1854228698,
 | |
| 1874053333,
 | |
| 1889085973,
 | |
| 1905563974,
 | |
| 1925844629,
 | |
| 1963982850,
 | |
| 1967795958,
 | |
| 1973420034,
 | |
| 1983633431,
 | |
| 1998585858,
 | |
| 2001309869,
 | |
| 2001392795,
 | |
| 2003183333,
 | |
| 2005925890,
 | |
| 2006974466,
 | |
| 2008325940,
 | |
| 2021937364,
 | |
| 2068523856,
 | |
| 2092255447,
 | |
| 51435587,
 | |
| 52486755,
 | |
| 55110883,
 | |
| 58773795,
 | |
| 60345171,
 | |
| 61395251,
 | |
| 62973651,
 | |
| 68681729,
 | |
| 910163970,
 | |
| 1679960596,
 | |
| 1686491348,
 | |
| 1715310660,
 | |
| 1733054663,
 | |
| 1737099991,
 | |
| 1747176599,
 | |
| 1748100148,
 | |
| 1749656156,
 | |
| 1749801286,
 | |
| 1751288021,
 | |
| 1755076808,
 | |
| 1756625221,
 | |
| 1757268168,
 | |
| 1783210839,
 | |
| 1790207270,
 | |
| 1803929812,
 | |
| 1806806678,
 | |
| 1853642948,
 | |
| 1857653029,
 | |
| 1870268949,
 | |
| 1881288348,
 | |
| 1884120164,
 | |
| 1898753862,
 | |
| 1903302038,
 | |
| 1906135367,
 | |
| 1914900309,
 | |
| 1934172497,
 | |
| 1941178676,
 | |
| 1965334268,
 | |
| 1967788867,
 | |
| 1968836118,
 | |
| 1971938532,
 | |
| 1982173479,
 | |
| 1983533124,
 | |
| 1986527234,
 | |
| 1990037800,
 | |
| 1998724870,
 | |
| 2000525512,
 | |
| 2001349704,
 | |
| 2001349736,
 | |
| 2001392796,
 | |
| 2001495140,
 | |
| 2004635806,
 | |
| 2005719336,
 | |
| 2006028454,
 | |
| 2006896969,
 | |
| 2007601444,
 | |
| 2008125638,
 | |
| 2008340774,
 | |
| 2008994116,
 | |
| 2051837468,
 | |
| 2068523853,
 | |
| 2083120164,
 | |
| 2091479332,
 | |
| 2092557349,
 | |
| 51434643,
 | |
| 51438659,
 | |
| 52485715,
 | |
| 52488851,
 | |
| 55104723,
 | |
| 56151587,
 | |
| 57733651,
 | |
| 59244545,
 | |
| 59821379,
 | |
| 60347747,
 | |
| 60354131,
 | |
| 61925907,
 | |
| 62450211,
 | |
| 63438849,
 | |
| 67633153,
 | |
| 69730305,
 | |
| 893386754,
 | |
| 926941186,
 | |
| 960495618,
 | |
| 1681770564,
 | |
| 1686489160,
 | |
| 1689922072,
 | |
| 1703936002,
 | |
| 1730150402,
 | |
| 1732381397,
 | |
| 1733076167,
 | |
| 1736200310,
 | |
| 1738539010,
 | |
| 1747048757,
 | |
| 1747306711,
 | |
| 1747838298,
 | |
| 1748225318,
 | |
| 1749395095,
 | |
| 1749673195,
 | |
| 1749723735,
 | |
| 1749813541,
 | |
| 1749932347,
 | |
| 1751386406,
 | |
| 1753362711,
 | |
| 1755148615,
 | |
| 1756600614,
 | |
| 1757137429,
 | |
| 1757157700,
 | |
| 1763839627,
 | |
| 1782357526,
 | |
| 1783388497,
 | |
| 1786534215,
 | |
| 1797585096,
 | |
| 1803876550,
 | |
| 1803929861,
 | |
| 1805647874,
 | |
| 1807599880,
 | |
| 1818755074,
 | |
| 1854228692,
 | |
| 1854245076,
 | |
| 1864368130,
 | |
| 1870135298,
 | |
| 1873281026,
 | |
| 1874102998,
 | |
| 1881498736,
 | |
| 1881669634,
 | |
| 1887579800,
 | |
| 1898223949,
 | |
| 1899272519,
 | |
| 1902641154,
 | |
| 1904412884,
 | |
| 1906087319,
 | |
| 1907435316,
 | |
| 1907959605,
 | |
| 1919418370,
 | |
| 1932928296,
 | |
| 1935549734,
 | |
| 1939219752,
 | |
| 1941221172,
 | |
| 1965115924,
 | |
| 1966223078,
 | |
| 1967760215,
 | |
| 1967795910,
 | |
| 1968053806,
 | |
| 1971461414,
 | |
| };
 | |
| }
 | 
