当前位置: 首页>>代码示例>>C++>>正文


C++ CompactHTMLToken类代码示例

本文整理汇总了C++中CompactHTMLToken的典型用法代码示例。如果您正苦于以下问题:C++ CompactHTMLToken类的具体用法?C++ CompactHTMLToken怎么用?C++ CompactHTMLToken使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了CompactHTMLToken类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: tokenExitsForeignContent

static bool tokenExitsForeignContent(const CompactHTMLToken& token)
{
    // FIXME: This is copied from HTMLTreeBuilder::processTokenInForeignContent and changed to use threadSafeHTMLNamesMatch.
    const HTMLIdentifier& tagName = token.data();
    return threadSafeHTMLNamesMatch(tagName, bTag)
        || threadSafeHTMLNamesMatch(tagName, bigTag)
        || threadSafeHTMLNamesMatch(tagName, blockquoteTag)
        || threadSafeHTMLNamesMatch(tagName, bodyTag)
        || threadSafeHTMLNamesMatch(tagName, brTag)
        || threadSafeHTMLNamesMatch(tagName, centerTag)
        || threadSafeHTMLNamesMatch(tagName, codeTag)
        || threadSafeHTMLNamesMatch(tagName, ddTag)
        || threadSafeHTMLNamesMatch(tagName, divTag)
        || threadSafeHTMLNamesMatch(tagName, dlTag)
        || threadSafeHTMLNamesMatch(tagName, dtTag)
        || threadSafeHTMLNamesMatch(tagName, emTag)
        || threadSafeHTMLNamesMatch(tagName, embedTag)
        || threadSafeHTMLNamesMatch(tagName, h1Tag)
        || threadSafeHTMLNamesMatch(tagName, h2Tag)
        || threadSafeHTMLNamesMatch(tagName, h3Tag)
        || threadSafeHTMLNamesMatch(tagName, h4Tag)
        || threadSafeHTMLNamesMatch(tagName, h5Tag)
        || threadSafeHTMLNamesMatch(tagName, h6Tag)
        || threadSafeHTMLNamesMatch(tagName, headTag)
        || threadSafeHTMLNamesMatch(tagName, hrTag)
        || threadSafeHTMLNamesMatch(tagName, iTag)
        || threadSafeHTMLNamesMatch(tagName, imgTag)
        || threadSafeHTMLNamesMatch(tagName, liTag)
        || threadSafeHTMLNamesMatch(tagName, listingTag)
        || threadSafeHTMLNamesMatch(tagName, menuTag)
        || threadSafeHTMLNamesMatch(tagName, metaTag)
        || threadSafeHTMLNamesMatch(tagName, nobrTag)
        || threadSafeHTMLNamesMatch(tagName, olTag)
        || threadSafeHTMLNamesMatch(tagName, pTag)
        || threadSafeHTMLNamesMatch(tagName, preTag)
        || threadSafeHTMLNamesMatch(tagName, rubyTag)
        || threadSafeHTMLNamesMatch(tagName, sTag)
        || threadSafeHTMLNamesMatch(tagName, smallTag)
        || threadSafeHTMLNamesMatch(tagName, spanTag)
        || threadSafeHTMLNamesMatch(tagName, strongTag)
        || threadSafeHTMLNamesMatch(tagName, strikeTag)
        || threadSafeHTMLNamesMatch(tagName, subTag)
        || threadSafeHTMLNamesMatch(tagName, supTag)
        || threadSafeHTMLNamesMatch(tagName, tableTag)
        || threadSafeHTMLNamesMatch(tagName, ttTag)
        || threadSafeHTMLNamesMatch(tagName, uTag)
        || threadSafeHTMLNamesMatch(tagName, ulTag)
        || threadSafeHTMLNamesMatch(tagName, varTag)
        || (threadSafeHTMLNamesMatch(tagName, fontTag) && (token.getAttributeItem(colorAttr) || token.getAttributeItem(faceAttr) || token.getAttributeItem(sizeAttr)));
}
开发者ID:Igalia,项目名称:blink,代码行数:50,代码来源:HTMLTreeBuilderSimulator.cpp

示例2: simulate

bool HTMLTreeBuilderSimulator::simulate(const CompactHTMLToken& token, HTMLTokenizer* tokenizer)
{
    if (token.type() == HTMLToken::StartTag) {
        const HTMLIdentifier& tagName = token.data();
        if (threadSafeMatch(tagName, SVGNames::svgTag))
            m_namespaceStack.append(SVG);
        if (threadSafeMatch(tagName, MathMLNames::mathTag))
            m_namespaceStack.append(MathML);
        if (inForeignContent() && tokenExitsForeignContent(token))
            m_namespaceStack.removeLast();
        if ((m_namespaceStack.last() == SVG && tokenExitsSVG(token))
            || (m_namespaceStack.last() == MathML && tokenExitsMath(token)))
            m_namespaceStack.append(HTML);
        if (!inForeignContent()) {
            // FIXME: This is just a copy of Tokenizer::updateStateFor which uses threadSafeMatches.
            if (threadSafeHTMLNamesMatch(tagName, textareaTag) || threadSafeHTMLNamesMatch(tagName, titleTag))
                tokenizer->setState(HTMLTokenizer::RCDATAState);
            else if (threadSafeHTMLNamesMatch(tagName, plaintextTag))
                tokenizer->setState(HTMLTokenizer::PLAINTEXTState);
            else if (threadSafeHTMLNamesMatch(tagName, scriptTag))
                tokenizer->setState(HTMLTokenizer::ScriptDataState);
            else if (threadSafeHTMLNamesMatch(tagName, styleTag)
                || threadSafeHTMLNamesMatch(tagName, iframeTag)
                || threadSafeHTMLNamesMatch(tagName, xmpTag)
                || (threadSafeHTMLNamesMatch(tagName, noembedTag) && m_options.pluginsEnabled)
                || threadSafeHTMLNamesMatch(tagName, noframesTag)
                || (threadSafeHTMLNamesMatch(tagName, noscriptTag) && m_options.scriptEnabled))
                tokenizer->setState(HTMLTokenizer::RAWTEXTState);
        }
    }

    if (token.type() == HTMLToken::EndTag) {
        const HTMLIdentifier& tagName = token.data();
        if ((m_namespaceStack.last() == SVG && threadSafeMatch(tagName, SVGNames::svgTag))
            || (m_namespaceStack.last() == MathML && threadSafeMatch(tagName, MathMLNames::mathTag))
            || (m_namespaceStack.contains(SVG) && m_namespaceStack.last() == HTML && tokenExitsSVG(token))
            || (m_namespaceStack.contains(MathML) && m_namespaceStack.last() == HTML && tokenExitsMath(token)))
            m_namespaceStack.removeLast();
        if (threadSafeHTMLNamesMatch(tagName, scriptTag)) {
            if (!inForeignContent())
                tokenizer->setState(HTMLTokenizer::DataState);
            return false;
        }
    }

    // FIXME: Also setForceNullCharacterReplacement when in text mode.
    tokenizer->setForceNullCharacterReplacement(inForeignContent());
    tokenizer->setShouldAllowCDATA(inForeignContent());
    return true;
}
开发者ID:Igalia,项目名称:blink,代码行数:50,代码来源:HTMLTreeBuilderSimulator.cpp

示例3: tokenExitsMath

static bool tokenExitsMath(const CompactHTMLToken& token)
{
    // FIXME: This is copied from HTMLElementStack::isMathMLTextIntegrationPoint and changed to use threadSafeMatch.
    const HTMLIdentifier& tagName = token.data();
    return threadSafeMatch(tagName, MathMLNames::miTag)
        || threadSafeMatch(tagName, MathMLNames::moTag)
        || threadSafeMatch(tagName, MathMLNames::mnTag)
        || threadSafeMatch(tagName, MathMLNames::msTag)
        || threadSafeMatch(tagName, MathMLNames::mtextTag);
}
开发者ID:Igalia,项目名称:blink,代码行数:10,代码来源:HTMLTreeBuilderSimulator.cpp

示例4: tokenExitsSVG

static bool tokenExitsSVG(const CompactHTMLToken& token)
{
    // FIXME: It's very fragile that we special case foreignObject here to be case-insensitive.
    return equalIgnoringCaseNonNull(token.data().asStringImpl(), SVGNames::foreignObjectTag.localName().impl());
}
开发者ID:Igalia,项目名称:blink,代码行数:5,代码来源:HTMLTreeBuilderSimulator.cpp


注:本文中的CompactHTMLToken类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。