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 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
227 %type <rule> namespace | 227 %type <rule> namespace |
228 %type <rule> page | 228 %type <rule> page |
229 %type <rule> margin_box | 229 %type <rule> margin_box |
230 %type <rule> font_face | 230 %type <rule> font_face |
231 %type <rule> host | 231 %type <rule> host |
232 %type <rule> keyframes | 232 %type <rule> keyframes |
233 %type <rule> invalid_rule | 233 %type <rule> invalid_rule |
234 %type <rule> rule | 234 %type <rule> rule |
235 %type <rule> valid_rule | 235 %type <rule> valid_rule |
236 %type <ruleList> block_rule_body | 236 %type <ruleList> block_rule_body |
237 %type <ruleList> block_rule_list | 237 %type <ruleList> block_rule_list |
238 %type <ruleList> region_block_rule_body | 238 %type <ruleList> region_block_rule_body |
239 %type <ruleList> region_block_rule_list | 239 %type <ruleList> region_block_rule_list |
240 %type <rule> block_rule | 240 %type <rule> block_rule |
241 %type <rule> block_valid_rule | 241 %type <rule> block_valid_rule |
242 %type <rule> region | 242 %type <rule> region |
243 %type <rule> supports | 243 %type <rule> supports |
244 %type <rule> viewport | 244 %type <rule> viewport |
245 %type <rule> filter | 245 %type <rule> filter |
246 | 246 |
247 %type <string> maybe_ns_prefix | 247 %type <string> maybe_ns_prefix |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
460 parser->m_hadSyntacticallyValidCSSRule = true; | 460 parser->m_hadSyntacticallyValidCSSRule = true; |
461 } | 461 } |
462 | invalid_rule | 462 | invalid_rule |
463 ; | 463 ; |
464 | 464 |
465 block_rule_body: | 465 block_rule_body: |
466 block_rule_list | 466 block_rule_list |
467 | block_rule_list error error_location rule_error_recovery { | 467 | block_rule_list error error_location rule_error_recovery { |
468 parser->reportError($3, CSSParser::InvalidRuleError); | 468 parser->reportError($3, CSSParser::InvalidRuleError); |
469 } | 469 } |
470 ; | 470 ; |
471 | 471 |
472 block_rule_list: | 472 block_rule_list: |
473 /* empty */ { $$ = 0; } | 473 /* empty */ { $$ = 0; } |
474 | block_rule_list block_rule maybe_sgml { | 474 | block_rule_list block_rule maybe_sgml { |
475 $$ = $1; | 475 $$ = 1; |
apavlov
2013/06/19 14:02:19
$1, not 1
SeRya
2013/06/19 14:07:01
Done.
| |
476 if ($2) { | 476 if ($2) { |
477 if (!$$) | 477 if (!$$) |
478 $$ = parser->createRuleList(); | 478 $$ = parser->createRuleList(); |
479 $$->append($2); | 479 $$->append($2); |
480 } | 480 } |
481 } | 481 } |
482 ; | 482 ; |
483 | 483 |
484 region_block_rule_body: | 484 region_block_rule_body: |
485 region_block_rule_list | 485 region_block_rule_list |
486 | region_block_rule_list error error_location rule_error_recovery { | 486 | region_block_rule_list error error_location rule_error_recovery { |
487 parser->reportError($3, CSSParser::InvalidRuleError); | 487 parser->reportError($3, CSSParser::InvalidRuleError); |
488 } | 488 } |
489 ; | 489 ; |
490 | 490 |
491 region_block_rule_list: | 491 region_block_rule_list: |
492 /* empty */ { $$ = 0; } | 492 /* empty */ { $$ = 0; } |
493 | region_block_rule_list block_valid_rule maybe_sgml { | 493 | region_block_rule_list block_valid_rule maybe_sgml { |
494 $$ = $1; | |
495 if ($2) { | 494 if ($2) { |
496 if (!$$) | 495 if (!$$) |
497 $$ = parser->createRuleList(); | 496 $$ = parser->createRuleList(); |
498 $$->append($2); | 497 $$->append($2); |
499 } | 498 } |
500 } | 499 } |
501 ; | 500 ; |
502 | 501 |
503 block_valid_rule: | 502 block_valid_rule: |
504 ruleset | 503 ruleset |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
560 | before_namespace_rule NAMESPACE_SYM maybe_space maybe_ns_prefix string_or_ur i maybe_space invalid_block { | 559 | before_namespace_rule NAMESPACE_SYM maybe_space maybe_ns_prefix string_or_ur i maybe_space invalid_block { |
561 $$ = 0; | 560 $$ = 0; |
562 } | 561 } |
563 | before_namespace_rule NAMESPACE_SYM at_rule_recovery { | 562 | before_namespace_rule NAMESPACE_SYM at_rule_recovery { |
564 $$ = 0; | 563 $$ = 0; |
565 } | 564 } |
566 ; | 565 ; |
567 | 566 |
568 maybe_ns_prefix: | 567 maybe_ns_prefix: |
569 /* empty */ { $$.clear(); } | 568 /* empty */ { $$.clear(); } |
570 | IDENT maybe_space { $$ = $1; } | 569 | IDENT maybe_space |
571 ; | 570 ; |
572 | 571 |
573 string_or_uri: | 572 string_or_uri: |
574 STRING | 573 STRING |
575 | URI | 574 | URI |
576 ; | 575 ; |
577 | 576 |
578 maybe_media_value: | 577 maybe_media_value: |
579 /*empty*/ { | 578 /*empty*/ { |
580 $$ = 0; | 579 $$ = 0; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
655 } | 654 } |
656 | media_list | 655 | media_list |
657 ; | 656 ; |
658 | 657 |
659 media_list: | 658 media_list: |
660 media_query { | 659 media_query { |
661 $$ = parser->createMediaQuerySet(); | 660 $$ = parser->createMediaQuerySet(); |
662 $$->addMediaQuery(parser->sinkFloatingMediaQuery($1)); | 661 $$->addMediaQuery(parser->sinkFloatingMediaQuery($1)); |
663 } | 662 } |
664 | mq_list media_query { | 663 | mq_list media_query { |
665 $$ = $1; | 664 $$ = 1; |
apavlov
2013/06/19 14:02:19
ditto
SeRya
2013/06/19 14:07:01
Done.
| |
666 $$->addMediaQuery(parser->sinkFloatingMediaQuery($2)); | 665 $$->addMediaQuery(parser->sinkFloatingMediaQuery($2)); |
667 } | 666 } |
668 | mq_list { | 667 | mq_list { |
669 $$ = $1; | 668 $$ = $1; |
670 $$->addMediaQuery(parser->sinkFloatingMediaQuery(parser->createFloatingN otAllQuery())); | 669 $$->addMediaQuery(parser->sinkFloatingMediaQuery(parser->createFloatingN otAllQuery())); |
671 } | 670 } |
672 ; | 671 ; |
673 | 672 |
674 mq_list: | 673 mq_list: |
675 media_query ',' maybe_space { | 674 media_query ',' maybe_space { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
711 $$ = 0; | 710 $$ = 0; |
712 parser->endRuleBody(true); | 711 parser->endRuleBody(true); |
713 } | 712 } |
714 | before_media_rule MEDIA_SYM at_rule_recovery { | 713 | before_media_rule MEDIA_SYM at_rule_recovery { |
715 $$ = 0; | 714 $$ = 0; |
716 parser->endRuleBody(true); | 715 parser->endRuleBody(true); |
717 } | 716 } |
718 ; | 717 ; |
719 | 718 |
720 medium: | 719 medium: |
721 IDENT maybe_space { | 720 IDENT maybe_space |
722 $$ = $1; | |
723 } | |
724 ; | 721 ; |
725 | 722 |
726 supports: | 723 supports: |
727 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 { | 724 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 { |
728 $$ = parser->createSupportsRule($4, $9); | 725 $$ = parser->createSupportsRule($4, $9); |
729 } | 726 } |
730 | before_supports_rule SUPPORTS_SYM error error_location rule_error_recovery at_rule_end { | 727 | before_supports_rule SUPPORTS_SYM error error_location rule_error_recovery at_rule_end { |
731 $$ = 0; | 728 $$ = 0; |
732 parser->reportError($4, CSSParser::InvalidSupportsConditionError); | 729 parser->reportError($4, CSSParser::InvalidSupportsConditionError); |
733 parser->endRuleBody(true); | 730 parser->endRuleBody(true); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
820 | 817 |
821 keyframes: | 818 keyframes: |
822 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 { | 819 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 { |
823 $$ = parser->createKeyframesRule($4, parser->sinkFloatingKeyframeVector( $9)); | 820 $$ = parser->createKeyframesRule($4, parser->sinkFloatingKeyframeVector( $9)); |
824 } | 821 } |
825 | before_keyframes_rule WEBKIT_KEYFRAMES_SYM at_rule_recovery { | 822 | before_keyframes_rule WEBKIT_KEYFRAMES_SYM at_rule_recovery { |
826 $$ = 0; | 823 $$ = 0; |
827 parser->endRuleBody(true); | 824 parser->endRuleBody(true); |
828 } | 825 } |
829 ; | 826 ; |
830 | 827 |
831 keyframe_name: | 828 keyframe_name: |
832 IDENT | 829 IDENT |
833 | STRING | 830 | STRING |
834 ; | 831 ; |
835 | 832 |
836 keyframes_rule: | 833 keyframes_rule: |
837 keyframe_rule_list | 834 keyframe_rule_list |
838 | keyframe_rule_list keyframes_error_recovery { | 835 | keyframe_rule_list keyframes_error_recovery { |
839 parser->clearProperties(); | 836 parser->clearProperties(); |
840 }; | 837 }; |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
914 } | 911 } |
915 ; | 912 ; |
916 | 913 |
917 page_selector: | 914 page_selector: |
918 IDENT maybe_space { | 915 IDENT maybe_space { |
919 $$ = parser->createFloatingSelectorWithTagName(QualifiedName(nullAtom, $ 1, parser->m_defaultNamespace)); | 916 $$ = parser->createFloatingSelectorWithTagName(QualifiedName(nullAtom, $ 1, parser->m_defaultNamespace)); |
920 $$->setForPage(); | 917 $$->setForPage(); |
921 } | 918 } |
922 | IDENT pseudo_page maybe_space { | 919 | IDENT pseudo_page maybe_space { |
923 $$ = $2; | 920 $$ = $2; |
924 if ($$) { | 921 $$->prependTagSelector(QualifiedName(nullAtom, $1, parser->m_defaultName space)); |
925 $$->prependTagSelector(QualifiedName(nullAtom, $1, parser->m_default Namespace)); | 922 $$->setForPage(); |
926 $$->setForPage(); | |
927 } | |
928 } | 923 } |
929 | pseudo_page maybe_space { | 924 | pseudo_page maybe_space { |
930 $$ = $1; | 925 $$ = $1; |
931 if ($$) | 926 $$->setForPage(); |
932 $$->setForPage(); | |
933 } | 927 } |
934 | /* empty */ { | 928 | /* empty */ { |
935 $$ = parser->createFloatingSelector(); | 929 $$ = parser->createFloatingSelector(); |
936 $$->setForPage(); | 930 $$->setForPage(); |
937 } | 931 } |
938 ; | 932 ; |
939 | 933 |
940 declarations_and_margins: | 934 declarations_and_margins: |
941 declaration_list | 935 declaration_list |
942 | declarations_and_margins margin_box maybe_space declaration_list | 936 | declarations_and_margins margin_box maybe_space declaration_list |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1096 } | 1090 } |
1097 ; | 1091 ; |
1098 | 1092 |
1099 combinator: | 1093 combinator: |
1100 '+' maybe_space { $$ = CSSSelector::DirectAdjacent; } | 1094 '+' maybe_space { $$ = CSSSelector::DirectAdjacent; } |
1101 | '~' maybe_space { $$ = CSSSelector::IndirectAdjacent; } | 1095 | '~' maybe_space { $$ = CSSSelector::IndirectAdjacent; } |
1102 | '>' maybe_space { $$ = CSSSelector::Child; } | 1096 | '>' maybe_space { $$ = CSSSelector::Child; } |
1103 ; | 1097 ; |
1104 | 1098 |
1105 maybe_unary_operator: | 1099 maybe_unary_operator: |
1106 unary_operator { $$ = $1; } | 1100 unary_operator |
1107 | { $$ = 1; } | 1101 | { $$ = 1; } |
1108 ; | 1102 ; |
1109 | 1103 |
1110 unary_operator: | 1104 unary_operator: |
1111 '-' { $$ = -1; } | 1105 '-' { $$ = -1; } |
1112 | '+' { $$ = 1; } | 1106 | '+' { $$ = 1; } |
1113 ; | 1107 ; |
1114 | 1108 |
1115 maybe_space_before_declaration: | 1109 maybe_space_before_declaration: |
1116 maybe_space { | 1110 maybe_space { |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1191 while (end->tagHistory()) | 1185 while (end->tagHistory()) |
1192 end = end->tagHistory(); | 1186 end = end->tagHistory(); |
1193 end->setRelation($2); | 1187 end->setRelation($2); |
1194 end->setTagHistory(parser->sinkFloatingSelector($1)); | 1188 end->setTagHistory(parser->sinkFloatingSelector($1)); |
1195 } | 1189 } |
1196 ; | 1190 ; |
1197 | 1191 |
1198 namespace_selector: | 1192 namespace_selector: |
1199 /* empty */ '|' { $$.clear(); } | 1193 /* empty */ '|' { $$.clear(); } |
1200 | '*' '|' { static LChar star = '*'; $$.init(&star, 1); } | 1194 | '*' '|' { static LChar star = '*'; $$.init(&star, 1); } |
1201 | IDENT '|' { $$ = $1; } | 1195 | IDENT '|' |
1202 ; | 1196 ; |
1203 | 1197 |
1204 simple_selector: | 1198 simple_selector: |
1205 element_name { | 1199 element_name { |
1206 $$ = parser->createFloatingSelectorWithTagName(QualifiedName(nullAtom, $ 1, parser->m_defaultNamespace)); | 1200 $$ = parser->createFloatingSelectorWithTagName(QualifiedName(nullAtom, $ 1, parser->m_defaultNamespace)); |
1207 } | 1201 } |
1208 | element_name specifier_list { | 1202 | element_name specifier_list { |
1209 $$ = parser->rewriteSpecifiersWithElementName(nullAtom, $1, $2); | 1203 $$ = parser->rewriteSpecifiersWithElementName(nullAtom, $1, $2); |
1210 if (!$$) | 1204 if (!$$) |
1211 YYERROR; | 1205 YYERROR; |
1212 } | 1206 } |
1213 | specifier_list { | 1207 | specifier_list { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1249 parser->tokenToLowerCase($1); | 1243 parser->tokenToLowerCase($1); |
1250 $$ = $1; | 1244 $$ = $1; |
1251 } | 1245 } |
1252 | '*' { | 1246 | '*' { |
1253 static LChar star = '*'; | 1247 static LChar star = '*'; |
1254 $$.init(&star, 1); | 1248 $$.init(&star, 1); |
1255 } | 1249 } |
1256 ; | 1250 ; |
1257 | 1251 |
1258 specifier_list: | 1252 specifier_list: |
1259 specifier { | 1253 specifier |
1260 $$ = $1; | |
1261 } | |
1262 | specifier_list specifier { | 1254 | specifier_list specifier { |
1263 $$ = parser->rewriteSpecifiers($1, $2); | 1255 $$ = parser->rewriteSpecifiers($1, $2); |
1264 } | 1256 } |
1265 ; | 1257 ; |
1266 | 1258 |
1267 specifier: | 1259 specifier: |
1268 IDSEL { | 1260 IDSEL { |
1269 $$ = parser->createFloatingSelector(); | 1261 $$ = parser->createFloatingSelector(); |
1270 $$->setMatch(CSSSelector::Id); | 1262 $$->setMatch(CSSSelector::Id); |
1271 if (parser->m_context.mode == CSSQuirksMode) | 1263 if (parser->m_context.mode == CSSQuirksMode) |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1492 | ':' NOTFUNCTION selector_recovery closing_parenthesis { | 1484 | ':' NOTFUNCTION selector_recovery closing_parenthesis { |
1493 YYERROR; | 1485 YYERROR; |
1494 } | 1486 } |
1495 ; | 1487 ; |
1496 | 1488 |
1497 selector_recovery: | 1489 selector_recovery: |
1498 error error_location error_recovery; | 1490 error error_location error_recovery; |
1499 | 1491 |
1500 declaration_list: | 1492 declaration_list: |
1501 /* empty */ { $$ = false; } | 1493 /* empty */ { $$ = false; } |
1502 | declaration { | 1494 | declaration |
1503 $$ = $1; | 1495 | decl_list declaration { |
1496 $$ = $1 || $2; | |
1504 } | 1497 } |
1505 | decl_list declaration { | 1498 | decl_list |
1506 $$ = $1; | |
1507 if ( $2 ) | |
1508 $$ = $2; | |
1509 } | |
1510 | decl_list { | |
1511 $$ = $1; | |
1512 } | |
1513 ; | 1499 ; |
1514 | 1500 |
1515 decl_list: | 1501 decl_list: |
1516 declaration ';' maybe_space { | 1502 declaration ';' maybe_space { |
1517 parser->startProperty(); | 1503 parser->startProperty(); |
1518 $$ = $1; | 1504 $$ = $1; |
1519 } | 1505 } |
1520 | decl_list declaration ';' maybe_space { | 1506 | decl_list declaration ';' maybe_space { |
1521 parser->startProperty(); | 1507 parser->startProperty(); |
1522 $$ = $1; | 1508 $$ = $1 || $2; |
1523 if ($2) | |
1524 $$ = $2; | |
1525 } | 1509 } |
1526 ; | 1510 ; |
1527 | 1511 |
1528 declaration: | 1512 declaration: |
1529 VAR_DEFINITION maybe_space ':' maybe_space expr prio { | 1513 VAR_DEFINITION maybe_space ':' maybe_space expr prio { |
1530 parser->storeVariableDeclaration($1, parser->sinkFloatingValueList($5), $6); | 1514 parser->storeVariableDeclaration($1, parser->sinkFloatingValueList($5), $6); |
1531 $$ = true; | 1515 $$ = true; |
1532 parser->endProperty($6, true); | 1516 parser->endProperty($6, true); |
1533 } | 1517 } |
1534 | | 1518 | |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1588 | /* empty */ { $$ = false; } | 1572 | /* empty */ { $$ = false; } |
1589 ; | 1573 ; |
1590 | 1574 |
1591 expr: | 1575 expr: |
1592 term { | 1576 term { |
1593 $$ = parser->createFloatingValueList(); | 1577 $$ = parser->createFloatingValueList(); |
1594 $$->addValue(parser->sinkFloatingValue($1)); | 1578 $$->addValue(parser->sinkFloatingValue($1)); |
1595 } | 1579 } |
1596 | expr operator term { | 1580 | expr operator term { |
1597 $$ = $1; | 1581 $$ = $1; |
1598 if ($2) | 1582 $$->addValue(makeOperatorValue($2)); |
1599 $$->addValue(makeOperatorValue($2)); | |
1600 $$->addValue(parser->sinkFloatingValue($3)); | 1583 $$->addValue(parser->sinkFloatingValue($3)); |
1601 } | 1584 } |
1585 | expr term { | |
1586 $$ = $1; | |
1587 $$->addValue(parser->sinkFloatingValue($2)); | |
1588 } | |
1602 ; | 1589 ; |
1603 | 1590 |
1604 expr_recovery: | 1591 expr_recovery: |
1605 error error_location error_recovery { | 1592 error error_location error_recovery { |
1606 parser->reportError($2, CSSParser::PropertyDeclarationError); | 1593 parser->reportError($2, CSSParser::PropertyDeclarationError); |
1607 } | 1594 } |
1608 ; | 1595 ; |
1609 | 1596 |
1610 operator: | 1597 operator: |
1611 '/' maybe_space { | 1598 '/' maybe_space { |
1612 $$ = '/'; | 1599 $$ = '/'; |
1613 } | 1600 } |
1614 | ',' maybe_space { | 1601 | ',' maybe_space { |
1615 $$ = ','; | 1602 $$ = ','; |
1616 } | 1603 } |
1617 | /* empty */ { | |
1618 $$ = 0; | |
1619 } | |
1620 ; | 1604 ; |
1621 | 1605 |
1622 term: | 1606 term: |
1623 unary_term maybe_space { $$ = $1; } | 1607 unary_term maybe_space |
1624 | unary_operator unary_term maybe_space { $$ = $2; $$.fValue *= $1; } | 1608 | unary_operator unary_term maybe_space { $$ = $2; $$.fValue *= $1; } |
1625 | STRING maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSP rimitiveValue::CSS_STRING; } | 1609 | STRING maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSP rimitiveValue::CSS_STRING; } |
1626 | IDENT maybe_space { | 1610 | IDENT maybe_space { |
1627 $$.id = cssValueKeywordID($1); | 1611 $$.id = cssValueKeywordID($1); |
1628 $$.unit = CSSPrimitiveValue::CSS_IDENT; | 1612 $$.unit = CSSPrimitiveValue::CSS_IDENT; |
1629 $$.string = $1; | 1613 $$.string = $1; |
1630 } | 1614 } |
1631 /* 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. */ | 1615 /* 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. */ |
1632 | DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPr imitiveValue::CSS_DIMENSION; } | 1616 | DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPr imitiveValue::CSS_DIMENSION; } |
1633 | unary_operator DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $2; $$.unit = CSSPrimitiveValue::CSS_DIMENSION; } | 1617 | unary_operator DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $2; $$.unit = CSSPrimitiveValue::CSS_DIMENSION; } |
1634 | URI maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrim itiveValue::CSS_URI; } | 1618 | URI maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrim itiveValue::CSS_URI; } |
1635 | UNICODERANGE maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; } | 1619 | UNICODERANGE maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; } |
1636 | HEX maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrim itiveValue::CSS_PARSER_HEXCOLOR; } | 1620 | HEX maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrim itiveValue::CSS_PARSER_HEXCOLOR; } |
1637 | '#' maybe_space { $$.id = CSSValueInvalid; $$.string = CSSParserString(); $$ .unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } /* Handle error case: "color: #;" */ | 1621 | '#' maybe_space { $$.id = CSSValueInvalid; $$.string = CSSParserString(); $$ .unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } /* Handle error case: "color: #;" */ |
1638 | VARFUNCTION maybe_space IDENT closing_parenthesis maybe_space { | 1622 | VARFUNCTION maybe_space IDENT closing_parenthesis maybe_space { |
1639 $$.id = CSSValueInvalid; | 1623 $$.id = CSSValueInvalid; |
1640 $$.string = $3; | 1624 $$.string = $3; |
1641 $$.unit = CSSPrimitiveValue::CSS_VARIABLE_NAME; | 1625 $$.unit = CSSPrimitiveValue::CSS_VARIABLE_NAME; |
1642 } | 1626 } |
1643 /* FIXME: according to the specs a function can have a unary_operator in front . I know no case where this makes sense */ | 1627 /* FIXME: according to the specs a function can have a unary_operator in front . I know no case where this makes sense */ |
1644 | function maybe_space { | 1628 | function maybe_space |
1645 $$ = $1; | 1629 | calc_function maybe_space |
1646 } | 1630 | min_or_max_function maybe_space |
1647 | calc_function maybe_space { | |
1648 $$ = $1; | |
1649 } | |
1650 | min_or_max_function maybe_space { | |
1651 $$ = $1; | |
1652 } | |
1653 | '%' maybe_space { /* Handle width: %; */ | 1631 | '%' maybe_space { /* Handle width: %; */ |
1654 $$.id = CSSValueInvalid; $$.unit = 0; | 1632 $$.id = CSSValueInvalid; $$.unit = 0; |
1655 } | 1633 } |
1656 ; | 1634 ; |
1657 | 1635 |
1658 unary_term: | 1636 unary_term: |
1659 INTEGER { $$.setFromNumber($1); $$.isInt = true; } | 1637 INTEGER { $$.setFromNumber($1); $$.isInt = true; } |
1660 | FLOATTOKEN { $$.setFromNumber($1); } | 1638 | FLOATTOKEN { $$.setFromNumber($1); } |
1661 | PERCENTAGE { $$.setFromNumber($1, CSSPrimitiveValue::CSS_PERCENTAGE); } | 1639 | PERCENTAGE { $$.setFromNumber($1, CSSPrimitiveValue::CSS_PERCENTAGE); } |
1662 | PXS { $$.setFromNumber($1, CSSPrimitiveValue::CSS_PX); } | 1640 | PXS { $$.setFromNumber($1, CSSPrimitiveValue::CSS_PX); } |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1698 } | | 1676 } | |
1699 FUNCTION maybe_space closing_parenthesis { | 1677 FUNCTION maybe_space closing_parenthesis { |
1700 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati ngValueList(parser->createFloatingValueList()))); | 1678 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati ngValueList(parser->createFloatingValueList()))); |
1701 } | | 1679 } | |
1702 FUNCTION maybe_space expr_recovery closing_parenthesis { | 1680 FUNCTION maybe_space expr_recovery closing_parenthesis { |
1703 YYERROR; | 1681 YYERROR; |
1704 } | 1682 } |
1705 ; | 1683 ; |
1706 | 1684 |
1707 calc_func_term: | 1685 calc_func_term: |
1708 unary_term { $$ = $1; } | 1686 unary_term |
1709 | VARFUNCTION maybe_space IDENT closing_parenthesis { | 1687 | VARFUNCTION maybe_space IDENT closing_parenthesis { |
1710 $$.id = CSSValueInvalid; | 1688 $$.id = CSSValueInvalid; |
1711 $$.string = $3; | 1689 $$.string = $3; |
1712 $$.unit = CSSPrimitiveValue::CSS_VARIABLE_NAME; | 1690 $$.unit = CSSPrimitiveValue::CSS_VARIABLE_NAME; |
1713 } | 1691 } |
1714 | unary_operator unary_term { $$ = $2; $$.fValue *= $1; } | 1692 | unary_operator unary_term { $$ = $2; $$.fValue *= $1; } |
1715 ; | 1693 ; |
1716 | 1694 |
1717 calc_func_operator: | 1695 calc_func_operator: |
1718 WHITESPACE '+' WHITESPACE { | 1696 WHITESPACE '+' WHITESPACE { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1757 } | 1735 } |
1758 | calc_func_expr calc_func_operator calc_func_paren_expr { | 1736 | calc_func_expr calc_func_operator calc_func_paren_expr { |
1759 $$ = $1; | 1737 $$ = $1; |
1760 $$->addValue(makeOperatorValue($2)); | 1738 $$->addValue(makeOperatorValue($2)); |
1761 $$->extend(*($3)); | 1739 $$->extend(*($3)); |
1762 } | 1740 } |
1763 | calc_func_paren_expr | 1741 | calc_func_paren_expr |
1764 ; | 1742 ; |
1765 | 1743 |
1766 calc_func_expr_list: | 1744 calc_func_expr_list: |
1767 calc_func_expr calc_maybe_space { | 1745 calc_func_expr calc_maybe_space |
1768 $$ = $1; | |
1769 } | |
1770 | calc_func_expr_list ',' maybe_space calc_func_expr calc_maybe_space { | 1746 | calc_func_expr_list ',' maybe_space calc_func_expr calc_maybe_space { |
1771 $$ = $1; | 1747 $$ = $1; |
1772 $$->addValue(makeOperatorValue(',')); | 1748 $$->addValue(makeOperatorValue(',')); |
1773 $$->extend(*($4)); | 1749 $$->extend(*($4)); |
1774 } | 1750 } |
1775 ; | 1751 ; |
1776 | 1752 |
1777 calc_function: | 1753 calc_function: |
1778 CALCFUNCTION maybe_space calc_func_expr calc_maybe_space closing_parenthesis { | 1754 CALCFUNCTION maybe_space calc_func_expr calc_maybe_space closing_parenthesis { |
1779 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati ngValueList($3))); | 1755 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati ngValueList($3))); |
1780 } | 1756 } |
1781 | CALCFUNCTION maybe_space expr_recovery closing_parenthesis { | 1757 | CALCFUNCTION maybe_space expr_recovery closing_parenthesis { |
1782 YYERROR; | 1758 YYERROR; |
1783 } | 1759 } |
1784 ; | 1760 ; |
1785 | 1761 |
1786 | 1762 |
1787 min_or_max: | 1763 min_or_max: |
1788 MINFUNCTION { | 1764 MINFUNCTION |
1789 $$ = $1; | 1765 | MAXFUNCTION |
1790 } | |
1791 | MAXFUNCTION { | |
1792 $$ = $1; | |
1793 } | |
1794 ; | 1766 ; |
1795 | 1767 |
1796 min_or_max_function: | 1768 min_or_max_function: |
1797 min_or_max maybe_space calc_func_expr_list closing_parenthesis { | 1769 min_or_max maybe_space calc_func_expr_list closing_parenthesis { |
1798 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati ngValueList($3))); | 1770 $$.setFromFunction(parser->createFloatingFunction($1, parser->sinkFloati ngValueList($3))); |
1799 } | 1771 } |
1800 | min_or_max maybe_space expr_recovery closing_parenthesis { | 1772 | min_or_max maybe_space expr_recovery closing_parenthesis { |
1801 YYERROR; | 1773 YYERROR; |
1802 } | 1774 } |
1803 ; | 1775 ; |
1804 | 1776 |
1805 invalid_at: | 1777 invalid_at: |
1806 ATKEYWORD | 1778 ATKEYWORD |
1807 | margin_sym | 1779 | margin_sym |
1808 ; | 1780 ; |
1809 | 1781 |
1810 at_rule_recovery: | 1782 at_rule_recovery: |
1811 at_rule_header_recovery at_invalid_rule_header_end at_rule_end | 1783 at_rule_header_recovery at_invalid_rule_header_end at_rule_end |
1812 ; | 1784 ; |
1813 | 1785 |
1814 at_rule_header_recovery: | 1786 at_rule_header_recovery: |
1815 error error_location rule_error_recovery { | 1787 error error_location rule_error_recovery { |
1816 parser->reportError($2, CSSParser::InvalidRuleError); | 1788 parser->reportError($2, CSSParser::InvalidRuleError); |
1817 } | 1789 } |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1872 | 1844 |
1873 rule_error_recovery: | 1845 rule_error_recovery: |
1874 /* empty */ | 1846 /* empty */ |
1875 | rule_error_recovery error | 1847 | rule_error_recovery error |
1876 | rule_error_recovery invalid_square_brackets_block | 1848 | rule_error_recovery invalid_square_brackets_block |
1877 | rule_error_recovery invalid_parentheses_block | 1849 | rule_error_recovery invalid_parentheses_block |
1878 ; | 1850 ; |
1879 | 1851 |
1880 %% | 1852 %% |
1881 | 1853 |
OLD | NEW |