qt5base-lts/util/lexgen/css3-simplified.lexgen
Allan Sandfeld Jensen 997fa05d90 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>
2016-07-27 20:18:02 +00:00

98 lines
1.8 KiB
Plaintext

[Options]
case-sensitive
classname = QCssScanner_Generated
[Code Generator Options]
MapToCode[a-z] = (ch.unicode() >= 'a' && ch.unicode() <= 'z') || (ch.unicode() >= 'A' && ch.unicode() <= 'Z') || ch.unicode() >= 256
TokenPrefix = QCss::
FileHeader = ../../src/tools/moc/util/licenseheader.txt
[Macros]
escape = \\[^\r\n\f0-9a-f]
nmstart = [_a-z]|{escape}
nmchar = [_a-z0-9-]|{escape}
nl = \n|\r\n|\r|\f
string1 = \"([^\n\r\f\\"]|\\{nl}|{escape})*\"
string2 = \'([^\n\r\f\\']|\\{nl}|{escape})*\'
invalid1 = \"([^\n\r\f\\"]|\\{nl}|{escape})*
invalid2 = \'([^\n\r\f\\']|\\{nl}|{escape})*
ident = -?{nmstart}{nmchar}*
name = {nmchar}+
num = [0-9]+|[0-9]*"."[0-9]+
string = {string1}|{string2}
invalid = {invalid1}|{invalid2}
url = ([!#$%&*-~]|{escape})*
s = [ \t\r\n\f]
w = {s}*
[Tokens]
S = {s}+
handleCommentStart() = \/\*
CDO = "<!--"
CDC = "-->"
INCLUDES = "~="
DASHMATCH = "|="
BEGINSWITH = "^="
ENDSWITH = "$="
CONTAINS = "*="
LBRACE = {w}"{"
PLUS = {w}"+"
GREATER = {w}">"
COMMA = {w}","
TILDE= {w}"~"
STRING = {string}
INVALID = {invalid}
IDENT = {ident}
HASH = "#"{name}
ATKEYWORD_SYM = "@"{ident}
EXCLAMATION_SYM = "!"
#EMS = {num}em
#EXS = {num}ex
#LENGTH = {num}px
#LENGTH = {num}cm
#LENGTH = {num}mm
#LENGTH = {num}in
#LENGTH = {num}pt
#LENGTH = {num}pc
#ANGLE = {num}deg
#ANGLE = {num}rad
#ANGLE = {num}grad
#TIME = {num}ms
#TIME = {num}s
#FREQ = {num}hz
#FREQ = {num}khz
#DIMENSION = {num}{ident}
LENGTH = {num}{ident}
PERCENTAGE = {num}%
NUMBER = {num}
#URI = "url("{w}{string}{w}")"
#URI = "url("{w}{url}{w}")"
FUNCTION = {ident}"("
COLON = :
SEMICOLON = ;
RBRACE = \}
SLASH = /
MINUS = -
DOT = \.
STAR = \*
LBRACKET = \[
RBRACKET = \]
EQUAL = \=
LPAREN = \(
RPAREN = \)
OR = \|