Lines Matching refs:token

251     explicit ExternalCharacterTokenBuffer(AtomicHTMLToken& token)
252 : m_current(token.characters().data())
253 , m_end(m_current + token.characters().size())
436 AtomicHTMLToken token(rawToken);
439 // synchronously re-enters the parser. We don't clear the token immedately
451 constructTreeFromAtomicToken(token);
459 void HTMLTreeBuilder::constructTreeFromAtomicToken(AtomicHTMLToken& token)
461 processToken(token);
470 void HTMLTreeBuilder::processToken(AtomicHTMLToken& token)
472 switch (token.type()) {
477 processDoctypeToken(token);
480 processStartTag(token);
483 processEndTag(token);
486 processComment(token);
489 processCharacter(token);
492 processEndOfFile(token);
497 void HTMLTreeBuilder::processDoctypeToken(AtomicHTMLToken& token)
499 ASSERT(token.type() == HTMLToken::DOCTYPE);
501 m_tree.insertDoctype(token);
507 processDoctypeToken(token);
510 parseError(token);
542 PassRefPtr<NamedNodeMap> HTMLTreeBuilder::attributesForIsindexInput(AtomicHTMLToken& token)
544 RefPtr<NamedNodeMap> attributes = token.takeAtributes();
558 void HTMLTreeBuilder::processIsindexStartTagForInBody(AtomicHTMLToken& token)
560 ASSERT(token.type() == HTMLToken::StartTag);
561 ASSERT(token.name() == isindexTag);
562 parseError(token);
567 RefPtr<Attribute> actionAttribute = token.getAttributeItem(actionAttr);
574 RefPtr<Attribute> promptAttribute = token.getAttributeItem(promptAttr);
579 processFakeStartTag(inputTag, attributesForIsindexInput(token));
602 void HTMLTreeBuilder::processCloseWhenNestedTag(AtomicHTMLToken& token)
618 m_tree.insertHTMLElement(token);
636 void adjustSVGTagNameCase(AtomicHTMLToken& token)
646 const QualifiedName& casedName = caseMap->get(token.name());
649 token.setName(casedName.localName());
653 void adjustAttributes(AtomicHTMLToken& token)
663 NamedNodeMap* attributes = token.attributes();
675 void adjustSVGAttributes(AtomicHTMLToken& token)
677 adjustAttributes<SVGNames::getSVGAttrs>(token);
680 void adjustMathMLAttributes(AtomicHTMLToken& token)
682 adjustAttributes<MathMLNames::getMathMLAttrs>(token);
696 void adjustForeignAttributes(AtomicHTMLToken& token)
712 NamedNodeMap* attributes = token.attributes();
726 void HTMLTreeBuilder::processStartTagForInBody(AtomicHTMLToken& token)
728 ASSERT(token.type() == HTMLToken::StartTag);
729 if (token.name() == htmlTag) {
730 m_tree.insertHTMLHtmlStartTagInBody(token);
733 if (token.name() == baseTag
734 || token.name() == basefontTag
735 || token.name() == bgsoundTag
736 || token.name() == commandTag
737 || token.name() == linkTag
738 || token.name() == metaTag
739 || token.name() == noframesTag
740 || token.name() == scriptTag
741 || token.name() == styleTag
742 || token.name() == titleTag) {
743 bool didProcess = processStartTagForInHead(token);
747 if (token.name() == bodyTag) {
752 m_tree.insertHTMLBodyStartTagInBody(token);
755 if (token.name() == framesetTag) {
756 parseError(token);
769 m_tree.insertHTMLElement(token);
773 if (token.name() == addressTag
774 || token.name() == articleTag
775 || token.name() == asideTag
776 || token.name() == blockquoteTag
777 || token.name() == centerTag
778 || token.name() == detailsTag
779 || token.name() == dirTag
780 || token.name() == divTag
781 || token.name() == dlTag
782 || token.name() == fieldsetTag
783 || token.name() == figcaptionTag
784 || token.name() == figureTag
785 || token.name() == footerTag
786 || token.name() == headerTag
787 || token.name() == hgroupTag
788 || token.name() == menuTag
789 || token.name() == navTag
790 || token.name() == olTag
791 || token.name() == pTag
792 || token.name() == sectionTag
793 || token.name() == summaryTag
794 || token.name() == ulTag) {
796 m_tree.insertHTMLElement(token);
799 if (isNumberedHeaderTag(token.name())) {
802 parseError(token);
805 m_tree.insertHTMLElement(token);
808 if (token.name() == preTag || token.name() == listingTag) {
810 m_tree.insertHTMLElement(token);
815 if (token.name() == formTag) {
817 parseError(token);
821 m_tree.insertHTMLFormElement(token);
824 if (token.name() == liTag) {
825 processCloseWhenNestedTag<isLi>(token);
828 if (token.name() == ddTag || token.name() == dtTag) {
829 processCloseWhenNestedTag<isDdOrDt>(token);
832 if (token.name() == plaintextTag) {
834 m_tree.insertHTMLElement(token);
838 if (token.name() == buttonTag) {
840 parseError(token);
842 reprocessStartTag(token); // FIXME: Could we just fall through here?
846 m_tree.insertHTMLElement(token);
850 if (token.name() == aTag) {
853 parseError(token);
860 m_tree.insertFormattingElement(token);
863 if (isNonAnchorNonNobrFormattingTag(token.name())) {
865 m_tree.insertFormattingElement(token);
868 if (token.name() == nobrTag) {
871 parseError(token);
875 m_tree.insertFormattingElement(token);
878 if (token.name() == appletTag
879 || token.name() == marqueeTag
880 || token.name() == objectTag) {
882 m_tree.insertHTMLElement(token);
887 if (token.name() == tableTag) {
890 m_tree.insertHTMLElement(token);
895 if (token.name() == imageTag) {
896 parseError(token);
898 token.setName(imgTag.localName());
902 if (token.name() == areaTag
903 || token.name() == brTag
904 || token.name() == embedTag
905 || token.name() == imgTag
906 || token.name() == keygenTag
907 || token.name() == wbrTag) {
909 m_tree.insertSelfClosingHTMLElement(token);
913 if (token.name() == inputTag) {
914 RefPtr<Attribute> typeAttribute = token.getAttributeItem(typeAttr);
916 m_tree.insertSelfClosingHTMLElement(token);
921 if (token.name() == paramTag
922 || token.name() == sourceTag
923 || token.name() == trackTag) {
924 m_tree.insertSelfClosingHTMLElement(token);
927 if (token.name() == hrTag) {
929 m_tree.insertSelfClosingHTMLElement(token);
933 if (token.name() == isindexTag) {
934 processIsindexStartTagForInBody(token);
937 if (token.name() == textareaTag) {
938 m_tree.insertHTMLElement(token);
946 if (token.name() == xmpTag) {
950 processGenericRawTextStartTag(token);
953 if (token.name() == iframeTag) {
955 processGenericRawTextStartTag(token);
958 if (token.name() == noembedTag && pluginsEnabled(m_document->frame())) {
959 processGenericRawTextStartTag(token);
962 if (token.name() == noscriptTag && scriptEnabled(m_document->frame())) {
963 processGenericRawTextStartTag(token);
966 if (token.name() == selectTag) {
968 m_tree.insertHTMLElement(token);
981 if (token.name() == optgroupTag || token.name() == optionTag) {
987 m_tree.insertHTMLElement(token);
990 if (token.name() == rpTag || token.name() == rtTag) {
994 parseError(token);
998 m_tree.insertHTMLElement(token);
1001 if (token.name() == MathMLNames::mathTag.localName()) {
1003 adjustMathMLAttributes(token);
1004 adjustForeignAttributes(token);
1005 m_tree.insertForeignElement(token, MathMLNames::mathmlNamespaceURI);
1006 if (m_insertionMode != InForeignContentMode && !token.selfClosing())
1010 if (token.name() == SVGNames::svgTag.localName()) {
1012 adjustSVGAttributes(token);
1013 adjustForeignAttributes(token);
1014 m_tree.insertForeignElement(token, SVGNames::svgNamespaceURI);
1015 if (m_insertionMode != InForeignContentMode && !token.selfClosing())
1019 if (isCaptionColOrColgroupTag(token.name())
1020 || token.name() == frameTag
1021 || token.name() == headTag
1022 || isTableBodyContextTag(token.name())
1023 || isTableCellContextTag(token.name())
1024 || token.name() == trTag) {
1025 parseError(token);
1029 m_tree.insertHTMLElement(token);
1058 void HTMLTreeBuilder::processStartTagForInTable(AtomicHTMLToken& token)
1060 ASSERT(token.type() == HTMLToken::StartTag);
1061 if (token.name() == captionTag) {
1064 m_tree.insertHTMLElement(token);
1068 if (token.name() == colgroupTag) {
1070 m_tree.insertHTMLElement(token);
1074 if (token.name() == colTag) {
1077 reprocessStartTag(token);
1080 if (isTableBodyContextTag(token.name())) {
1082 m_tree.insertHTMLElement(token);
1086 if (isTableCellContextTag(token.name())
1087 || token.name() == trTag) {
1090 reprocessStartTag(token);
1093 if (token.name() == tableTag) {
1094 parseError(token);
1099 reprocessStartTag(token);
1102 if (token.name() == styleTag || token.name() == scriptTag) {
1103 processStartTagForInHead(token);
1106 if (token.name() == inputTag) {
1107 Attribute* typeAttribute = token.getAttributeItem(typeAttr);
1109 parseError(token);
1110 m_tree.insertSelfClosingHTMLElement(token);
1115 if (token.name() == formTag) {
1116 parseError(token);
1119 m_tree.insertHTMLFormElement(token, true);
1123 parseError(token);
1125 processStartTagForInBody(token);
1130 bool shouldProcessForeignContentUsingInBodyInsertionMode(AtomicHTMLToken& token, ContainerNode* currentElement)
1132 ASSERT(token.type() == HTMLToken::StartTag);
1138 return token.name() != MathMLNames::mglyphTag
1139 && token.name() != MathMLNames::malignmarkTag;
1142 return token.name() == SVGNames::svgTag;
1152 void HTMLTreeBuilder::processStartTag(AtomicHTMLToken& token)
1154 ASSERT(token.type() == HTMLToken::StartTag);
1162 if (token.name() == htmlTag) {
1163 m_tree.insertHTMLHtmlStartTagBeforeHTML(token);
1171 if (token.name() == htmlTag) {
1172 m_tree.insertHTMLHtmlStartTagInBody(token);
1175 if (token.name() == headTag) {
1176 m_tree.insertHTMLHeadElement(token);
1184 if (processStartTagForInHead(token))
1190 if (token.name() == htmlTag) {
1191 m_tree.insertHTMLHtmlStartTagInBody(token);
1194 if (token.name() == bodyTag) {
1196 m_tree.insertHTMLBodyElement(token);
1200 if (token.name() == framesetTag) {
1201 m_tree.insertHTMLElement(token);
1205 if (token.name() == baseTag
1206 || token.name() == basefontTag
1207 || token.name() == bgsoundTag
1208 || token.name() == linkTag
1209 || token.name() == metaTag
1210 || token.name() == noframesTag
1211 || token.name() == scriptTag
1212 || token.name() == styleTag
1213 || token.name() == titleTag) {
1214 parseError(token);
1217 processStartTagForInHead(token);
1221 if (token.name() == headTag) {
1222 parseError(token);
1229 processStartTagForInBody(token);
1233 processStartTagForInTable(token);
1237 if (isCaptionColOrColgroupTag(token.name())
1238 || isTableBodyContextTag(token.name())
1239 || isTableCellContextTag(token.name())
1240 || token.name() == trTag) {
1241 parseError(token);
1246 reprocessStartTag(token);
1249 processStartTagForInBody(token);
1253 if (token.name() == htmlTag) {
1254 m_tree.insertHTMLHtmlStartTagInBody(token);
1257 if (token.name() == colTag) {
1258 m_tree.insertSelfClosingHTMLElement(token);
1265 reprocessStartTag(token);
1269 if (token.name() == trTag) {
1271 m_tree.insertHTMLElement(token);
1275 if (isTableCellContextTag(token.name())) {
1276 parseError(token);
1279 reprocessStartTag(token);
1282 if (isCaptionColOrColgroupTag(token.name()) || isTableBodyContextTag(token.name())) {
1286 parseError(token);
1292 reprocessStartTag(token);
1295 processStartTagForInTable(token);
1299 if (isTableCellContextTag(token.name())) {
1301 m_tree.insertHTMLElement(token);
1306 if (token.name() == trTag
1307 || isCaptionColOrColgroupTag(token.name())
1308 || isTableBodyContextTag(token.name())) {
1314 reprocessStartTag(token);
1317 processStartTagForInTable(token);
1321 if (isCaptionColOrColgroupTag(token.name())
1322 || isTableCellContextTag(token.name())
1323 || token.name() == trTag
1324 || isTableBodyContextTag(token.name())) {
1328 parseError(token);
1332 reprocessStartTag(token);
1335 processStartTagForInBody(token);
1340 if (token.name() == htmlTag) {
1341 m_tree.insertHTMLHtmlStartTagInBody(token);
1345 reprocessStartTag(token);
1349 if (token.name() == htmlTag) {
1350 m_tree.insertHTMLHtmlStartTagInBody(token);
1353 if (token.name() == basefontTag
1354 || token.name() == bgsoundTag
1355 || token.name() == linkTag
1356 || token.name() == metaTag
1357 || token.name() == noframesTag
1358 || token.name() == styleTag) {
1359 bool didProcess = processStartTagForInHead(token);
1363 if (token.name() == htmlTag || token.name() == noscriptTag) {
1364 parseError(token);
1368 processToken(token);
1372 if (token.name() == htmlTag) {
1373 m_tree.insertHTMLHtmlStartTagInBody(token);
1376 if (token.name() == framesetTag) {
1377 m_tree.insertHTMLElement(token);
1380 if (token.name() == frameTag) {
1381 m_tree.insertSelfClosingHTMLElement(token);
1384 if (token.name() == noframesTag) {
1385 processStartTagForInHead(token);
1388 parseError(token);
1393 if (token.name() == htmlTag) {
1394 m_tree.insertHTMLHtmlStartTagInBody(token);
1397 if (token.name() == noframesTag) {
1398 processStartTagForInHead(token);
1401 parseError(token);
1405 if (token.name() == captionTag
1406 || token.name() == tableTag
1407 || isTableBodyContextTag(token.name())
1408 || token.name() == trTag
1409 || isTableCellContextTag(token.name())) {
1410 parseError(token);
1413 reprocessStartTag(token);
1419 if (token.name() == htmlTag) {
1420 m_tree.insertHTMLHtmlStartTagInBody(token);
1423 if (token.name() == optionTag) {
1428 m_tree.insertHTMLElement(token);
1431 if (token.name() == optgroupTag) {
1440 m_tree.insertHTMLElement(token);
1443 if (token.name() == selectTag) {
1444 parseError(token);
1449 if (token.name() == inputTag
1450 || token.name() == keygenTag
1451 || token.name() == textareaTag) {
1452 parseError(token);
1459 reprocessStartTag(token);
1462 if (token.name() == scriptTag) {
1463 bool didProcess = processStartTagForInHead(token);
1470 processStartTag(token);
1473 if (shouldProcessForeignContentUsingInBodyInsertionMode(token, m_tree.currentNode())) {
1474 processForeignContentUsingInBodyModeAndResetMode(token);
1477 if (token.name() == bTag
1478 || token.name() == bigTag
1479 || token.name() == blockquoteTag
1480 || token.name() == bodyTag
1481 || token.name() == brTag
1482 || token.name() == centerTag
1483 || token.name() == codeTag
1484 || token.name() == ddTag
1485 || token.name() == divTag
1486 || token.name() == dlTag
1487 || token.name() == dtTag
1488 || token.name() == emTag
1489 || token.name() == embedTag
1490 || isNumberedHeaderTag(token.name())
1491 || token.name() == headTag
1492 || token.name() == hrTag
1493 || token.name() == iTag
1494 || token.name() == imgTag
1495 || token.name() == liTag
1496 || token.name() == listingTag
1497 || token.name() == menuTag
1498 || token.name() == metaTag
1499 || token.name() == nobrTag
1500 || token.name() == olTag
1501 || token.name() == pTag
1502 || token.name() == preTag
1503 || token.name() == rubyTag
1504 || token.name() == sTag
1505 || token.name() == smallTag
1506 || token.name() == spanTag
1507 || token.name() == strongTag
1508 || token.name() == strikeTag
1509 || token.name() == subTag
1510 || token.name() == supTag
1511 || token.name() == tableTag
1512 || token.name() == ttTag
1513 || token.name() == uTag
1514 || token.name() == ulTag
1515 || token.name() == varTag
1516 || (token.name() == fontTag && (token.getAttributeItem(colorAttr) || token.getAttributeItem(faceAttr) || token.getAttributeItem(sizeAttr)))) {
1517 parseError(token);
1520 reprocessStartTag(token);
1525 adjustMathMLAttributes(token);
1527 adjustSVGTagNameCase(token);
1528 adjustSVGAttributes(token);
1530 adjustForeignAttributes(token);
1531 m_tree.insertForeignElement(token, currentNamespace);
1540 bool HTMLTreeBuilder::processBodyEndTagForInBody(AtomicHTMLToken& token)
1542 ASSERT(token.type() == HTMLToken::EndTag);
1543 ASSERT(token.name() == bodyTag);
1545 parseError(token);
1553 void HTMLTreeBuilder::processAnyOtherEndTagForInBody(AtomicHTMLToken& token)
1555 ASSERT(token.type() == HTMLToken::EndTag);
1559 if (node->hasLocalName(token.name())) {
1565 if (!m_tree.currentNode()->hasLocalName(token.name())) {
1566 parseError(token);
1570 // We might have already popped the node for the token in
1579 parseError(token);
1602 void HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken& token)
1611 Element* formattingElement = m_tree.activeFormattingElements()->closestElementInScopeWithName(token.name());
1613 parseError(token);
1619 parseError(token);
1624 parseError(token);
1770 void HTMLTreeBuilder::processEndTagForInTableBody(AtomicHTMLToken& token)
1772 ASSERT(token.type() == HTMLToken::EndTag);
1773 if (isTableBodyContextTag(token.name())) {
1774 if (!m_tree.openElements()->inTableScope(token.name())) {
1775 parseError(token);
1783 if (token.name() == tableTag) {
1787 parseError(token);
1793 reprocessEndTag(token);
1796 if (token.name() == bodyTag
1797 || isCaptionColOrColgroupTag(token.name())
1798 || token.name() == htmlTag
1799 || isTableCellContextTag(token.name())
1800 || token.name() == trTag) {
1801 parseError(token);
1804 processEndTagForInTable(token);
1807 void HTMLTreeBuilder::processEndTagForInRow(AtomicHTMLToken& token)
1809 ASSERT(token.type() == HTMLToken::EndTag);
1810 if (token.name() == trTag) {
1814 if (token.name() == tableTag) {
1820 reprocessEndTag(token);
1823 if (isTableBodyContextTag(token.name())) {
1824 if (!m_tree.openElements()->inTableScope(token.name())) {
1825 parseError(token);
1830 reprocessEndTag(token);
1833 if (token.name() == bodyTag
1834 || isCaptionColOrColgroupTag(token.name())
1835 || token.name() == htmlTag
1836 || isTableCellContextTag(token.name())) {
1837 parseError(token);
1840 processEndTagForInTable(token);
1843 void HTMLTreeBuilder::processEndTagForInCell(AtomicHTMLToken& token)
1845 ASSERT(token.type() == HTMLToken::EndTag);
1846 if (isTableCellContextTag(token.name())) {
1847 if (!m_tree.openElements()->inTableScope(token.name())) {
1848 parseError(token);
1852 if (!m_tree.currentNode()->hasLocalName(token.name()))
1853 parseError(token);
1854 m_tree.openElements()->popUntilPopped(token.name());
1859 if (token.name() == bodyTag
1860 || isCaptionColOrColgroupTag(token.name())
1861 || token.name() == htmlTag) {
1862 parseError(token);
1865 if (token.name() == tableTag
1866 || token.name() == trTag
1867 || isTableBodyContextTag(token.name())) {
1868 if (!m_tree.openElements()->inTableScope(token.name())) {
1869 ASSERT(isTableBodyContextTag(token.name()) || isParsingFragment());
1870 parseError(token);
1874 reprocessEndTag(token);
1877 processEndTagForInBody(token);
1880 void HTMLTreeBuilder::processEndTagForInBody(AtomicHTMLToken& token)
1882 ASSERT(token.type() == HTMLToken::EndTag);
1883 if (token.name() == bodyTag) {
1884 processBodyEndTagForInBody(token);
1887 if (token.name() == htmlTag) {
1890 reprocessEndTag(token);
1893 if (token.name() == addressTag
1894 || token.name() == articleTag
1895 || token.name() == asideTag
1896 || token.name() == blockquoteTag
1897 || token.name() == buttonTag
1898 || token.name() == centerTag
1899 || token.name() == detailsTag
1900 || token.name() == dirTag
1901 || token.name() == divTag
1902 || token.name() == dlTag
1903 || token.name() == fieldsetTag
1904 || token.name() == figcaptionTag
1905 || token.name() == figureTag
1906 || token.name() == footerTag
1907 || token.name() == headerTag
1908 || token.name() == hgroupTag
1909 || token.name() == listingTag
1910 || token.name() == menuTag
1911 || token.name() == navTag
1912 || token.name() == olTag
1913 || token.name() == preTag
1914 || token.name() == sectionTag
1915 || token.name() == summaryTag
1916 || token.name() == ulTag) {
1917 if (!m_tree.openElements()->inScope(token.name())) {
1918 parseError(token);
1922 if (!m_tree.currentNode()->hasLocalName(token.name()))
1923 parseError(token);
1924 m_tree.openElements()->popUntilPopped(token.name());
1927 if (token.name() == formTag) {
1930 parseError(token);
1935 parseError(token);
1938 if (token.name() == pTag) {
1939 if (!m_tree.openElements()->inButtonScope(token.name())) {
1940 parseError(token);
1942 ASSERT(m_tree.openElements()->inScope(token.name()));
1943 reprocessEndTag(token);
1946 m_tree.generateImpliedEndTagsWithExclusion(token.name());
1947 if (!m_tree.currentNode()->hasLocalName(token.name()))
1948 parseError(token);
1949 m_tree.openElements()->popUntilPopped(token.name());
1952 if (token.name() == liTag) {
1953 if (!m_tree.openElements()->inListItemScope(token.name())) {
1954 parseError(token);
1957 m_tree.generateImpliedEndTagsWithExclusion(token.name());
1958 if (!m_tree.currentNode()->hasLocalName(token.name()))
1959 parseError(token);
1960 m_tree.openElements()->popUntilPopped(token.name());
1963 if (token.name() == ddTag
1964 || token.name() == dtTag) {
1965 if (!m_tree.openElements()->inScope(token.name())) {
1966 parseError(token);
1969 m_tree.generateImpliedEndTagsWithExclusion(token.name());
1970 if (!m_tree.currentNode()->hasLocalName(token.name()))
1971 parseError(token);
1972 m_tree.openElements()->popUntilPopped(token.name());
1975 if (isNumberedHeaderTag(token.name())) {
1977 parseError(token);
1981 if (!m_tree.currentNode()->hasLocalName(token.name()))
1982 parseError(token);
1986 if (isFormattingTag(token.name())) {
1987 callTheAdoptionAgency(token);
1990 if (token.name() == appletTag
1991 || token.name() == marqueeTag
1992 || token.name() == objectTag) {
1993 if (!m_tree.openElements()->inScope(token.name())) {
1994 parseError(token);
1998 if (!m_tree.currentNode()->hasLocalName(token.name()))
1999 parseError(token);
2000 m_tree.openElements()->popUntilPopped(token.name());
2004 if (token.name() == brTag) {
2005 parseError(token);
2009 processAnyOtherEndTagForInBody(token);
2053 void HTMLTreeBuilder::processEndTagForInTable(AtomicHTMLToken& token)
2055 ASSERT(token.type() == HTMLToken::EndTag);
2056 if (token.name() == tableTag) {
2060 if (token.name() == bodyTag
2061 || isCaptionColOrColgroupTag(token.name())
2062 || token.name() == htmlTag
2063 || isTableBodyContextTag(token.name())
2064 || isTableCellContextTag(token.name())
2065 || token.name() == trTag) {
2066 parseError(token);
2071 processEndTagForInBody(token);
2074 void HTMLTreeBuilder::processEndTag(AtomicHTMLToken& token)
2076 ASSERT(token.type() == HTMLToken::EndTag);
2084 if (token.name() != headTag && token.name() != bodyTag && token.name() != htmlTag && token.name() != brTag) {
2085 parseError(token);
2092 if (token.name() != headTag && token.name() != bodyTag && token.name() != htmlTag && token.name() != brTag) {
2093 parseError(token);
2100 if (token.name() == headTag) {
2105 if (token.name() != bodyTag && token.name() != htmlTag && token.name() != brTag) {
2106 parseError(token);
2113 if (token.name() != bodyTag && token.name() != htmlTag && token.name() != brTag) {
2114 parseError(token);
2121 processEndTagForInBody(token);
2125 processEndTagForInTable(token);
2129 if (token.name() == captionTag) {
2133 if (token.name() == tableTag) {
2134 parseError(token);
2139 reprocessEndTag(token);
2142 if (token.name() == bodyTag
2143 || token.name() == colTag
2144 || token.name() == colgroupTag
2145 || token.name() == htmlTag
2146 || isTableBodyContextTag(token.name())
2147 || isTableCellContextTag(token.name())
2148 || token.name() == trTag) {
2149 parseError(token);
2152 processEndTagForInBody(token);
2156 if (token.name() == colgroupTag) {
2160 if (token.name() == colTag) {
2161 parseError(token);
2168 reprocessEndTag(token);
2172 processEndTagForInRow(token);
2176 processEndTagForInCell(token);
2180 processEndTagForInTableBody(token);
2184 if (token.name() == htmlTag) {
2186 parseError(token);
2196 parseError(token);
2198 reprocessEndTag(token);
2202 if (token.name() == noscriptTag) {
2209 if (token.name() != brTag) {
2210 parseError(token);
2214 processToken(token);
2217 if (token.name() == scriptTag) {
2228 // This token will not have been created by the tokenizer if a
2241 if (token.name() == framesetTag) {
2243 parseError(token);
2254 if (token.name() == htmlTag) {
2261 parseError(token);
2265 if (token.name() == captionTag
2266 || token.name() == tableTag
2267 || isTableBodyContextTag(token.name())
2268 || token.name() == trTag
2269 || isTableCellContextTag(token.name())) {
2270 parseError(token);
2271 if (m_tree.openElements()->inTableScope(token.name())) {
2274 reprocessEndTag(token);
2281 if (token.name() == optgroupTag) {
2288 parseError(token);
2291 if (token.name() == optionTag) {
2296 parseError(token);
2299 if (token.name() == selectTag) {
2300 if (!m_tree.openElements()->inSelectScope(token.name())) {
2302 parseError(token);
2312 processEndTag(token);
2315 if (token.name() == SVGNames::scriptTag && m_tree.currentNode()->hasTagName(SVGNames::scriptTag)) {
2322 if (!nodeRecord->node()->hasLocalName(token.name()))
2323 parseError(token);
2325 if (nodeRecord->node()->hasLocalName(token.name())) {
2337 processForeignContentUsingInBodyModeAndResetMode(token);
2350 void HTMLTreeBuilder::reprocessStartTag(AtomicHTMLToken& token)
2353 processStartTag(token);
2356 void HTMLTreeBuilder::reprocessEndTag(AtomicHTMLToken& token)
2359 processEndTag(token);
2383 void HTMLTreeBuilder::processForeignContentUsingInBodyModeAndResetMode(AtomicHTMLToken& token)
2388 processToken(token);
2400 void HTMLTreeBuilder::processComment(AtomicHTMLToken& token)
2402 ASSERT(token.type() == HTMLToken::Comment);
2407 m_tree.insertCommentOnDocument(token);
2411 m_tree.insertCommentOnHTMLHtmlElement(token);
2416 processComment(token);
2419 m_tree.insertComment(token);
2422 void HTMLTreeBuilder::processCharacter(AtomicHTMLToken& token)
2424 ASSERT(token.type() == HTMLToken::Character);
2425 ExternalCharacterTokenBuffer buffer(token);
2581 void HTMLTreeBuilder::processEndOfFile(AtomicHTMLToken& token)
2583 ASSERT(token.type() == HTMLToken::EndOfFile);
2619 processEndOfFile(token);
2632 parseError(token);
2644 processEndOfFile(token);
2648 processEndOfFile(token);
2652 processEndOfFile(token);
2655 parseError(token);
2661 processEndOfFile(token);
2733 bool HTMLTreeBuilder::processStartTagForInHead(AtomicHTMLToken& token)
2735 ASSERT(token.type() == HTMLToken::StartTag);
2736 if (token.name() == htmlTag) {
2737 m_tree.insertHTMLHtmlStartTagInBody(token);
2740 if (token.name() == baseTag
2741 || token.name() == basefontTag
2742 || token.name() == bgsoundTag
2743 || token.name() == commandTag
2744 || token.name() == linkTag
2745 || token.name() == metaTag) {
2746 m_tree.insertSelfClosingHTMLElement(token);
2750 if (token.name() == titleTag) {
2751 processGenericRCDATAStartTag(token);
2754 if (token.name() == noscriptTag) {
2756 processGenericRawTextStartTag(token);
2759 m_tree.insertHTMLElement(token);
2763 if (token.name() == noframesTag || token.name() == styleTag) {
2764 processGenericRawTextStartTag(token);
2767 if (token.name() == scriptTag) {
2768 processScriptStartTag(token);
2769 if (m_usePreHTML5ParserQuirks && token.selfClosing())
2773 if (token.name() == headTag) {
2774 parseError(token);
2780 void HTMLTreeBuilder::processGenericRCDATAStartTag(AtomicHTMLToken& token)
2782 ASSERT(token.type() == HTMLToken::StartTag);
2783 m_tree.insertHTMLElement(token);
2789 void HTMLTreeBuilder::processGenericRawTextStartTag(AtomicHTMLToken& token)
2791 ASSERT(token.type() == HTMLToken::StartTag);
2792 m_tree.insertHTMLElement(token);
2798 void HTMLTreeBuilder::processScriptStartTag(AtomicHTMLToken& token)
2800 ASSERT(token.type() == HTMLToken::StartTag);
2801 m_tree.insertScriptElement(token);