| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org) |
| 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 App
le Inc. All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 App
le Inc. All rights reserved. |
| 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
| 5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> | 5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> |
| 6 * Copyright (C) 2012 Intel Corporation. All rights reserved. | 6 * Copyright (C) 2012 Intel Corporation. All rights reserved. |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 %type <rule> namespace | 228 %type <rule> namespace |
| 229 %type <rule> page | 229 %type <rule> page |
| 230 %type <rule> margin_box | 230 %type <rule> margin_box |
| 231 %type <rule> font_face | 231 %type <rule> font_face |
| 232 %type <rule> host | 232 %type <rule> host |
| 233 %type <rule> keyframes | 233 %type <rule> keyframes |
| 234 %type <rule> invalid_rule | 234 %type <rule> invalid_rule |
| 235 %type <rule> rule | 235 %type <rule> rule |
| 236 %type <rule> valid_rule | 236 %type <rule> valid_rule |
| 237 %type <ruleList> block_rule_body | 237 %type <ruleList> block_rule_body |
| 238 %type <ruleList> block_rule_list | 238 %type <ruleList> block_rule_list |
| 239 %type <ruleList> region_block_rule_body | 239 %type <ruleList> region_block_rule_body |
| 240 %type <ruleList> region_block_rule_list | 240 %type <ruleList> region_block_rule_list |
| 241 %type <rule> block_rule | 241 %type <rule> block_rule |
| 242 %type <rule> block_valid_rule | 242 %type <rule> block_valid_rule |
| 243 %type <rule> region | 243 %type <rule> region |
| 244 %type <rule> supports | 244 %type <rule> supports |
| 245 %type <rule> viewport | 245 %type <rule> viewport |
| 246 %type <rule> filter | 246 %type <rule> filter |
| 247 | 247 |
| 248 %type <string> maybe_ns_prefix | 248 %type <string> maybe_ns_prefix |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 parser->m_hadSyntacticallyValidCSSRule = true; | 461 parser->m_hadSyntacticallyValidCSSRule = true; |
| 462 } | 462 } |
| 463 | invalid_rule | 463 | invalid_rule |
| 464 ; | 464 ; |
| 465 | 465 |
| 466 block_rule_body: | 466 block_rule_body: |
| 467 block_rule_list | 467 block_rule_list |
| 468 | block_rule_list error error_location rule_error_recovery { | 468 | block_rule_list error error_location rule_error_recovery { |
| 469 parser->reportError($3, CSSParser::InvalidRuleError); | 469 parser->reportError($3, CSSParser::InvalidRuleError); |
| 470 } | 470 } |
| 471 ; | 471 ; |
| 472 | 472 |
| 473 block_rule_list: | 473 block_rule_list: |
| 474 /* empty */ { $$ = 0; } | 474 /* empty */ { $$ = 0; } |
| 475 | block_rule_list block_rule maybe_sgml { | 475 | block_rule_list block_rule maybe_sgml { |
| 476 $$ = $1; | 476 $$ = $1; |
| 477 if ($2) { | 477 if ($2) { |
| 478 if (!$$) | 478 if (!$$) |
| 479 $$ = parser->createRuleList(); | 479 $$ = parser->createRuleList(); |
| 480 $$->append($2); | 480 $$->append($2); |
| 481 } | 481 } |
| 482 } | 482 } |
| 483 ; | 483 ; |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 561 | before_namespace_rule NAMESPACE_SYM maybe_space maybe_ns_prefix string_or_ur
i maybe_space invalid_block { | 561 | before_namespace_rule NAMESPACE_SYM maybe_space maybe_ns_prefix string_or_ur
i maybe_space invalid_block { |
| 562 $$ = 0; | 562 $$ = 0; |
| 563 } | 563 } |
| 564 | before_namespace_rule NAMESPACE_SYM at_rule_recovery { | 564 | before_namespace_rule NAMESPACE_SYM at_rule_recovery { |
| 565 $$ = 0; | 565 $$ = 0; |
| 566 } | 566 } |
| 567 ; | 567 ; |
| 568 | 568 |
| 569 maybe_ns_prefix: | 569 maybe_ns_prefix: |
| 570 /* empty */ { $$.clear(); } | 570 /* empty */ { $$.clear(); } |
| 571 | IDENT maybe_space { $$ = $1; } | 571 | IDENT maybe_space |
| 572 ; | 572 ; |
| 573 | 573 |
| 574 string_or_uri: | 574 string_or_uri: |
| 575 STRING | 575 STRING |
| 576 | URI | 576 | URI |
| 577 ; | 577 ; |
| 578 | 578 |
| 579 maybe_media_value: | 579 maybe_media_value: |
| 580 /*empty*/ { | 580 /*empty*/ { |
| 581 $$ = 0; | 581 $$ = 0; |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 712 $$ = 0; | 712 $$ = 0; |
| 713 parser->endRuleBody(true); | 713 parser->endRuleBody(true); |
| 714 } | 714 } |
| 715 | before_media_rule MEDIA_SYM at_rule_recovery { | 715 | before_media_rule MEDIA_SYM at_rule_recovery { |
| 716 $$ = 0; | 716 $$ = 0; |
| 717 parser->endRuleBody(true); | 717 parser->endRuleBody(true); |
| 718 } | 718 } |
| 719 ; | 719 ; |
| 720 | 720 |
| 721 medium: | 721 medium: |
| 722 IDENT maybe_space { | 722 IDENT maybe_space |
| 723 $$ = $1; | |
| 724 } | |
| 725 ; | 723 ; |
| 726 | 724 |
| 727 supports: | 725 supports: |
| 728 before_supports_rule SUPPORTS_SYM maybe_space supports_condition at_supports
_rule_header_end '{' at_rule_body_start maybe_space block_rule_body closing_brac
e { | 726 before_supports_rule SUPPORTS_SYM maybe_space supports_condition at_supports
_rule_header_end '{' at_rule_body_start maybe_space block_rule_body closing_brac
e { |
| 729 $$ = parser->createSupportsRule($4, $9); | 727 $$ = parser->createSupportsRule($4, $9); |
| 730 } | 728 } |
| 731 | before_supports_rule SUPPORTS_SYM error error_location rule_error_recovery
at_rule_end { | 729 | before_supports_rule SUPPORTS_SYM error error_location rule_error_recovery
at_rule_end { |
| 732 $$ = 0; | 730 $$ = 0; |
| 733 parser->reportError($4, CSSParser::InvalidSupportsConditionError); | 731 parser->reportError($4, CSSParser::InvalidSupportsConditionError); |
| 734 parser->endRuleBody(true); | 732 parser->endRuleBody(true); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 821 | 819 |
| 822 keyframes: | 820 keyframes: |
| 823 before_keyframes_rule WEBKIT_KEYFRAMES_SYM maybe_space keyframe_name at_rule
_header_end_maybe_space '{' at_rule_body_start maybe_space keyframes_rule closin
g_brace { | 821 before_keyframes_rule WEBKIT_KEYFRAMES_SYM maybe_space keyframe_name at_rule
_header_end_maybe_space '{' at_rule_body_start maybe_space keyframes_rule closin
g_brace { |
| 824 $$ = parser->createKeyframesRule($4, parser->sinkFloatingKeyframeVector(
$9)); | 822 $$ = parser->createKeyframesRule($4, parser->sinkFloatingKeyframeVector(
$9)); |
| 825 } | 823 } |
| 826 | before_keyframes_rule WEBKIT_KEYFRAMES_SYM at_rule_recovery { | 824 | before_keyframes_rule WEBKIT_KEYFRAMES_SYM at_rule_recovery { |
| 827 $$ = 0; | 825 $$ = 0; |
| 828 parser->endRuleBody(true); | 826 parser->endRuleBody(true); |
| 829 } | 827 } |
| 830 ; | 828 ; |
| 831 | 829 |
| 832 keyframe_name: | 830 keyframe_name: |
| 833 IDENT | 831 IDENT |
| 834 | STRING | 832 | STRING |
| 835 ; | 833 ; |
| 836 | 834 |
| 837 keyframes_rule: | 835 keyframes_rule: |
| 838 keyframe_rule_list | 836 keyframe_rule_list |
| 839 | keyframe_rule_list keyframes_error_recovery { | 837 | keyframe_rule_list keyframes_error_recovery { |
| 840 parser->clearProperties(); | 838 parser->clearProperties(); |
| 841 }; | 839 }; |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 915 } | 913 } |
| 916 ; | 914 ; |
| 917 | 915 |
| 918 page_selector: | 916 page_selector: |
| 919 IDENT maybe_space { | 917 IDENT maybe_space { |
| 920 $$ = parser->createFloatingSelectorWithTagName(QualifiedName(nullAtom, $
1, parser->m_defaultNamespace)); | 918 $$ = parser->createFloatingSelectorWithTagName(QualifiedName(nullAtom, $
1, parser->m_defaultNamespace)); |
| 921 $$->setForPage(); | 919 $$->setForPage(); |
| 922 } | 920 } |
| 923 | IDENT pseudo_page maybe_space { | 921 | IDENT pseudo_page maybe_space { |
| 924 $$ = $2; | 922 $$ = $2; |
| 925 if ($$) { | 923 $$->prependTagSelector(QualifiedName(nullAtom, $1, parser->m_defaultName
space)); |
| 926 $$->prependTagSelector(QualifiedName(nullAtom, $1, parser->m_default
Namespace)); | 924 $$->setForPage(); |
| 927 $$->setForPage(); | |
| 928 } | |
| 929 } | 925 } |
| 930 | pseudo_page maybe_space { | 926 | pseudo_page maybe_space { |
| 931 $$ = $1; | 927 $$ = $1; |
| 932 if ($$) | 928 $$->setForPage(); |
| 933 $$->setForPage(); | |
| 934 } | 929 } |
| 935 | /* empty */ { | 930 | /* empty */ { |
| 936 $$ = parser->createFloatingSelector(); | 931 $$ = parser->createFloatingSelector(); |
| 937 $$->setForPage(); | 932 $$->setForPage(); |
| 938 } | 933 } |
| 939 ; | 934 ; |
| 940 | 935 |
| 941 declarations_and_margins: | 936 declarations_and_margins: |
| 942 declaration_list | 937 declaration_list |
| 943 | declarations_and_margins margin_box maybe_space declaration_list | 938 | declarations_and_margins margin_box maybe_space declaration_list |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1097 } | 1092 } |
| 1098 ; | 1093 ; |
| 1099 | 1094 |
| 1100 combinator: | 1095 combinator: |
| 1101 '+' maybe_space { $$ = CSSSelector::DirectAdjacent; } | 1096 '+' maybe_space { $$ = CSSSelector::DirectAdjacent; } |
| 1102 | '~' maybe_space { $$ = CSSSelector::IndirectAdjacent; } | 1097 | '~' maybe_space { $$ = CSSSelector::IndirectAdjacent; } |
| 1103 | '>' maybe_space { $$ = CSSSelector::Child; } | 1098 | '>' maybe_space { $$ = CSSSelector::Child; } |
| 1104 ; | 1099 ; |
| 1105 | 1100 |
| 1106 maybe_unary_operator: | 1101 maybe_unary_operator: |
| 1107 unary_operator { $$ = $1; } | 1102 unary_operator |
| 1108 | { $$ = 1; } | 1103 | /* empty */ { $$ = 1; } |
| 1109 ; | 1104 ; |
| 1110 | 1105 |
| 1111 unary_operator: | 1106 unary_operator: |
| 1112 '-' { $$ = -1; } | 1107 '-' { $$ = -1; } |
| 1113 | '+' { $$ = 1; } | 1108 | '+' { $$ = 1; } |
| 1114 ; | 1109 ; |
| 1115 | 1110 |
| 1116 maybe_space_before_declaration: | 1111 maybe_space_before_declaration: |
| 1117 maybe_space { | 1112 maybe_space { |
| 1118 parser->startProperty(); | 1113 parser->startProperty(); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1192 while (end->tagHistory()) | 1187 while (end->tagHistory()) |
| 1193 end = end->tagHistory(); | 1188 end = end->tagHistory(); |
| 1194 end->setRelation($2); | 1189 end->setRelation($2); |
| 1195 end->setTagHistory(parser->sinkFloatingSelector($1)); | 1190 end->setTagHistory(parser->sinkFloatingSelector($1)); |
| 1196 } | 1191 } |
| 1197 ; | 1192 ; |
| 1198 | 1193 |
| 1199 namespace_selector: | 1194 namespace_selector: |
| 1200 /* empty */ '|' { $$.clear(); } | 1195 /* empty */ '|' { $$.clear(); } |
| 1201 | '*' '|' { static LChar star = '*'; $$.init(&star, 1); } | 1196 | '*' '|' { static LChar star = '*'; $$.init(&star, 1); } |
| 1202 | IDENT '|' { $$ = $1; } | 1197 | IDENT '|' |
| 1203 ; | 1198 ; |
| 1204 | 1199 |
| 1205 simple_selector: | 1200 simple_selector: |
| 1206 element_name { | 1201 element_name { |
| 1207 $$ = parser->createFloatingSelectorWithTagName(QualifiedName(nullAtom, $
1, parser->m_defaultNamespace)); | 1202 $$ = parser->createFloatingSelectorWithTagName(QualifiedName(nullAtom, $
1, parser->m_defaultNamespace)); |
| 1208 } | 1203 } |
| 1209 | element_name specifier_list { | 1204 | element_name specifier_list { |
| 1210 $$ = parser->rewriteSpecifiersWithElementName(nullAtom, $1, $2); | 1205 $$ = parser->rewriteSpecifiersWithElementName(nullAtom, $1, $2); |
| 1211 if (!$$) | 1206 if (!$$) |
| 1212 YYERROR; | 1207 YYERROR; |
| 1213 } | 1208 } |
| 1214 | specifier_list { | 1209 | specifier_list { |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1250 parser->tokenToLowerCase($1); | 1245 parser->tokenToLowerCase($1); |
| 1251 $$ = $1; | 1246 $$ = $1; |
| 1252 } | 1247 } |
| 1253 | '*' { | 1248 | '*' { |
| 1254 static LChar star = '*'; | 1249 static LChar star = '*'; |
| 1255 $$.init(&star, 1); | 1250 $$.init(&star, 1); |
| 1256 } | 1251 } |
| 1257 ; | 1252 ; |
| 1258 | 1253 |
| 1259 specifier_list: | 1254 specifier_list: |
| 1260 specifier { | 1255 specifier |
| 1261 $$ = $1; | |
| 1262 } | |
| 1263 | specifier_list specifier { | 1256 | specifier_list specifier { |
| 1264 $$ = parser->rewriteSpecifiers($1, $2); | 1257 $$ = parser->rewriteSpecifiers($1, $2); |
| 1265 } | 1258 } |
| 1266 ; | 1259 ; |
| 1267 | 1260 |
| 1268 specifier: | 1261 specifier: |
| 1269 IDSEL { | 1262 IDSEL { |
| 1270 $$ = parser->createFloatingSelector(); | 1263 $$ = parser->createFloatingSelector(); |
| 1271 $$->setMatch(CSSSelector::Id); | 1264 $$->setMatch(CSSSelector::Id); |
| 1272 if (parser->m_context.mode == CSSQuirksMode) | 1265 if (parser->m_context.mode == CSSQuirksMode) |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1493 | ':' NOTFUNCTION selector_recovery closing_parenthesis { | 1486 | ':' NOTFUNCTION selector_recovery closing_parenthesis { |
| 1494 YYERROR; | 1487 YYERROR; |
| 1495 } | 1488 } |
| 1496 ; | 1489 ; |
| 1497 | 1490 |
| 1498 selector_recovery: | 1491 selector_recovery: |
| 1499 error error_location error_recovery; | 1492 error error_location error_recovery; |
| 1500 | 1493 |
| 1501 declaration_list: | 1494 declaration_list: |
| 1502 /* empty */ { $$ = false; } | 1495 /* empty */ { $$ = false; } |
| 1503 | declaration { | 1496 | declaration |
| 1504 $$ = $1; | 1497 | decl_list declaration { |
| 1498 $$ = $1 || $2; |
| 1505 } | 1499 } |
| 1506 | decl_list declaration { | 1500 | decl_list |
| 1507 $$ = $1; | |
| 1508 if ( $2 ) | |
| 1509 $$ = $2; | |
| 1510 } | |
| 1511 | decl_list { | |
| 1512 $$ = $1; | |
| 1513 } | |
| 1514 ; | 1501 ; |
| 1515 | 1502 |
| 1516 decl_list: | 1503 decl_list: |
| 1517 declaration ';' maybe_space { | 1504 declaration ';' maybe_space { |
| 1518 parser->startProperty(); | 1505 parser->startProperty(); |
| 1519 $$ = $1; | 1506 $$ = $1; |
| 1520 } | 1507 } |
| 1521 | decl_list declaration ';' maybe_space { | 1508 | decl_list declaration ';' maybe_space { |
| 1522 parser->startProperty(); | 1509 parser->startProperty(); |
| 1523 $$ = $1; | 1510 $$ = $1 || $2; |
| 1524 if ($2) | |
| 1525 $$ = $2; | |
| 1526 } | 1511 } |
| 1527 ; | 1512 ; |
| 1528 | 1513 |
| 1529 declaration: | 1514 declaration: |
| 1530 VAR_DEFINITION maybe_space ':' maybe_space expr prio { | 1515 VAR_DEFINITION maybe_space ':' maybe_space expr prio { |
| 1531 parser->storeVariableDeclaration($1, parser->sinkFloatingValueList($5),
$6); | 1516 parser->storeVariableDeclaration($1, parser->sinkFloatingValueList($5),
$6); |
| 1532 $$ = true; | 1517 $$ = true; |
| 1533 parser->endProperty($6, true); | 1518 parser->endProperty($6, true); |
| 1534 } | 1519 } |
| 1535 | | 1520 | |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1589 | /* empty */ { $$ = false; } | 1574 | /* empty */ { $$ = false; } |
| 1590 ; | 1575 ; |
| 1591 | 1576 |
| 1592 expr: | 1577 expr: |
| 1593 term { | 1578 term { |
| 1594 $$ = parser->createFloatingValueList(); | 1579 $$ = parser->createFloatingValueList(); |
| 1595 $$->addValue(parser->sinkFloatingValue($1)); | 1580 $$->addValue(parser->sinkFloatingValue($1)); |
| 1596 } | 1581 } |
| 1597 | expr operator term { | 1582 | expr operator term { |
| 1598 $$ = $1; | 1583 $$ = $1; |
| 1599 if ($2) | 1584 $$->addValue(makeOperatorValue($2)); |
| 1600 $$->addValue(makeOperatorValue($2)); | |
| 1601 $$->addValue(parser->sinkFloatingValue($3)); | 1585 $$->addValue(parser->sinkFloatingValue($3)); |
| 1602 } | 1586 } |
| 1587 | expr term { |
| 1588 $$ = $1; |
| 1589 $$->addValue(parser->sinkFloatingValue($2)); |
| 1590 } |
| 1603 ; | 1591 ; |
| 1604 | 1592 |
| 1605 expr_recovery: | 1593 expr_recovery: |
| 1606 error error_location error_recovery { | 1594 error error_location error_recovery { |
| 1607 parser->reportError($2, CSSParser::PropertyDeclarationError); | 1595 parser->reportError($2, CSSParser::PropertyDeclarationError); |
| 1608 } | 1596 } |
| 1609 ; | 1597 ; |
| 1610 | 1598 |
| 1611 operator: | 1599 operator: |
| 1612 '/' maybe_space { | 1600 '/' maybe_space { |
| 1613 $$ = '/'; | 1601 $$ = '/'; |
| 1614 } | 1602 } |
| 1615 | ',' maybe_space { | 1603 | ',' maybe_space { |
| 1616 $$ = ','; | 1604 $$ = ','; |
| 1617 } | 1605 } |
| 1618 | /* empty */ { | |
| 1619 $$ = 0; | |
| 1620 } | |
| 1621 ; | 1606 ; |
| 1622 | 1607 |
| 1623 term: | 1608 term: |
| 1624 unary_term maybe_space { $$ = $1; } | 1609 unary_term maybe_space |
| 1625 | unary_operator unary_term maybe_space { $$ = $2; $$.fValue *= $1; } | 1610 | unary_operator unary_term maybe_space { $$ = $2; $$.fValue *= $1; } |
| 1626 | STRING maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSP
rimitiveValue::CSS_STRING; } | 1611 | STRING maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSP
rimitiveValue::CSS_STRING; } |
| 1627 | IDENT maybe_space { | 1612 | IDENT maybe_space { |
| 1628 $$.id = cssValueKeywordID($1); | 1613 $$.id = cssValueKeywordID($1); |
| 1629 $$.unit = CSSPrimitiveValue::CSS_IDENT; | 1614 $$.unit = CSSPrimitiveValue::CSS_IDENT; |
| 1630 $$.string = $1; | 1615 $$.string = $1; |
| 1631 } | 1616 } |
| 1632 /* We might need to actually parse the number from a dimension, but we can't j
ust put something that uses $$.string into unary_term. */ | 1617 /* We might need to actually parse the number from a dimension, but we can't j
ust put something that uses $$.string into unary_term. */ |
| 1633 | DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPr
imitiveValue::CSS_DIMENSION; } | 1618 | DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPr
imitiveValue::CSS_DIMENSION; } |
| 1634 | unary_operator DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $2;
$$.unit = CSSPrimitiveValue::CSS_DIMENSION; } | 1619 | unary_operator DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $2;
$$.unit = CSSPrimitiveValue::CSS_DIMENSION; } |
| 1635 | URI maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrim
itiveValue::CSS_URI; } | 1620 | URI maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrim
itiveValue::CSS_URI; } |
| 1636 | UNICODERANGE maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit
= CSSPrimitiveValue::CSS_UNICODE_RANGE; } | 1621 | UNICODERANGE maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit
= CSSPrimitiveValue::CSS_UNICODE_RANGE; } |
| 1637 | HEX maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrim
itiveValue::CSS_PARSER_HEXCOLOR; } | 1622 | HEX maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrim
itiveValue::CSS_PARSER_HEXCOLOR; } |
| 1638 | '#' maybe_space { $$.id = CSSValueInvalid; $$.string = CSSParserString(); $$
.unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } /* Handle error case: "color:
#;" */ | 1623 | '#' maybe_space { $$.id = CSSValueInvalid; $$.string = CSSParserString(); $$
.unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } /* Handle error case: "color:
#;" */ |
| 1639 | VARFUNCTION maybe_space IDENT closing_parenthesis maybe_space { | 1624 | VARFUNCTION maybe_space IDENT closing_parenthesis maybe_space { |
| 1640 $$.id = CSSValueInvalid; | 1625 $$.id = CSSValueInvalid; |
| 1641 $$.string = $3; | 1626 $$.string = $3; |
| 1642 $$.unit = CSSPrimitiveValue::CSS_VARIABLE_NAME; | 1627 $$.unit = CSSPrimitiveValue::CSS_VARIABLE_NAME; |
| 1643 } | 1628 } |
| 1644 | VARFUNCTION maybe_space expr_recovery closing_parenthesis { | 1629 | VARFUNCTION maybe_space expr_recovery closing_parenthesis { |
| 1645 YYERROR; | 1630 YYERROR; |
| 1646 } | 1631 } |
| 1647 /* FIXME: according to the specs a function can have a unary_operator in front
. I know no case where this makes sense */ | 1632 /* FIXME: according to the specs a function can have a unary_operator in front
. I know no case where this makes sense */ |
| 1648 | function maybe_space { | 1633 | function maybe_space |
| 1649 $$ = $1; | 1634 | calc_function maybe_space |
| 1650 } | 1635 | min_or_max_function maybe_space |
| 1651 | calc_function maybe_space { | |
| 1652 $$ = $1; | |
| 1653 } | |
| 1654 | min_or_max_function maybe_space { | |
| 1655 $$ = $1; | |
| 1656 } | |
| 1657 | '%' maybe_space { /* Handle width: %; */ | 1636 | '%' maybe_space { /* Handle width: %; */ |
| 1658 $$.id = CSSValueInvalid; $$.unit = 0; | 1637 $$.id = CSSValueInvalid; $$.unit = 0; |
| 1659 } | 1638 } |
| 1660 ; | 1639 ; |
| 1661 | 1640 |
| 1662 unary_term: | 1641 unary_term: |
| 1663 INTEGER { $$.setFromNumber($1); $$.isInt = true; } | 1642 INTEGER { $$.setFromNumber($1); $$.isInt = true; } |
| 1664 | FLOATTOKEN { $$.setFromNumber($1); } | 1643 | FLOATTOKEN { $$.setFromNumber($1); } |
| 1665 | PERCENTAGE { $$.setFromNumber($1, CSSPrimitiveValue::CSS_PERCENTAGE); } | 1644 | PERCENTAGE { $$.setFromNumber($1, CSSPrimitiveValue::CSS_PERCENTAGE); } |
| 1666 | PXS { $$.setFromNumber($1, CSSPrimitiveValue::CSS_PX); } | 1645 | PXS { $$.setFromNumber($1, CSSPrimitiveValue::CSS_PX); } |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1702 } | | 1681 } | |
| 1703 FUNCTION maybe_space closing_parenthesis { | 1682 FUNCTION maybe_space closing_parenthesis { |
| 1704 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati
ngValueList(parser->createFloatingValueList()))); | 1683 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati
ngValueList(parser->createFloatingValueList()))); |
| 1705 } | | 1684 } | |
| 1706 FUNCTION maybe_space expr_recovery closing_parenthesis { | 1685 FUNCTION maybe_space expr_recovery closing_parenthesis { |
| 1707 YYERROR; | 1686 YYERROR; |
| 1708 } | 1687 } |
| 1709 ; | 1688 ; |
| 1710 | 1689 |
| 1711 calc_func_term: | 1690 calc_func_term: |
| 1712 unary_term { $$ = $1; } | 1691 unary_term |
| 1713 | VARFUNCTION maybe_space IDENT closing_parenthesis { | 1692 | VARFUNCTION maybe_space IDENT closing_parenthesis { |
| 1714 $$.id = CSSValueInvalid; | 1693 $$.id = CSSValueInvalid; |
| 1715 $$.string = $3; | 1694 $$.string = $3; |
| 1716 $$.unit = CSSPrimitiveValue::CSS_VARIABLE_NAME; | 1695 $$.unit = CSSPrimitiveValue::CSS_VARIABLE_NAME; |
| 1717 } | 1696 } |
| 1718 | unary_operator unary_term { $$ = $2; $$.fValue *= $1; } | 1697 | unary_operator unary_term { $$ = $2; $$.fValue *= $1; } |
| 1719 ; | 1698 ; |
| 1720 | 1699 |
| 1721 calc_func_operator: | 1700 calc_func_operator: |
| 1722 WHITESPACE '+' WHITESPACE { | 1701 WHITESPACE '+' WHITESPACE { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1761 } | 1740 } |
| 1762 | calc_func_expr calc_func_operator calc_func_paren_expr { | 1741 | calc_func_expr calc_func_operator calc_func_paren_expr { |
| 1763 $$ = $1; | 1742 $$ = $1; |
| 1764 $$->addValue(makeOperatorValue($2)); | 1743 $$->addValue(makeOperatorValue($2)); |
| 1765 $$->extend(*($3)); | 1744 $$->extend(*($3)); |
| 1766 } | 1745 } |
| 1767 | calc_func_paren_expr | 1746 | calc_func_paren_expr |
| 1768 ; | 1747 ; |
| 1769 | 1748 |
| 1770 calc_func_expr_list: | 1749 calc_func_expr_list: |
| 1771 calc_func_expr calc_maybe_space { | 1750 calc_func_expr calc_maybe_space |
| 1772 $$ = $1; | |
| 1773 } | |
| 1774 | calc_func_expr_list ',' maybe_space calc_func_expr calc_maybe_space { | 1751 | calc_func_expr_list ',' maybe_space calc_func_expr calc_maybe_space { |
| 1775 $$ = $1; | 1752 $$ = $1; |
| 1776 $$->addValue(makeOperatorValue(',')); | 1753 $$->addValue(makeOperatorValue(',')); |
| 1777 $$->extend(*($4)); | 1754 $$->extend(*($4)); |
| 1778 } | 1755 } |
| 1779 ; | 1756 ; |
| 1780 | 1757 |
| 1781 calc_function: | 1758 calc_function: |
| 1782 CALCFUNCTION maybe_space calc_func_expr calc_maybe_space closing_parenthesis
{ | 1759 CALCFUNCTION maybe_space calc_func_expr calc_maybe_space closing_parenthesis
{ |
| 1783 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati
ngValueList($3))); | 1760 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati
ngValueList($3))); |
| 1784 } | 1761 } |
| 1785 | CALCFUNCTION maybe_space expr_recovery closing_parenthesis { | 1762 | CALCFUNCTION maybe_space expr_recovery closing_parenthesis { |
| 1786 YYERROR; | 1763 YYERROR; |
| 1787 } | 1764 } |
| 1788 ; | 1765 ; |
| 1789 | 1766 |
| 1790 | 1767 |
| 1791 min_or_max: | 1768 min_or_max: |
| 1792 MINFUNCTION { | 1769 MINFUNCTION |
| 1793 $$ = $1; | 1770 | MAXFUNCTION |
| 1794 } | |
| 1795 | MAXFUNCTION { | |
| 1796 $$ = $1; | |
| 1797 } | |
| 1798 ; | 1771 ; |
| 1799 | 1772 |
| 1800 min_or_max_function: | 1773 min_or_max_function: |
| 1801 min_or_max maybe_space calc_func_expr_list closing_parenthesis { | 1774 min_or_max maybe_space calc_func_expr_list closing_parenthesis { |
| 1802 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati
ngValueList($3))); | 1775 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati
ngValueList($3))); |
| 1803 } | 1776 } |
| 1804 | min_or_max maybe_space expr_recovery closing_parenthesis { | 1777 | min_or_max maybe_space expr_recovery closing_parenthesis { |
| 1805 YYERROR; | 1778 YYERROR; |
| 1806 } | 1779 } |
| 1807 ; | 1780 ; |
| 1808 | 1781 |
| 1809 invalid_at: | 1782 invalid_at: |
| 1810 ATKEYWORD | 1783 ATKEYWORD |
| 1811 | margin_sym | 1784 | margin_sym |
| 1812 ; | 1785 ; |
| 1813 | 1786 |
| 1814 at_rule_recovery: | 1787 at_rule_recovery: |
| 1815 at_rule_header_recovery at_invalid_rule_header_end at_rule_end | 1788 at_rule_header_recovery at_invalid_rule_header_end at_rule_end |
| 1816 ; | 1789 ; |
| 1817 | 1790 |
| 1818 at_rule_header_recovery: | 1791 at_rule_header_recovery: |
| 1819 error error_location rule_error_recovery { | 1792 error error_location rule_error_recovery { |
| 1820 parser->reportError($2, CSSParser::InvalidRuleError); | 1793 parser->reportError($2, CSSParser::InvalidRuleError); |
| 1821 } | 1794 } |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1876 | 1849 |
| 1877 rule_error_recovery: | 1850 rule_error_recovery: |
| 1878 /* empty */ | 1851 /* empty */ |
| 1879 | rule_error_recovery error | 1852 | rule_error_recovery error |
| 1880 | rule_error_recovery invalid_square_brackets_block | 1853 | rule_error_recovery invalid_square_brackets_block |
| 1881 | rule_error_recovery invalid_parentheses_block | 1854 | rule_error_recovery invalid_parentheses_block |
| 1882 ; | 1855 ; |
| 1883 | 1856 |
| 1884 %% | 1857 %% |
| 1885 | 1858 |
| OLD | NEW |