summaryrefslogtreecommitdiff
path: root/css/parser.y
diff options
context:
space:
mode:
Diffstat (limited to 'css/parser.y')
-rw-r--r--css/parser.y42
1 files changed, 42 insertions, 0 deletions
diff --git a/css/parser.y b/css/parser.y
index 1dd567ff1..f043ef823 100644
--- a/css/parser.y
+++ b/css/parser.y
@@ -185,6 +185,36 @@ detail(A) ::= LBRAC IDENT(B) DASHMATCH STRING(C) RBRAC.
if (A) { A->data2 = C.text + 1; A->data2_length = C.length - 2;
A->specificity = 0x100; }
else param->memory_error = true; }
+detail(A) ::= LBRAC IDENT(B) PREFIX IDENT(C) RBRAC.
+ { A = css_new_selector(CSS_SELECTOR_ATTRIB_PRE, B.text, B.length);
+ if (A) { A->data2 = C.text; A->data2_length = C.length;
+ A->specificity = 0x100; }
+ else param->memory_error = true; }
+detail(A) ::= LBRAC IDENT(B) PREFIX STRING(C) RBRAC.
+ { A = css_new_selector(CSS_SELECTOR_ATTRIB_PRE, B.text, B.length);
+ if (A) { A->data2 = C.text + 1; A->data2_length = C.length - 2;
+ A->specificity = 0x100; }
+ else param->memory_error = true; }
+detail(A) ::= LBRAC IDENT(B) SUFFIX IDENT(C) RBRAC.
+ { A = css_new_selector(CSS_SELECTOR_ATTRIB_SUF, B.text, B.length);
+ if (A) { A->data2 = C.text; A->data2_length = C.length;
+ A->specificity = 0x100; }
+ else param->memory_error = true; }
+detail(A) ::= LBRAC IDENT(B) SUFFIX STRING(C) RBRAC.
+ { A = css_new_selector(CSS_SELECTOR_ATTRIB_SUF, B.text, B.length);
+ if (A) { A->data2 = C.text + 1; A->data2_length = C.length - 2;
+ A->specificity = 0x100; }
+ else param->memory_error = true; }
+detail(A) ::= LBRAC IDENT(B) SUBSTR IDENT(C) RBRAC.
+ { A = css_new_selector(CSS_SELECTOR_ATTRIB_SUB, B.text, B.length);
+ if (A) { A->data2 = C.text; A->data2_length = C.length;
+ A->specificity = 0x100; }
+ else param->memory_error = true; }
+detail(A) ::= LBRAC IDENT(B) SUBSTR STRING(C) RBRAC.
+ { A = css_new_selector(CSS_SELECTOR_ATTRIB_SUB, B.text, B.length);
+ if (A) { A->data2 = C.text + 1; A->data2_length = C.length - 2;
+ A->specificity = 0x100; }
+ else param->memory_error = true; }
detail(A) ::= COLON IDENT(B).
{ if (B.length == 4 && strncasecmp(B.text, "link", 4) == 0) {
A = css_new_selector(CSS_SELECTOR_ATTRIB, "href", 4);
@@ -297,6 +327,18 @@ any(A) ::= DASHMATCH.
{ A = css_new_node(param->stylesheet, CSS_NODE_DASHMATCH,
0, 0);
if (!A) param->memory_error = true; }
+any(A) ::= PREFIX.
+ { A = css_new_node(param->stylesheet, CSS_NODE_PREFIX,
+ 0, 0);
+ if (!A) param->memory_error = true; }
+any(A) ::= SUFFIX.
+ { A = css_new_node(param->stylesheet, CSS_NODE_SUFFIX,
+ 0, 0);
+ if (!A) param->memory_error = true; }
+any(A) ::= SUBSTR.
+ { A = css_new_node(param->stylesheet, CSS_NODE_SUBSTR,
+ 0, 0);
+ if (!A) param->memory_error = true; }
any(A) ::= COLON.
{ A = css_new_node(param->stylesheet, CSS_NODE_COLON, 0, 0);
if (!A) param->memory_error = true; }