?? parser.cpp
字號:
case 66:
#line 581 "parser.y"
{ yyval.string.string = 0; yyval.string.length = 0; ;
break;}
case 67:
#line 582 "parser.y"
{ static unsigned short star = '*'; yyval.string.string = ☆ yyval.string.length = 1; ;
break;}
case 68:
#line 583 "parser.y"
{ yyval.string = yyvsp[0].string; ;
break;}
case 69:
#line 587 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->tag = yyvsp[-1].element;
;
break;}
case 70:
#line 591 "parser.y"
{
yyval.selector = yyvsp[-1].selector;
if ( yyval.selector )
yyval.selector->tag = yyvsp[-2].element;
;
break;}
case 71:
#line 596 "parser.y"
{
yyval.selector = yyvsp[-1].selector;
if (yyval.selector)
yyval.selector->tag = makeId(static_cast<CSSParser*>(parser)->defaultNamespace, anyLocalName);;
;
break;}
case 72:
#line 601 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->tag = yyvsp[-1].element;
CSSParser *p = static_cast<CSSParser *>(parser);
if (p->styleElement && p->styleElement->isCSSStyleSheet())
static_cast<CSSStyleSheetImpl*>(p->styleElement)->determineNamespace(yyval.selector->tag, domString(yyvsp[-3].string));
;
break;}
case 73:
#line 608 "parser.y"
{
yyval.selector = yyvsp[-1].selector;
if (yyval.selector) {
yyval.selector->tag = yyvsp[-2].element;
CSSParser *p = static_cast<CSSParser *>(parser);
if (p->styleElement && p->styleElement->isCSSStyleSheet())
static_cast<CSSStyleSheetImpl*>(p->styleElement)->determineNamespace(yyval.selector->tag, domString(yyvsp[-4].string));
}
;
break;}
case 74:
#line 617 "parser.y"
{
yyval.selector = yyvsp[-1].selector;
if (yyval.selector) {
yyval.selector->tag = makeId(anyNamespace, anyLocalName);
CSSParser *p = static_cast<CSSParser *>(parser);
if (p->styleElement && p->styleElement->isCSSStyleSheet())
static_cast<CSSStyleSheetImpl*>(p->styleElement)->determineNamespace(yyval.selector->tag, domString(yyvsp[-3].string));
}
;
break;}
case 75:
#line 629 "parser.y"
{
CSSParser *p = static_cast<CSSParser *>(parser);
DOM::DocumentImpl *doc = p->document();
QString tag = qString(yyvsp[0].string);
if ( doc ) {
if (doc->isHTMLDocument())
tag = tag.lower();
const DOMString dtag(tag);
yyval.element = makeId(p->defaultNamespace, doc->tagId(0, dtag.implementation(), false));
} else {
yyval.element = makeId(p->defaultNamespace, khtml::getTagID(tag.lower().ascii(), tag.length()));
// this case should never happen - only when loading
// the default stylesheet - which must not contain unknown tags
// assert($$ != 0);
}
;
break;}
case 76:
#line 645 "parser.y"
{
yyval.element = makeId(static_cast<CSSParser*>(parser)->defaultNamespace, anyLocalName);
;
break;}
case 77:
#line 651 "parser.y"
{
yyval.selector = yyvsp[0].selector;
;
break;}
case 78:
#line 654 "parser.y"
{
yyval.selector = yyvsp[-1].selector;
if (yyval.selector) {
CSSSelector *end = yyvsp[-1].selector;
while( end->tagHistory )
end = end->tagHistory;
end->relation = CSSSelector::SubSelector;
end->tagHistory = yyvsp[0].selector;
}
;
break;}
case 79:
#line 664 "parser.y"
{
delete yyvsp[-1].selector;
yyval.selector = 0;
;
break;}
case 80:
#line 671 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->match = CSSSelector::Id;
yyval.selector->attr = ATTR_ID;
CSSParser *p = static_cast<CSSParser *>(parser);
if (!p->strict)
yyvsp[0].string.lower();
yyval.selector->value = atomicString(yyvsp[0].string);
;
break;}
case 84:
#line 686 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->match = CSSSelector::Class;
yyval.selector->attr = ATTR_CLASS;
CSSParser *p = static_cast<CSSParser *>(parser);
if (!p->strict)
yyvsp[0].string.lower();
yyval.selector->value = atomicString(yyvsp[0].string);
;
break;}
case 85:
#line 698 "parser.y"
{
CSSParser *p = static_cast<CSSParser *>(parser);
DOM::DocumentImpl *doc = p->document();
QString attr = qString(yyvsp[-1].string);
if ( doc ) {
if (doc->isHTMLDocument())
attr = attr.lower();
const DOMString dattr(attr);
yyval.attribute = doc->attrId(0, dattr.implementation(), false);
} else {
yyval.attribute = khtml::getAttrID(attr.lower().ascii(), attr.length());
// this case should never happen - only when loading
// the default stylesheet - which must not contain unknown attributes
assert(yyval.attribute != 0);
}
;
break;}
case 86:
#line 718 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->attr = yyvsp[-1].attribute;
yyval.selector->match = CSSSelector::Set;
;
break;}
case 87:
#line 723 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->attr = yyvsp[-5].attribute;
yyval.selector->match = (CSSSelector::Match)yyvsp[-4].val;
yyval.selector->value = atomicString(yyvsp[-2].string);
;
break;}
case 88:
#line 729 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->attr = yyvsp[-1].attribute;
yyval.selector->match = CSSSelector::Set;
CSSParser *p = static_cast<CSSParser *>(parser);
if (p->styleElement && p->styleElement->isCSSStyleSheet())
static_cast<CSSStyleSheetImpl*>(p->styleElement)->determineNamespace(yyval.selector->attr, domString(yyvsp[-3].string));
;
break;}
case 89:
#line 737 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->attr = yyvsp[-5].attribute;
yyval.selector->match = (CSSSelector::Match)yyvsp[-4].val;
yyval.selector->value = atomicString(yyvsp[-2].string);
CSSParser *p = static_cast<CSSParser *>(parser);
if (p->styleElement && p->styleElement->isCSSStyleSheet())
static_cast<CSSStyleSheetImpl*>(p->styleElement)->determineNamespace(yyval.selector->attr, domString(yyvsp[-7].string));
;
break;}
case 90:
#line 749 "parser.y"
{
yyval.val = CSSSelector::Exact;
;
break;}
case 91:
#line 752 "parser.y"
{
yyval.val = CSSSelector::List;
;
break;}
case 92:
#line 755 "parser.y"
{
yyval.val = CSSSelector::Hyphen;
;
break;}
case 93:
#line 758 "parser.y"
{
yyval.val = CSSSelector::Begin;
;
break;}
case 94:
#line 761 "parser.y"
{
yyval.val = CSSSelector::End;
;
break;}
case 95:
#line 764 "parser.y"
{
yyval.val = CSSSelector::Contain;
;
break;}
case 98:
#line 775 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->match = CSSSelector::Pseudo;
yyvsp[0].string.lower();
yyval.selector->value = atomicString(yyvsp[0].string);
if (yyval.selector->value == "empty" || yyval.selector->value == "only-child" ||
yyval.selector->value == "first-child" || yyval.selector->value == "last-child") {
CSSParser *p = static_cast<CSSParser *>(parser);
DOM::DocumentImpl *doc = p->document();
if (doc)
doc->setUsesSiblingRules(true);
}
;
break;}
case 99:
#line 789 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->match = CSSSelector::Pseudo;
yyvsp[0].string.lower();
yyval.selector->value = atomicString(yyvsp[0].string);
;
break;}
case 100:
#line 795 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->match = CSSSelector::Pseudo;
yyval.selector->simpleSelector = yyvsp[-2].selector;
yyvsp[-4].string.lower();
yyval.selector->value = atomicString(yyvsp[-4].string);
;
break;}
case 101:
#line 805 "parser.y"
{
yyval.ok = yyvsp[0].ok;
;
break;}
case 102:
#line 808 "parser.y"
{
yyval.ok = yyvsp[-1].ok;
if ( yyvsp[0].ok )
yyval.ok = yyvsp[0].ok;
;
break;}
case 103:
#line 813 "parser.y"
{
yyval.ok = yyvsp[0].ok;
;
break;}
case 104:
#line 816 "parser.y"
{
yyval.ok = false;
#ifdef CSS_DEBUG
kdDebug( 6080 ) << "skipping bogus declaration" << endl;
#endif
;
break;}
case 105:
#line 822 "parser.y"
{
yyval.ok = false;
#ifdef CSS_DEBUG
kdDebug( 6080 ) << "skipping all declarations" << endl;
#endif
;
break;}
case 106:
#line 831 "parser.y"
{
yyval.ok = yyvsp[-2].ok;
;
break;}
case 107:
#line 834 "parser.y"
{
yyval.ok = false;
;
break;}
case 108:
#line 837 "parser.y"
{
yyval.ok = false;
#ifdef CSS_DEBUG
kdDebug( 6080 ) << "skipping bogus declaration" << endl;
#endif
;
break;}
case 109:
#line 843 "parser.y"
{
yyval.ok = false;
#ifdef CSS_DEBUG
kdDebug( 6080 ) << "skipping bogus declaration" << endl;
#endif
;
break;}
case 110:
#line 849 "parser.y"
{
yyval.ok = yyvsp[-3].ok;
if ( yyvsp[-2].ok )
yyval.ok = yyvsp[-2].ok;
;
break;}
case 111:
#line 854 "parser.y"
{
yyval.ok = yyvsp[-3].ok;
#ifdef CSS_DEBUG
kdDebug( 6080 ) << "skipping bogus declaration" << endl;
#endif
;
break;}
case 112:
#line 860 "parser.y"
{
yyval.ok = yyvsp[-5].ok;
#ifdef CSS_DEBUG
kdDebug( 6080 ) << "skipping bogus declaration" << endl;
#endif
;
break;}
case 113:
#line 869 "parser.y"
{
yyval.ok = false;
CSSParser *p = static_cast<CSSParser *>(parser);
if ( yyvsp[-4].prop_id && yyvsp[-1].valueList ) {
p->valueList = yyvsp[-1].valueList;
#ifdef CSS_DEBUG
kdDebug( 6080 ) << " got property: " << yyvsp[-4].prop_id <<
(yyvsp[0].b?" important"
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -