Commit 9f135688 authored by Taddeüs Kroes's avatar Taddeüs Kroes

Added more CSS3 selectors

parent 70b28195
......@@ -80,8 +80,8 @@ rule token = parse
| "<!--" { CDO }
| "-->" { CDC }
| ['~''|']?'=' as op { RELATION op }
| ['>''~'] as c { COMBINATOR (Char.escaped c) }
| ['~' '^' '$' '*' '|']? '=' as op { RELATION op }
| ['>' '~'] as c { COMBINATOR (Char.escaped c) }
| mystring as s { STRING (strip_quotes s) }
| badstring { raise (SyntaxError "bad string") }
......
......@@ -228,18 +228,13 @@ simple_selector:
{ elem ^ String.concat "" addons }
| addons=element_addon+
{ String.concat "" addons }
%inline element_addon:
| a=HASH | a=cls | a=attrib | a=pseudo
{ a }
%inline element_addon: a=HASH | a=cls | a=attrib | a=pseudo { a }
element_name:
| tag=IDENT { tag }
| STAR { "*" }
cls:
| DOT name=IDENT
{ "." ^ name }
attrib:
| LBRACK S* left=IDENT S* right=pair(RELATION, rel_value)? RBRACK
{ let right = match right with None -> "" | Some (op, term) -> op ^ term in
......@@ -247,13 +242,11 @@ attrib:
%inline rel_value:
| S* id=IDENT S* { id }
| S* s=STRING S* { "\"" ^ s ^ "\"" }
pseudo:
| COLON id=IDENT
{ ":" ^ id }
| COLON f=FUNCTION S* arg=terminated(IDENT, S*)? RPAREN
{ let arg = match arg with None -> "" | Some id -> id in
":" ^ f ^ "(" ^ arg ^ ")" }
| COLON f=FUNCTION args=wslist(COMMA, simple_selector) RPAREN
{ ":" ^ f ^ "(" ^ String.concat "," args ^ ")" }
declaration:
| name=property S* COLON S* value=expr important=boption(ig2(IMPORTANT_SYM, S*))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment