summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-07-27 18:04:21 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2016-07-27 20:18:02 +0000
commit997fa05d90e9e1bc02615044fd4f042cb212be65 (patch)
tree8ac2f6d732cc484788897c82b573d5c31de432a2 /src/gui
parentf2922c80a41c5358f49dabe2325356c51fd787be (diff)
Handle indirect sibling selector
Adds parsing and handling of the indirect sibling selector, this should mean we can at least parse all CSS3 selectors even if we do not yet support all of them. Also adds tests for previously added CSS3 selectors. Change-Id: I1ce9afb9466044a38bdec167affc21a87837e4a4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/text/qcssparser.cpp21
-rw-r--r--src/gui/text/qcssparser_p.h6
-rw-r--r--src/gui/text/qcssscanner.cpp734
3 files changed, 390 insertions, 371 deletions
diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp
index 5138f7e94c..72c5d5ff33 100644
--- a/src/gui/text/qcssparser.cpp
+++ b/src/gui/text/qcssparser.cpp
@@ -1867,12 +1867,15 @@ bool StyleSelector::selectorMatches(const Selector &selector, NodePtr node)
do {
match = basicSelectorMatches(sel, node);
if (!match) {
- if (sel.relationToNext == BasicSelector::MatchNextSelectorIfParent
- || i == selector.basicSelectors.count() - 1) // first element must always match!
+ if (i == selector.basicSelectors.count() - 1) // first element must always match!
+ break;
+ if (sel.relationToNext != BasicSelector::MatchNextSelectorIfAncestor &&
+ sel.relationToNext != BasicSelector::MatchNextSelectorIfIndirectAdjecent)
break;
}
- if (match || sel.relationToNext != BasicSelector::MatchNextSelectorIfAncestor)
+ if (match || (sel.relationToNext != BasicSelector::MatchNextSelectorIfAncestor &&
+ sel.relationToNext != BasicSelector::MatchNextSelectorIfIndirectAdjecent))
--i;
if (i < 0)
@@ -1885,16 +1888,18 @@ bool StyleSelector::selectorMatches(const Selector &selector, NodePtr node)
NodePtr nextParent = parentNode(node);
freeNode(node);
node = nextParent;
- } else if (sel.relationToNext == BasicSelector::MatchNextSelectorIfPreceeds) {
+ } else if (sel.relationToNext == BasicSelector::MatchNextSelectorIfDirectAdjecent
+ || sel.relationToNext == BasicSelector::MatchNextSelectorIfIndirectAdjecent) {
NodePtr previousSibling = previousSiblingNode(node);
freeNode(node);
node = previousSibling;
- }
+ }
if (isNullNode(node)) {
match = false;
break;
}
- } while (i >= 0 && (match || sel.relationToNext == BasicSelector::MatchNextSelectorIfAncestor));
+ } while (i >= 0 && (match || sel.relationToNext == BasicSelector::MatchNextSelectorIfAncestor
+ || sel.relationToNext == BasicSelector::MatchNextSelectorIfIndirectAdjecent));
freeNode(node);
@@ -2356,9 +2361,11 @@ bool Parser::parseCombinator(BasicSelector::Relation *relation)
prev();
}
if (test(PLUS)) {
- *relation = BasicSelector::MatchNextSelectorIfPreceeds;
+ *relation = BasicSelector::MatchNextSelectorIfDirectAdjecent;
} else if (test(GREATER)) {
*relation = BasicSelector::MatchNextSelectorIfParent;
+ } else if (test(TILDE)) {
+ *relation = BasicSelector::MatchNextSelectorIfIndirectAdjecent;
}
skipSpace();
return true;
diff --git a/src/gui/text/qcssparser_p.h b/src/gui/text/qcssparser_p.h
index c40cb508fa..f5cd5395b2 100644
--- a/src/gui/text/qcssparser_p.h
+++ b/src/gui/text/qcssparser_p.h
@@ -561,7 +561,8 @@ struct BasicSelector
NoRelation,
MatchNextSelectorIfAncestor,
MatchNextSelectorIfParent,
- MatchNextSelectorIfPreceeds
+ MatchNextSelectorIfDirectAdjecent,
+ MatchNextSelectorIfIndirectAdjecent,
};
QString elementName;
@@ -690,6 +691,7 @@ enum TokenType {
PLUS,
GREATER,
COMMA,
+ TILDE,
STRING,
INVALID,
@@ -789,7 +791,7 @@ public:
inline bool testImport() { return testTokenAndEndsWith(ATKEYWORD_SYM, QLatin1String("import")); }
inline bool testMedia() { return testTokenAndEndsWith(ATKEYWORD_SYM, QLatin1String("media")); }
inline bool testPage() { return testTokenAndEndsWith(ATKEYWORD_SYM, QLatin1String("page")); }
- inline bool testCombinator() { return test(PLUS) || test(GREATER) || test(S); }
+ inline bool testCombinator() { return test(PLUS) || test(GREATER) || test(TILDE) || test(S); }
inline bool testProperty() { return test(IDENT); }
bool testTerm();
inline bool testExpr() { return testTerm(); }
diff --git a/src/gui/text/qcssscanner.cpp b/src/gui/text/qcssscanner.cpp
index 9ee075e492..33dc01c8bc 100644
--- a/src/gui/text/qcssscanner.cpp
+++ b/src/gui/text/qcssscanner.cpp
@@ -177,42 +177,44 @@ int QCssScanner_Generated::lex()
goto state_20;
if (ch.unicode() == 123)
goto state_27;
+ if (ch.unicode() == 126)
+ goto state_32;
goto out;
state_3:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 11)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 14 && ch.unicode() <= 33)
- goto state_32;
- if (ch.unicode() == 34)
goto state_33;
+ if (ch.unicode() == 34)
+ goto state_34;
if (ch.unicode() >= 35 && ch.unicode() <= 91)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 92)
- goto state_34;
+ goto state_35;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_32;
+ goto state_33;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 123)
- goto state_32;
+ goto state_33;
goto out;
state_4:
ch = next();
if (ch.unicode() == 45)
- goto state_35;
+ goto state_36;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_35;
- if (ch.unicode() == 92)
goto state_36;
+ if (ch.unicode() == 92)
+ goto state_37;
if (ch.unicode() == 95)
- goto state_35;
+ goto state_36;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_35;
+ goto state_36;
goto out;
state_5:
ch = next();
@@ -226,23 +228,23 @@ int QCssScanner_Generated::lex()
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 11)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 14 && ch.unicode() <= 38)
- goto state_38;
- if (ch.unicode() == 39)
goto state_39;
+ if (ch.unicode() == 39)
+ goto state_40;
if (ch.unicode() >= 40 && ch.unicode() <= 91)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 92)
- goto state_40;
+ goto state_41;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_38;
+ goto state_39;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 123)
- goto state_38;
+ goto state_39;
goto out;
state_9:
lastAcceptingPos = pos;
@@ -266,7 +268,7 @@ int QCssScanner_Generated::lex()
token = QCss::MINUS;
ch = next();
if (ch.unicode() == 45)
- goto state_42;
+ goto state_43;
if (ch.unicode() == 92)
goto state_23;
if (ch.unicode() == 95)
@@ -279,7 +281,7 @@ int QCssScanner_Generated::lex()
token = QCss::DOT;
ch = next();
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_43;
+ goto state_44;
goto out;
state_14:
lastAcceptingPos = pos;
@@ -295,24 +297,24 @@ int QCssScanner_Generated::lex()
token = QCss::NUMBER;
ch = next();
if (ch.unicode() == 37)
- goto state_45;
- if (ch.unicode() == 45)
goto state_46;
- if (ch.unicode() == 46)
+ if (ch.unicode() == 45)
goto state_47;
- if (ch.unicode() >= 48 && ch.unicode() <= 57)
+ if (ch.unicode() == 46)
goto state_48;
- if (ch.unicode() == 92)
+ if (ch.unicode() >= 48 && ch.unicode() <= 57)
goto state_49;
- if (ch.unicode() == 95)
+ if (ch.unicode() == 92)
goto state_50;
+ if (ch.unicode() == 95)
+ goto state_51;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_50;
+ goto state_51;
goto out;
state_18:
ch = next();
if (ch.unicode() == 33)
- goto state_51;
+ goto state_52;
goto out;
state_20:
lastAcceptingPos = pos;
@@ -321,26 +323,26 @@ int QCssScanner_Generated::lex()
state_21:
ch = next();
if (ch.unicode() == 45)
- goto state_52;
- if (ch.unicode() == 92)
goto state_53;
- if (ch.unicode() == 95)
+ if (ch.unicode() == 92)
goto state_54;
+ if (ch.unicode() == 95)
+ goto state_55;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_54;
+ goto state_55;
goto out;
state_23:
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_55;
+ goto state_56;
if (ch.unicode() == 11)
- goto state_55;
+ goto state_56;
if (ch.unicode() >= 14 && ch.unicode() <= 47)
- goto state_55;
+ goto state_56;
if (ch.unicode() >= 58 && ch.unicode() <= 96)
- goto state_55;
+ goto state_56;
if (ch.unicode() >= 103)
- goto state_55;
+ goto state_56;
goto out;
state_25:
ch = next();
@@ -354,17 +356,17 @@ int QCssScanner_Generated::lex()
token = QCss::IDENT;
ch = next();
if (ch.unicode() == 40)
- goto state_57;
- if (ch.unicode() == 45)
goto state_58;
+ if (ch.unicode() == 45)
+ goto state_59;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_58;
- if (ch.unicode() == 92)
goto state_59;
+ if (ch.unicode() == 92)
+ goto state_60;
if (ch.unicode() == 95)
- goto state_58;
+ goto state_59;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_58;
+ goto state_59;
goto out;
state_27:
lastAcceptingPos = pos;
@@ -380,6 +382,8 @@ int QCssScanner_Generated::lex()
}
goto out;
state_30:
+ lastAcceptingPos = pos;
+ token = QCss::TILDE;
ch = next();
if (ch.unicode() == 61) {
token = QCss::INCLUDES;
@@ -404,757 +408,763 @@ int QCssScanner_Generated::lex()
goto state_20;
if (ch.unicode() == 123)
goto state_27;
+ if (ch.unicode() == 126)
+ goto state_32;
goto out;
state_32:
lastAcceptingPos = pos;
+ token = QCss::TILDE;
+ goto out;
+ state_33:
+ lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 11)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 14 && ch.unicode() <= 33)
- goto state_32;
- if (ch.unicode() == 34)
goto state_33;
+ if (ch.unicode() == 34)
+ goto state_34;
if (ch.unicode() >= 35 && ch.unicode() <= 91)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 92)
- goto state_34;
+ goto state_35;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_32;
+ goto state_33;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 123)
- goto state_32;
+ goto state_33;
goto out;
- state_33:
+ state_34:
lastAcceptingPos = pos;
token = QCss::STRING;
goto out;
- state_34:
+ state_35:
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_62;
- if (ch.unicode() == 10)
goto state_63;
+ if (ch.unicode() == 10)
+ goto state_64;
if (ch.unicode() == 11)
- goto state_62;
+ goto state_63;
if (ch.unicode() == 12)
- goto state_64;
- if (ch.unicode() == 13)
goto state_65;
+ if (ch.unicode() == 13)
+ goto state_66;
if (ch.unicode() >= 14 && ch.unicode() <= 47)
- goto state_62;
+ goto state_63;
if (ch.unicode() >= 58 && ch.unicode() <= 96)
- goto state_62;
+ goto state_63;
if (ch.unicode() >= 103)
- goto state_62;
+ goto state_63;
goto out;
- state_35:
+ state_36:
lastAcceptingPos = pos;
token = QCss::HASH;
ch = next();
if (ch.unicode() == 45)
- goto state_66;
+ goto state_67;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_66;
- if (ch.unicode() == 92)
goto state_67;
+ if (ch.unicode() == 92)
+ goto state_68;
if (ch.unicode() == 95)
- goto state_66;
+ goto state_67;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_66;
+ goto state_67;
goto out;
- state_36:
+ state_37:
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_68;
+ goto state_69;
if (ch.unicode() == 11)
- goto state_68;
+ goto state_69;
if (ch.unicode() >= 14 && ch.unicode() <= 47)
- goto state_68;
+ goto state_69;
if (ch.unicode() >= 58 && ch.unicode() <= 96)
- goto state_68;
+ goto state_69;
if (ch.unicode() >= 103)
- goto state_68;
+ goto state_69;
goto out;
- state_38:
+ state_39:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 11)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 14 && ch.unicode() <= 38)
- goto state_38;
- if (ch.unicode() == 39)
goto state_39;
+ if (ch.unicode() == 39)
+ goto state_40;
if (ch.unicode() >= 40 && ch.unicode() <= 91)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 92)
- goto state_40;
+ goto state_41;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_38;
+ goto state_39;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 123)
- goto state_38;
+ goto state_39;
goto out;
- state_39:
+ state_40:
lastAcceptingPos = pos;
token = QCss::STRING;
goto out;
- state_40:
+ state_41:
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_69;
- if (ch.unicode() == 10)
goto state_70;
+ if (ch.unicode() == 10)
+ goto state_71;
if (ch.unicode() == 11)
- goto state_69;
+ goto state_70;
if (ch.unicode() == 12)
- goto state_71;
- if (ch.unicode() == 13)
goto state_72;
+ if (ch.unicode() == 13)
+ goto state_73;
if (ch.unicode() >= 14 && ch.unicode() <= 47)
- goto state_69;
+ goto state_70;
if (ch.unicode() >= 58 && ch.unicode() <= 96)
- goto state_69;
+ goto state_70;
if (ch.unicode() >= 103)
- goto state_69;
+ goto state_70;
goto out;
- state_42:
+ state_43:
ch = next();
if (ch.unicode() == 62) {
token = QCss::CDC;
goto found;
}
goto out;
- state_43:
+ state_44:
lastAcceptingPos = pos;
token = QCss::NUMBER;
ch = next();
if (ch.unicode() == 37)
- goto state_45;
- if (ch.unicode() == 45)
goto state_46;
+ if (ch.unicode() == 45)
+ goto state_47;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_74;
+ goto state_75;
if (ch.unicode() == 92)
- goto state_49;
- if (ch.unicode() == 95)
goto state_50;
+ if (ch.unicode() == 95)
+ goto state_51;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_50;
+ goto state_51;
goto out;
- state_45:
+ state_46:
lastAcceptingPos = pos;
token = QCss::PERCENTAGE;
goto out;
- state_46:
+ state_47:
ch = next();
if (ch.unicode() == 92)
- goto state_49;
- if (ch.unicode() == 95)
goto state_50;
+ if (ch.unicode() == 95)
+ goto state_51;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_50;
+ goto state_51;
goto out;
- state_47:
+ state_48:
ch = next();
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_43;
+ goto state_44;
goto out;
- state_48:
+ state_49:
lastAcceptingPos = pos;
token = QCss::NUMBER;
ch = next();
if (ch.unicode() == 37)
- goto state_45;
- if (ch.unicode() == 45)
goto state_46;
- if (ch.unicode() == 46)
+ if (ch.unicode() == 45)
goto state_47;
- if (ch.unicode() >= 48 && ch.unicode() <= 57)
+ if (ch.unicode() == 46)
goto state_48;
- if (ch.unicode() == 92)
+ if (ch.unicode() >= 48 && ch.unicode() <= 57)
goto state_49;
- if (ch.unicode() == 95)
+ if (ch.unicode() == 92)
goto state_50;
+ if (ch.unicode() == 95)
+ goto state_51;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_50;
+ goto state_51;
goto out;
- state_49:
+ state_50:
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_75;
+ goto state_76;
if (ch.unicode() == 11)
- goto state_75;
+ goto state_76;
if (ch.unicode() >= 14 && ch.unicode() <= 47)
- goto state_75;
+ goto state_76;
if (ch.unicode() >= 58 && ch.unicode() <= 96)
- goto state_75;
+ goto state_76;
if (ch.unicode() >= 103)
- goto state_75;
+ goto state_76;
goto out;
- state_50:
+ state_51:
lastAcceptingPos = pos;
token = QCss::LENGTH;
ch = next();
if (ch.unicode() == 45)
- goto state_76;
+ goto state_77;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_76;
- if (ch.unicode() == 92)
goto state_77;
+ if (ch.unicode() == 92)
+ goto state_78;
if (ch.unicode() == 95)
- goto state_76;
+ goto state_77;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_76;
+ goto state_77;
goto out;
- state_51:
+ state_52:
ch = next();
if (ch.unicode() == 45)
- goto state_78;
+ goto state_79;
goto out;
- state_52:
+ state_53:
ch = next();
if (ch.unicode() == 92)
- goto state_53;
- if (ch.unicode() == 95)
goto state_54;
+ if (ch.unicode() == 95)
+ goto state_55;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_54;
+ goto state_55;
goto out;
- state_53:
+ state_54:
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_79;
+ goto state_80;
if (ch.unicode() == 11)
- goto state_79;
+ goto state_80;
if (ch.unicode() >= 14 && ch.unicode() <= 47)
- goto state_79;
+ goto state_80;
if (ch.unicode() >= 58 && ch.unicode() <= 96)
- goto state_79;
+ goto state_80;
if (ch.unicode() >= 103)
- goto state_79;
+ goto state_80;
goto out;
- state_54:
+ state_55:
lastAcceptingPos = pos;
token = QCss::ATKEYWORD_SYM;
ch = next();
if (ch.unicode() == 45)
- goto state_80;
+ goto state_81;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_80;
- if (ch.unicode() == 92)
goto state_81;
+ if (ch.unicode() == 92)
+ goto state_82;
if (ch.unicode() == 95)
- goto state_80;
+ goto state_81;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_80;
+ goto state_81;
goto out;
- state_55:
+ state_56:
lastAcceptingPos = pos;
token = QCss::IDENT;
ch = next();
if (ch.unicode() == 40)
- goto state_57;
- if (ch.unicode() == 45)
goto state_58;
+ if (ch.unicode() == 45)
+ goto state_59;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_58;
- if (ch.unicode() == 92)
goto state_59;
+ if (ch.unicode() == 92)
+ goto state_60;
if (ch.unicode() == 95)
- goto state_58;
+ goto state_59;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_58;
+ goto state_59;
goto out;
- state_57:
+ state_58:
lastAcceptingPos = pos;
token = QCss::FUNCTION;
goto out;
- state_58:
+ state_59:
lastAcceptingPos = pos;
token = QCss::IDENT;
ch = next();
if (ch.unicode() == 40)
- goto state_57;
- if (ch.unicode() == 45)
goto state_58;
+ if (ch.unicode() == 45)
+ goto state_59;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_58;
- if (ch.unicode() == 92)
goto state_59;
+ if (ch.unicode() == 92)
+ goto state_60;
if (ch.unicode() == 95)
- goto state_58;
+ goto state_59;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_58;
+ goto state_59;
goto out;
- state_59:
+ state_60:
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_82;
+ goto state_83;
if (ch.unicode() == 11)
- goto state_82;
+ goto state_83;
if (ch.unicode() >= 14 && ch.unicode() <= 47)
- goto state_82;
+ goto state_83;
if (ch.unicode() >= 58 && ch.unicode() <= 96)
- goto state_82;
+ goto state_83;
if (ch.unicode() >= 103)
- goto state_82;
+ goto state_83;
goto out;
- state_62:
+ state_63:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 11)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 14 && ch.unicode() <= 33)
- goto state_32;
- if (ch.unicode() == 34)
goto state_33;
+ if (ch.unicode() == 34)
+ goto state_34;
if (ch.unicode() >= 35 && ch.unicode() <= 91)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 92)
- goto state_34;
+ goto state_35;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_32;
+ goto state_33;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 123)
- goto state_32;
+ goto state_33;
goto out;
- state_63:
+ state_64:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 11)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 14 && ch.unicode() <= 33)
- goto state_32;
- if (ch.unicode() == 34)
goto state_33;
+ if (ch.unicode() == 34)
+ goto state_34;
if (ch.unicode() >= 35 && ch.unicode() <= 91)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 92)
- goto state_34;
+ goto state_35;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_32;
+ goto state_33;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 123)
- goto state_32;
+ goto state_33;
goto out;
- state_64:
+ state_65:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 11)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 14 && ch.unicode() <= 33)
- goto state_32;
- if (ch.unicode() == 34)
goto state_33;
+ if (ch.unicode() == 34)
+ goto state_34;
if (ch.unicode() >= 35 && ch.unicode() <= 91)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 92)
- goto state_34;
+ goto state_35;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_32;
+ goto state_33;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 123)
- goto state_32;
+ goto state_33;
goto out;
- state_65:
+ state_66:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 10)
- goto state_83;
+ goto state_84;
if (ch.unicode() == 11)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 14 && ch.unicode() <= 33)
- goto state_32;
- if (ch.unicode() == 34)
goto state_33;
+ if (ch.unicode() == 34)
+ goto state_34;
if (ch.unicode() >= 35 && ch.unicode() <= 91)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 92)
- goto state_34;
+ goto state_35;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_32;
+ goto state_33;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 123)
- goto state_32;
+ goto state_33;
goto out;
- state_66:
+ state_67:
lastAcceptingPos = pos;
token = QCss::HASH;
ch = next();
if (ch.unicode() == 45)
- goto state_66;
+ goto state_67;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_66;
- if (ch.unicode() == 92)
goto state_67;
+ if (ch.unicode() == 92)
+ goto state_68;
if (ch.unicode() == 95)
- goto state_66;
+ goto state_67;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_66;
+ goto state_67;
goto out;
- state_67:
+ state_68:
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_84;
+ goto state_85;
if (ch.unicode() == 11)
- goto state_84;
+ goto state_85;
if (ch.unicode() >= 14 && ch.unicode() <= 47)
- goto state_84;
+ goto state_85;
if (ch.unicode() >= 58 && ch.unicode() <= 96)
- goto state_84;
+ goto state_85;
if (ch.unicode() >= 103)
- goto state_84;
+ goto state_85;
goto out;
- state_68:
+ state_69:
lastAcceptingPos = pos;
token = QCss::HASH;
ch = next();
if (ch.unicode() == 45)
- goto state_66;
+ goto state_67;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_66;
- if (ch.unicode() == 92)
goto state_67;
+ if (ch.unicode() == 92)
+ goto state_68;
if (ch.unicode() == 95)
- goto state_66;
+ goto state_67;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_66;
+ goto state_67;
goto out;
- state_69:
+ state_70:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 11)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 14 && ch.unicode() <= 38)
- goto state_38;
- if (ch.unicode() == 39)
goto state_39;
+ if (ch.unicode() == 39)
+ goto state_40;
if (ch.unicode() >= 40 && ch.unicode() <= 91)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 92)
- goto state_40;
+ goto state_41;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_38;
+ goto state_39;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 123)
- goto state_38;
+ goto state_39;
goto out;
- state_70:
+ state_71:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 11)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 14 && ch.unicode() <= 38)
- goto state_38;
- if (ch.unicode() == 39)
goto state_39;
+ if (ch.unicode() == 39)
+ goto state_40;
if (ch.unicode() >= 40 && ch.unicode() <= 91)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 92)
- goto state_40;
+ goto state_41;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_38;
+ goto state_39;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 123)
- goto state_38;
+ goto state_39;
goto out;
- state_71:
+ state_72:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 11)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 14 && ch.unicode() <= 38)
- goto state_38;
- if (ch.unicode() == 39)
goto state_39;
+ if (ch.unicode() == 39)
+ goto state_40;
if (ch.unicode() >= 40 && ch.unicode() <= 91)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 92)
- goto state_40;
+ goto state_41;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_38;
+ goto state_39;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 123)
- goto state_38;
+ goto state_39;
goto out;
- state_72:
+ state_73:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 10)
- goto state_85;
+ goto state_86;
if (ch.unicode() == 11)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 14 && ch.unicode() <= 38)
- goto state_38;
- if (ch.unicode() == 39)
goto state_39;
+ if (ch.unicode() == 39)
+ goto state_40;
if (ch.unicode() >= 40 && ch.unicode() <= 91)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 92)
- goto state_40;
+ goto state_41;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_38;
+ goto state_39;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 123)
- goto state_38;
+ goto state_39;
goto out;
- state_74:
+ state_75:
lastAcceptingPos = pos;
token = QCss::NUMBER;
ch = next();
if (ch.unicode() == 37)
- goto state_45;
- if (ch.unicode() == 45)
goto state_46;
+ if (ch.unicode() == 45)
+ goto state_47;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_74;
+ goto state_75;
if (ch.unicode() == 92)
- goto state_49;
- if (ch.unicode() == 95)
goto state_50;
+ if (ch.unicode() == 95)
+ goto state_51;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_50;
+ goto state_51;
goto out;
- state_75:
+ state_76:
lastAcceptingPos = pos;
token = QCss::LENGTH;
ch = next();
if (ch.unicode() == 45)
- goto state_76;
+ goto state_77;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_76;
- if (ch.unicode() == 92)
goto state_77;
+ if (ch.unicode() == 92)
+ goto state_78;
if (ch.unicode() == 95)
- goto state_76;
+ goto state_77;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_76;
+ goto state_77;
goto out;
- state_76:
+ state_77:
lastAcceptingPos = pos;
token = QCss::LENGTH;
ch = next();
if (ch.unicode() == 45)
- goto state_76;
+ goto state_77;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_76;
- if (ch.unicode() == 92)
goto state_77;
+ if (ch.unicode() == 92)
+ goto state_78;
if (ch.unicode() == 95)
- goto state_76;
+ goto state_77;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_76;
+ goto state_77;
goto out;
- state_77:
+ state_78:
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_86;
+ goto state_87;
if (ch.unicode() == 11)
- goto state_86;
+ goto state_87;
if (ch.unicode() >= 14 && ch.unicode() <= 47)
- goto state_86;
+ goto state_87;
if (ch.unicode() >= 58 && ch.unicode() <= 96)
- goto state_86;
+ goto state_87;
if (ch.unicode() >= 103)
- goto state_86;
+ goto state_87;
goto out;
- state_78:
+ state_79:
ch = next();
if (ch.unicode() == 45) {
token = QCss::CDO;
goto found;
}
goto out;
- state_79:
+ state_80:
lastAcceptingPos = pos;
token = QCss::ATKEYWORD_SYM;
ch = next();
if (ch.unicode() == 45)
- goto state_80;
+ goto state_81;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_80;
- if (ch.unicode() == 92)
goto state_81;
+ if (ch.unicode() == 92)
+ goto state_82;
if (ch.unicode() == 95)
- goto state_80;
+ goto state_81;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_80;
+ goto state_81;
goto out;
- state_80:
+ state_81:
lastAcceptingPos = pos;
token = QCss::ATKEYWORD_SYM;
ch = next();
if (ch.unicode() == 45)
- goto state_80;
+ goto state_81;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_80;
- if (ch.unicode() == 92)
goto state_81;
+ if (ch.unicode() == 92)
+ goto state_82;
if (ch.unicode() == 95)
- goto state_80;
+ goto state_81;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_80;
+ goto state_81;
goto out;
- state_81:
+ state_82:
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_88;
+ goto state_89;
if (ch.unicode() == 11)
- goto state_88;
+ goto state_89;
if (ch.unicode() >= 14 && ch.unicode() <= 47)
- goto state_88;
+ goto state_89;
if (ch.unicode() >= 58 && ch.unicode() <= 96)
- goto state_88;
+ goto state_89;
if (ch.unicode() >= 103)
- goto state_88;
+ goto state_89;
goto out;
- state_82:
+ state_83:
lastAcceptingPos = pos;
token = QCss::IDENT;
ch = next();
if (ch.unicode() == 40)
- goto state_57;
- if (ch.unicode() == 45)
goto state_58;
+ if (ch.unicode() == 45)
+ goto state_59;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_58;
- if (ch.unicode() == 92)
goto state_59;
+ if (ch.unicode() == 92)
+ goto state_60;
if (ch.unicode() == 95)
- goto state_58;
+ goto state_59;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_58;
+ goto state_59;
goto out;
- state_83:
+ state_84:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 11)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 14 && ch.unicode() <= 33)
- goto state_32;
- if (ch.unicode() == 34)
goto state_33;
+ if (ch.unicode() == 34)
+ goto state_34;
if (ch.unicode() >= 35 && ch.unicode() <= 91)
- goto state_32;
+ goto state_33;
if (ch.unicode() == 92)
- goto state_34;
+ goto state_35;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_32;
+ goto state_33;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_32;
+ goto state_33;
if (ch.unicode() >= 123)
- goto state_32;
+ goto state_33;
goto out;
- state_84:
+ state_85:
lastAcceptingPos = pos;
token = QCss::HASH;
ch = next();
if (ch.unicode() == 45)
- goto state_66;
+ goto state_67;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_66;
- if (ch.unicode() == 92)
goto state_67;
+ if (ch.unicode() == 92)
+ goto state_68;
if (ch.unicode() == 95)
- goto state_66;
+ goto state_67;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_66;
+ goto state_67;
goto out;
- state_85:
+ state_86:
lastAcceptingPos = pos;
token = QCss::INVALID;
ch = next();
if (ch.unicode() >= 1 && ch.unicode() <= 9)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 11)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 14 && ch.unicode() <= 38)
- goto state_38;
- if (ch.unicode() == 39)
goto state_39;
+ if (ch.unicode() == 39)
+ goto state_40;
if (ch.unicode() >= 40 && ch.unicode() <= 91)
- goto state_38;
+ goto state_39;
if (ch.unicode() == 92)
- goto state_40;
+ goto state_41;
if (ch.unicode() >= 93 && ch.unicode() <= 96)
- goto state_38;
+ goto state_39;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_38;
+ goto state_39;
if (ch.unicode() >= 123)
- goto state_38;
+ goto state_39;
goto out;
- state_86:
+ state_87:
lastAcceptingPos = pos;
token = QCss::LENGTH;
ch = next();
if (ch.unicode() == 45)
- goto state_76;
+ goto state_77;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_76;
- if (ch.unicode() == 92)
goto state_77;
+ if (ch.unicode() == 92)
+ goto state_78;
if (ch.unicode() == 95)
- goto state_76;
+ goto state_77;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_76;
+ goto state_77;
goto out;
- state_88:
+ state_89:
lastAcceptingPos = pos;
token = QCss::ATKEYWORD_SYM;
ch = next();
if (ch.unicode() == 45)
- goto state_80;
+ goto state_81;
if (ch.unicode() >= 48 && ch.unicode() <= 57)
- goto state_80;
- if (ch.unicode() == 92)
goto state_81;
+ if (ch.unicode() == 92)
+ goto state_82;
if (ch.unicode() == 95)
- goto state_80;
+ goto state_81;
if ((ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256)
- goto state_80;
+ goto state_81;
goto out;
found:
lastAcceptingPos = pos;