From cc5252a98ef538690250fab9952cb44dbb00fb12 Mon Sep 17 00:00:00 2001 From: Haijian Wang Date: Tue, 19 Feb 2013 12:43:26 +0200 Subject: [PATCH] Selector now can begin with a combinator. (Ticket #10754) Change-Id: Id2f1a006e4caaf790f573ee823fcc41312f30261 --- .../vaadin/sass/internal/parser/Parser.java | 2262 ++++++++--------- .../com/vaadin/sass/internal/parser/Parser.jj | 47 +- .../internal/parser/ParserTokenManager.java | 30 +- .../css/nested-selector-begin-with-plus.css | 9 + .../scss/nested-selector-begin-with-plus.scss | 9 + ...extender_and_sibling_selector_extendee.css | 0 ...xtender_and_sibling_selector_extendee.scss | 0 7 files changed, 1179 insertions(+), 1178 deletions(-) create mode 100644 theme-compiler/tests/resources/automatic/css/nested-selector-begin-with-plus.css create mode 100644 theme-compiler/tests/resources/automatic/scss/nested-selector-begin-with-plus.scss rename theme-compiler/tests/resources/{sasslangbroken => sasslang}/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css (100%) rename theme-compiler/tests/resources/{sasslangbroken => sasslang}/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss (100%) diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java index 3863a30379..4861a27e75 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java @@ -152,7 +152,6 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { /** * This method parses only one rule (style rule or at-rule, except - * * @charset). * * @param source @@ -606,6 +605,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case INCLUDE_SYM: includeDirective(); break; + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -941,6 +943,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { documentHandler.startKeyframeSelector(n.image); label_21: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -966,6 +971,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break label_21; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -1113,6 +1121,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case WARN_SYM: debuggingDirective(); break; + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -1127,12 +1138,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case LBRACE: case DASHMATCH: case INCLUDES: - case PLUS: case MINUS: case COMMA: case SEMICOLON: - case PRECEDES: - case SIBLING: case NONASCII: case STRING: case NUMBER: @@ -1567,15 +1575,6 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case SEMICOLON: n = jj_consume_token(SEMICOLON); break; - case PLUS: - n = jj_consume_token(PLUS); - break; - case PRECEDES: - n = jj_consume_token(PRECEDES); - break; - case SIBLING: - n = jj_consume_token(SIBLING); - break; case MINUS: n = jj_consume_token(MINUS); break; @@ -1605,61 +1604,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { char connector = ' '; switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case PLUS: - jj_consume_token(PLUS); - label_42: while (true) { - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case S: - ; - break; - default: - jj_la1[58] = jj_gen; - break label_42; - } - jj_consume_token(S); - } - { - if (true) { - return '+'; - } - } - break; case PRECEDES: - jj_consume_token(PRECEDES); - label_43: while (true) { - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case S: - ; - break; - default: - jj_la1[59] = jj_gen; - break label_43; - } - jj_consume_token(S); - } - { - if (true) { - return '>'; - } - } - break; case SIBLING: - jj_consume_token(SIBLING); - label_44: while (true) { - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case S: - ; - break; - default: - jj_la1[60] = jj_gen; - break label_44; - } - jj_consume_token(S); - } - { - if (true) { - return '~'; - } - } + connector = combinatorChar(); break; case S: jj_consume_token(S); @@ -1667,51 +1614,60 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case PLUS: case PRECEDES: case SIBLING: - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case PLUS: - jj_consume_token(PLUS); - connector = '+'; - break; - case PRECEDES: - jj_consume_token(PRECEDES); - connector = '>'; - break; - case SIBLING: - jj_consume_token(SIBLING); - connector = '~'; - break; - default: - jj_la1[61] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - label_45: while (true) { - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case S: - ; - break; - default: - jj_la1[62] = jj_gen; - break label_45; - } - jj_consume_token(S); - } + connector = combinatorChar(); break; default: - jj_la1[63] = jj_gen; + jj_la1[58] = jj_gen; ; } - { - if (true) { - return connector; - } + break; + default: + jj_la1[59] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + { + if (true) { + return connector; } + } + throw new Error("Missing return statement in function"); + } + + /** to refactor combinator and reuse in selector(). */ + final public char combinatorChar() throws ParseException { + Token t; + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + t = jj_consume_token(PLUS); + break; + case PRECEDES: + t = jj_consume_token(PRECEDES); + break; + case SIBLING: + t = jj_consume_token(SIBLING); break; default: - jj_la1[64] = jj_gen; + jj_la1[60] = jj_gen; jj_consume_token(-1); throw new ParseException(); } + label_42: while (true) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[61] = jj_gen; + break label_42; + } + jj_consume_token(S); + } + { + if (true) { + return t.image.charAt(0); + } + } throw new Error("Missing return statement in function"); } @@ -1721,20 +1677,20 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { String value = ""; // This is not really taking the syntax of filter rules into account n = jj_consume_token(MICROSOFT_RULE); - label_46: while (true) { + label_43: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[65] = jj_gen; - break label_46; + jj_la1[62] = jj_gen; + break label_43; } jj_consume_token(S); } name = n.image; jj_consume_token(COLON); - label_47: while (true) { + label_44: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case IDENT: n = jj_consume_token(IDENT); @@ -1783,7 +1739,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[66] = jj_gen; + jj_la1[63] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1802,19 +1758,19 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[67] = jj_gen; - break label_47; + jj_la1[64] = jj_gen; + break label_44; } } jj_consume_token(SEMICOLON); - label_48: while (true) { + label_45: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[68] = jj_gen; - break label_48; + jj_la1[65] = jj_gen; + break label_45; } jj_consume_token(S); } @@ -1828,7 +1784,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public String property() throws ParseException { Token t; String s = ""; - label_49: while (true) { + label_46: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case IDENT: t = jj_consume_token(IDENT); @@ -1839,7 +1795,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { s += t.image; break; default: - jj_la1[69] = jj_gen; + jj_la1[66] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1849,18 +1805,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[70] = jj_gen; - break label_49; + jj_la1[67] = jj_gen; + break label_46; } } - label_50: while (true) { + label_47: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[71] = jj_gen; - break label_50; + jj_la1[68] = jj_gen; + break label_47; } jj_consume_token(S); } @@ -1875,14 +1831,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public String variableName() throws ParseException { Token n; n = jj_consume_token(VARIABLE); - label_51: while (true) { + label_48: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[72] = jj_gen; - break label_51; + jj_la1[69] = jj_gen; + break label_48; } jj_consume_token(S); } @@ -1897,14 +1853,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public String functionName() throws ParseException { Token n; n = jj_consume_token(FUNCTION); - label_52: while (true) { + label_49: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[73] = jj_gen; - break label_52; + jj_la1[70] = jj_gen; + break label_49; } jj_consume_token(S); } @@ -1929,21 +1885,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { l = selectorList(); save = token; jj_consume_token(LBRACE); - label_53: while (true) { + label_50: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[74] = jj_gen; - break label_53; + jj_la1[71] = jj_gen; + break label_50; } jj_consume_token(S); } start = true; documentHandler.startSelector(l); - label_54: while (true) { + label_51: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -1965,10 +1924,13 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[75] = jj_gen; - break label_54; + jj_la1[72] = jj_gen; + break label_51; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -1994,20 +1956,20 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { microsoftExtension(); break; default: - jj_la1[76] = jj_gen; + jj_la1[73] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } jj_consume_token(RBRACE); - label_55: while (true) { + label_52: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[77] = jj_gen; - break label_55; + jj_la1[74] = jj_gen; + break label_52; } jj_consume_token(S); } @@ -2036,24 +1998,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ArrayList selectors = new ArrayList(); String selector; selector = selector(); - label_56: while (true) { + label_53: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: ; break; default: - jj_la1[78] = jj_gen; - break label_56; + jj_la1[75] = jj_gen; + break label_53; } jj_consume_token(COMMA); - label_57: while (true) { + label_54: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[79] = jj_gen; - break label_57; + jj_la1[76] = jj_gen; + break label_54; } jj_consume_token(S); } @@ -2074,27 +2036,48 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { * exception during the parse */ final public String selector() throws ParseException { - String selector; + String selector = null; char comb; try { - selector = simple_selector(null, ' '); - label_58: while (true) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case LBRACKET: + case ANY: + case PARENT: + case DOT: + case COLON: + case INTERPOLATION: + case IDENT: + case HASH: + selector = simple_selector(null, ' '); + break; + case PLUS: + case PRECEDES: + case SIBLING: + comb = combinatorChar(); + selector = simple_selector(selector, comb); + break; + default: + jj_la1[77] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + label_55: while (true) { if (jj_2_2(2)) { ; } else { - break label_58; + break label_55; } comb = combinator(); selector = simple_selector(selector, comb); } - label_59: while (true) { + label_56: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[80] = jj_gen; - break label_59; + jj_la1[78] = jj_gen; + break label_56; } jj_consume_token(S); } @@ -2143,7 +2126,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case INTERPOLATION: case IDENT: simple_current = element_name(); - label_60: while (true) { + label_57: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case LBRACKET: case DOT: @@ -2152,8 +2135,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[81] = jj_gen; - break label_60; + jj_la1[79] = jj_gen; + break label_57; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case HASH: @@ -2169,7 +2152,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cond = pseudo(cond); break; default: - jj_la1[82] = jj_gen; + jj_la1[80] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2177,7 +2160,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; case HASH: cond = hash(cond); - label_61: while (true) { + label_58: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case LBRACKET: case DOT: @@ -2185,8 +2168,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[83] = jj_gen; - break label_61; + jj_la1[81] = jj_gen; + break label_58; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case DOT: @@ -2199,7 +2182,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cond = pseudo(cond); break; default: - jj_la1[84] = jj_gen; + jj_la1[82] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2207,7 +2190,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; case DOT: cond = _class(cond); - label_62: while (true) { + label_59: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case LBRACKET: case DOT: @@ -2216,8 +2199,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[85] = jj_gen; - break label_62; + jj_la1[83] = jj_gen; + break label_59; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case HASH: @@ -2233,7 +2216,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cond = pseudo(cond); break; default: - jj_la1[86] = jj_gen; + jj_la1[84] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2241,7 +2224,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; case COLON: cond = pseudo(cond); - label_63: while (true) { + label_60: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case LBRACKET: case DOT: @@ -2250,8 +2233,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[87] = jj_gen; - break label_63; + jj_la1[85] = jj_gen; + break label_60; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case HASH: @@ -2267,7 +2250,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cond = pseudo(cond); break; default: - jj_la1[88] = jj_gen; + jj_la1[86] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2275,7 +2258,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; case LBRACKET: cond = attrib(cond); - label_64: while (true) { + label_61: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case LBRACKET: case DOT: @@ -2284,8 +2267,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[89] = jj_gen; - break label_64; + jj_la1[87] = jj_gen; + break label_61; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case HASH: @@ -2301,14 +2284,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cond = pseudo(cond); break; default: - jj_la1[90] = jj_gen; + jj_la1[88] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } break; default: - jj_la1[91] = jj_gen; + jj_la1[89] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2318,25 +2301,30 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { if (cond != null) { simple_current = simple_current + cond; } - if (selector != null) { - switch (comb) { - case ' ': - selector = selector + comb + simple_current; - break; - case '+': - case '>': - case '~': - selector = selector + " " + comb + " " + simple_current; - break; - default: { - if (true) { - throw new ParseException("invalid state. send a bug report"); - } + StringBuilder builder = new StringBuilder(); + switch (comb) { + case ' ': + if (selector != null) { + builder.append(selector).append(" "); } + break; + case '+': + case '>': + case '~': + if (selector != null) { + builder.append(selector).append(" "); } - } else { - selector = simple_current; + builder.append(comb).append(" "); + break; + default: { + if (true) { + throw new ParseException("invalid state. send a bug report"); + } + } } + builder.append(simple_current); + selector = builder.toString(); + if (pseudoElt != null) { selector = selector + pseudoElt; } @@ -2356,7 +2344,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Token t; String s = "."; jj_consume_token(DOT); - label_65: while (true) { + label_62: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case IDENT: t = jj_consume_token(IDENT); @@ -2367,7 +2355,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { s += t.image; break; default: - jj_la1[92] = jj_gen; + jj_la1[90] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2377,8 +2365,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[93] = jj_gen; - break label_65; + jj_la1[91] = jj_gen; + break label_62; } } if (pred == null) { @@ -2407,7 +2395,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case INTERPOLATION: case IDENT: - label_66: while (true) { + label_63: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case IDENT: t = jj_consume_token(IDENT); @@ -2418,7 +2406,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { s += t.image; break; default: - jj_la1[94] = jj_gen; + jj_la1[92] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2428,8 +2416,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[95] = jj_gen; - break label_66; + jj_la1[93] = jj_gen; + break label_63; } } { @@ -2455,7 +2443,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[96] = jj_gen; + jj_la1[94] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2472,26 +2460,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Token val = null; String attValue = null; jj_consume_token(LBRACKET); - label_67: while (true) { + label_64: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[97] = jj_gen; - break label_67; + jj_la1[95] = jj_gen; + break label_64; } jj_consume_token(S); } att = jj_consume_token(IDENT); - label_68: while (true) { + label_65: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[98] = jj_gen; - break label_68; + jj_la1[96] = jj_gen; + break label_65; } jj_consume_token(S); } @@ -2528,18 +2516,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cases = 6; break; default: - jj_la1[99] = jj_gen; + jj_la1[97] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_69: while (true) { + label_66: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[100] = jj_gen; - break label_69; + jj_la1[98] = jj_gen; + break label_66; } jj_consume_token(S); } @@ -2553,24 +2541,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { attValue = val.image; break; default: - jj_la1[101] = jj_gen; + jj_la1[99] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_70: while (true) { + label_67: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[102] = jj_gen; - break label_70; + jj_la1[100] = jj_gen; + break label_67; } jj_consume_token(S); } break; default: - jj_la1[103] = jj_gen; + jj_la1[101] = jj_gen; ; } jj_consume_token(RBRACKET); @@ -2635,7 +2623,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { isPseudoElement = true; break; default: - jj_la1[104] = jj_gen; + jj_la1[102] = jj_gen; ; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -2678,14 +2666,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; case FUNCTION: n = jj_consume_token(FUNCTION); - label_71: while (true) { + label_68: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[105] = jj_gen; - break label_71; + jj_la1[103] = jj_gen; + break label_68; } jj_consume_token(S); } @@ -2710,7 +2698,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[106] = jj_gen; + jj_la1[104] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2749,14 +2737,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { try { name = variableName(); jj_consume_token(COLON); - label_72: while (true) { + label_69: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[107] = jj_gen; - break label_72; + jj_la1[105] = jj_gen; + break label_69; } jj_consume_token(S); } @@ -2766,19 +2754,19 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { guarded = guarded(); break; default: - jj_la1[108] = jj_gen; + jj_la1[106] = jj_gen; ; } - label_73: while (true) { + label_70: while (true) { jj_consume_token(SEMICOLON); - label_74: while (true) { + label_71: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[109] = jj_gen; - break label_74; + jj_la1[107] = jj_gen; + break label_71; } jj_consume_token(S); } @@ -2787,8 +2775,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[110] = jj_gen; - break label_73; + jj_la1[108] = jj_gen; + break label_70; } } documentHandler.variable(name, exp, guarded); @@ -2826,7 +2814,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { eachDirective(); break; default: - jj_la1[111] = jj_gen; + jj_la1[109] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2843,6 +2831,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case EXTEND_SYM: extendDirective(); break; + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -2859,7 +2850,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { keyframes(); break; default: - jj_la1[112] = jj_gen; + jj_la1[110] = jj_gen; if (jj_2_3(2147483647)) { variable(); } else { @@ -2868,7 +2859,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { listModifyDirective(); break; default: - jj_la1[113] = jj_gen; + jj_la1[111] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2881,7 +2872,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { String s = null; String evaluator = ""; jj_consume_token(IF_SYM); - label_75: while (true) { + label_72: while (true) { s = booleanExpressionToken(); evaluator += s; switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -2906,26 +2897,29 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[114] = jj_gen; - break label_75; + jj_la1[112] = jj_gen; + break label_72; } } jj_consume_token(LBRACE); - label_76: while (true) { + label_73: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[115] = jj_gen; - break label_76; + jj_la1[113] = jj_gen; + break label_73; } jj_consume_token(S); } documentHandler.startIfElseDirective(); documentHandler.ifDirective(evaluator); - label_77: while (true) { + label_74: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -2944,31 +2938,31 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[116] = jj_gen; - break label_77; + jj_la1[114] = jj_gen; + break label_74; } ifContentStatement(); } jj_consume_token(RBRACE); - label_78: while (true) { + label_75: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[117] = jj_gen; - break label_78; + jj_la1[115] = jj_gen; + break label_75; } jj_consume_token(S); } - label_79: while (true) { + label_76: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case ELSE_SYM: ; break; default: - jj_la1[118] = jj_gen; - break label_79; + jj_la1[116] = jj_gen; + break label_76; } elseDirective(); } @@ -2980,21 +2974,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Token n = null; String s = null; jj_consume_token(ELSE_SYM); - label_80: while (true) { + label_77: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[119] = jj_gen; - break label_80; + jj_la1[117] = jj_gen; + break label_77; } jj_consume_token(S); } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case IF: jj_consume_token(IF); - label_81: while (true) { + label_78: while (true) { s = booleanExpressionToken(); evaluator += s; switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -3019,24 +3013,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[120] = jj_gen; - break label_81; + jj_la1[118] = jj_gen; + break label_78; } } break; default: - jj_la1[121] = jj_gen; + jj_la1[119] = jj_gen; ; } jj_consume_token(LBRACE); - label_82: while (true) { + label_79: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[122] = jj_gen; - break label_82; + jj_la1[120] = jj_gen; + break label_79; } jj_consume_token(S); } @@ -3045,8 +3039,11 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } else { documentHandler.elseDirective(); } - label_83: while (true) { + label_80: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -3065,20 +3062,20 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[123] = jj_gen; - break label_83; + jj_la1[121] = jj_gen; + break label_80; } ifContentStatement(); } jj_consume_token(RBRACE); - label_84: while (true) { + label_81: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[124] = jj_gen; - break label_84; + jj_la1[122] = jj_gen; + break label_81; } jj_consume_token(S); } @@ -3143,7 +3140,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { n = jj_consume_token(NOT_EQ); break; default: - jj_la1[125] = jj_gen; + jj_la1[123] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3169,38 +3166,38 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ArrayList list = null; String listVariable = null; jj_consume_token(EACH_SYM); - label_85: while (true) { + label_82: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[126] = jj_gen; - break label_85; + jj_la1[124] = jj_gen; + break label_82; } jj_consume_token(S); } var = jj_consume_token(VARIABLE); - label_86: while (true) { + label_83: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[127] = jj_gen; - break label_86; + jj_la1[125] = jj_gen; + break label_83; } jj_consume_token(S); } jj_consume_token(EACH_IN); - label_87: while (true) { + label_84: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[128] = jj_gen; - break label_87; + jj_la1[126] = jj_gen; + break label_84; } jj_consume_token(S); } @@ -3214,24 +3211,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { documentHandler.startEachDirective(var.image, listVariable); break; default: - jj_la1[129] = jj_gen; + jj_la1[127] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jj_consume_token(LBRACE); - label_88: while (true) { + label_85: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[130] = jj_gen; - break label_88; + jj_la1[128] = jj_gen; + break label_85; } jj_consume_token(S); } - label_89: while (true) { + label_86: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -3250,20 +3250,20 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[131] = jj_gen; - break label_89; + jj_la1[129] = jj_gen; + break label_86; } ifContentStatement(); } jj_consume_token(RBRACE); - label_90: while (true) { + label_87: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[132] = jj_gen; - break label_90; + jj_la1[130] = jj_gen; + break label_87; } jj_consume_token(S); } @@ -3274,49 +3274,49 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ArrayList strings = new ArrayList(); Token input; input = jj_consume_token(IDENT); - label_91: while (true) { + label_88: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[133] = jj_gen; - break label_91; + jj_la1[131] = jj_gen; + break label_88; } jj_consume_token(S); } strings.add(input.image); - label_92: while (true) { + label_89: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: ; break; default: - jj_la1[134] = jj_gen; - break label_92; + jj_la1[132] = jj_gen; + break label_89; } jj_consume_token(COMMA); - label_93: while (true) { + label_90: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[135] = jj_gen; - break label_93; + jj_la1[133] = jj_gen; + break label_90; } jj_consume_token(S); } input = jj_consume_token(IDENT); strings.add(input.image); - label_94: while (true) { + label_91: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[136] = jj_gen; - break label_94; + jj_la1[134] = jj_gen; + break label_91; } jj_consume_token(S); } @@ -3334,14 +3334,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ArrayList args = null; String body; jj_consume_token(MIXIN_SYM); - label_95: while (true) { + label_92: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[137] = jj_gen; - break label_95; + jj_la1[135] = jj_gen; + break label_92; } jj_consume_token(S); } @@ -3354,38 +3354,41 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { name = functionName(); args = arglist(); jj_consume_token(RPARAN); - label_96: while (true) { + label_93: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[138] = jj_gen; - break label_96; + jj_la1[136] = jj_gen; + break label_93; } jj_consume_token(S); } break; default: - jj_la1[139] = jj_gen; + jj_la1[137] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jj_consume_token(LBRACE); - label_97: while (true) { + label_94: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[140] = jj_gen; - break label_97; + jj_la1[138] = jj_gen; + break label_94; } jj_consume_token(S); } documentHandler.startMixinDirective(name, args); - label_98: while (true) { + label_95: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -3408,10 +3411,13 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[141] = jj_gen; - break label_98; + jj_la1[139] = jj_gen; + break label_95; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -3440,20 +3446,20 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { page(); break; default: - jj_la1[142] = jj_gen; + jj_la1[140] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } jj_consume_token(RBRACE); - label_99: while (true) { + label_96: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[143] = jj_gen; - break label_99; + jj_la1[141] = jj_gen; + break label_96; } jj_consume_token(S); } @@ -3465,24 +3471,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { VariableNode arg; boolean hasNonOptionalArgument = false; arg = mixinArg(); - label_100: while (true) { + label_97: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: ; break; default: - jj_la1[144] = jj_gen; - break label_100; + jj_la1[142] = jj_gen; + break label_97; } jj_consume_token(COMMA); - label_101: while (true) { + label_98: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[145] = jj_gen; - break label_101; + jj_la1[143] = jj_gen; + break label_98; } jj_consume_token(S); } @@ -3533,42 +3539,42 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COLON: jj_consume_token(COLON); - label_102: while (true) { + label_99: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[146] = jj_gen; - break label_102; + jj_la1[144] = jj_gen; + break label_99; } jj_consume_token(S); } first = nonVariableTerm(null); prev = first; - label_103: while (true) { + label_100: while (true) { if (jj_2_5(3)) { ; } else { - break label_103; + break label_100; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_104: while (true) { + label_101: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[147] = jj_gen; - break label_104; + jj_la1[145] = jj_gen; + break label_101; } jj_consume_token(S); } break; default: - jj_la1[148] = jj_gen; + jj_la1[146] = jj_gen; ; } prev = nonVariableTerm(prev); @@ -3580,13 +3586,13 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token.beginColumn, prev, variable.image); break; default: - jj_la1[149] = jj_gen; + jj_la1[147] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[150] = jj_gen; + jj_la1[148] = jj_gen; ; } VariableNode arg = new VariableNode(name, first, false); @@ -3607,7 +3613,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { first = term(null); args.add(first); prev = first; - label_105: while (true) { + label_102: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case PLUS: case MINUS: @@ -3643,57 +3649,57 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[151] = jj_gen; - break label_105; + jj_la1[149] = jj_gen; + break label_102; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COLON: jj_consume_token(COLON); - label_106: while (true) { + label_103: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[152] = jj_gen; - break label_106; + jj_la1[150] = jj_gen; + break label_103; } jj_consume_token(S); } break; default: - jj_la1[153] = jj_gen; + jj_la1[151] = jj_gen; ; } next = term(prev); prev.setNextLexicalUnit(next); prev = next; } - label_107: while (true) { + label_104: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: ; break; default: - jj_la1[154] = jj_gen; - break label_107; + jj_la1[152] = jj_gen; + break label_104; } jj_consume_token(COMMA); - label_108: while (true) { + label_105: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[155] = jj_gen; - break label_108; + jj_la1[153] = jj_gen; + break label_105; } jj_consume_token(S); } first = term(null); args.add(first); prev = first; - label_109: while (true) { + label_106: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case PLUS: case MINUS: @@ -3729,26 +3735,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[156] = jj_gen; - break label_109; + jj_la1[154] = jj_gen; + break label_106; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COLON: jj_consume_token(COLON); - label_110: while (true) { + label_107: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[157] = jj_gen; - break label_110; + jj_la1[155] = jj_gen; + break label_107; } jj_consume_token(S); } break; default: - jj_la1[158] = jj_gen; + jj_la1[156] = jj_gen; ; } next = term(prev); @@ -3768,14 +3774,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { String name; ArrayList args = null; jj_consume_token(INCLUDE_SYM); - label_111: while (true) { + label_108: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[159] = jj_gen; - break label_111; + jj_la1[157] = jj_gen; + break label_108; } jj_consume_token(S); } @@ -3794,20 +3800,20 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { jj_consume_token(RPARAN); break; default: - jj_la1[160] = jj_gen; + jj_la1[158] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_112: while (true) { + label_109: while (true) { jj_consume_token(SEMICOLON); - label_113: while (true) { + label_110: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[161] = jj_gen; - break label_113; + jj_la1[159] = jj_gen; + break label_110; } jj_consume_token(S); } @@ -3816,8 +3822,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[162] = jj_gen; - break label_112; + jj_la1[160] = jj_gen; + break label_109; } } documentHandler.includeDirective(name, args); @@ -3844,26 +3850,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { // refactor, remove those 3 LOOKAHEAD(5). n = jj_consume_token(VARIABLE); variable = n.image; - label_114: while (true) { + label_111: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[163] = jj_gen; - break label_114; + jj_la1[161] = jj_gen; + break label_111; } jj_consume_token(S); } jj_consume_token(COLON); - label_115: while (true) { + label_112: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[164] = jj_gen; - break label_115; + jj_la1[162] = jj_gen; + break label_112; } jj_consume_token(S); } @@ -3878,18 +3884,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { type = jj_consume_token(CONTAINS); break; default: - jj_la1[165] = jj_gen; + jj_la1[163] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_116: while (true) { + label_113: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[166] = jj_gen; - break label_116; + jj_la1[164] = jj_gen; + break label_113; } jj_consume_token(S); } @@ -3899,18 +3905,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { jj_consume_token(RPARAN); break; default: - jj_la1[167] = jj_gen; + jj_la1[165] = jj_gen; ; } jj_consume_token(COMMA); - label_117: while (true) { + label_114: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[168] = jj_gen; - break label_117; + jj_la1[166] = jj_gen; + break label_114; } jj_consume_token(S); } @@ -3918,33 +3924,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_118: while (true) { + label_115: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[169] = jj_gen; - break label_118; + jj_la1[167] = jj_gen; + break label_115; } jj_consume_token(S); } n = jj_consume_token(IDENT); separator = n.image; - label_119: while (true) { + label_116: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[170] = jj_gen; - break label_119; + jj_la1[168] = jj_gen; + break label_116; } jj_consume_token(S); } break; default: - jj_la1[171] = jj_gen; + jj_la1[169] = jj_gen; ; } jj_consume_token(RPARAN); @@ -3965,26 +3971,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { default: break; } - label_120: while (true) { + label_117: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[172] = jj_gen; - break label_120; + jj_la1[170] = jj_gen; + break label_117; } jj_consume_token(S); } jj_consume_token(SEMICOLON); - label_121: while (true) { + label_118: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[173] = jj_gen; - break label_121; + jj_la1[171] = jj_gen; + break label_118; } jj_consume_token(S); } @@ -4002,38 +4008,38 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Token n = null; n = jj_consume_token(VARIABLE); variable = n.image; - label_122: while (true) { + label_119: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[174] = jj_gen; - break label_122; + jj_la1[172] = jj_gen; + break label_119; } jj_consume_token(S); } jj_consume_token(COLON); - label_123: while (true) { + label_120: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[175] = jj_gen; - break label_123; + jj_la1[173] = jj_gen; + break label_120; } jj_consume_token(S); } jj_consume_token(APPEND); - label_124: while (true) { + label_121: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[176] = jj_gen; - break label_124; + jj_la1[174] = jj_gen; + break label_121; } jj_consume_token(S); } @@ -4043,18 +4049,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { jj_consume_token(RPARAN); break; default: - jj_la1[177] = jj_gen; + jj_la1[175] = jj_gen; ; } jj_consume_token(COMMA); - label_125: while (true) { + label_122: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[178] = jj_gen; - break label_125; + jj_la1[176] = jj_gen; + break label_122; } jj_consume_token(S); } @@ -4062,33 +4068,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_126: while (true) { + label_123: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[179] = jj_gen; - break label_126; + jj_la1[177] = jj_gen; + break label_123; } jj_consume_token(S); } n = jj_consume_token(IDENT); separator = n.image; - label_127: while (true) { + label_124: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[180] = jj_gen; - break label_127; + jj_la1[178] = jj_gen; + break label_124; } jj_consume_token(S); } break; default: - jj_la1[181] = jj_gen; + jj_la1[179] = jj_gen; ; } jj_consume_token(RPARAN); @@ -4107,38 +4113,38 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Token n = null; n = jj_consume_token(VARIABLE); variable = n.image; - label_128: while (true) { + label_125: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[182] = jj_gen; - break label_128; + jj_la1[180] = jj_gen; + break label_125; } jj_consume_token(S); } jj_consume_token(COLON); - label_129: while (true) { + label_126: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[183] = jj_gen; - break label_129; + jj_la1[181] = jj_gen; + break label_126; } jj_consume_token(S); } jj_consume_token(REMOVE); - label_130: while (true) { + label_127: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[184] = jj_gen; - break label_130; + jj_la1[182] = jj_gen; + break label_127; } jj_consume_token(S); } @@ -4148,18 +4154,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { jj_consume_token(RPARAN); break; default: - jj_la1[185] = jj_gen; + jj_la1[183] = jj_gen; ; } jj_consume_token(COMMA); - label_131: while (true) { + label_128: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[186] = jj_gen; - break label_131; + jj_la1[184] = jj_gen; + break label_128; } jj_consume_token(S); } @@ -4167,33 +4173,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_132: while (true) { + label_129: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[187] = jj_gen; - break label_132; + jj_la1[185] = jj_gen; + break label_129; } jj_consume_token(S); } n = jj_consume_token(IDENT); separator = n.image; - label_133: while (true) { + label_130: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[188] = jj_gen; - break label_133; + jj_la1[186] = jj_gen; + break label_130; } jj_consume_token(S); } break; default: - jj_la1[189] = jj_gen; + jj_la1[187] = jj_gen; ; } jj_consume_token(RPARAN); @@ -4214,43 +4220,43 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case VARIABLE: n = jj_consume_token(VARIABLE); variable = n.image; - label_134: while (true) { + label_131: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[190] = jj_gen; - break label_134; + jj_la1[188] = jj_gen; + break label_131; } jj_consume_token(S); } jj_consume_token(COLON); - label_135: while (true) { + label_132: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[191] = jj_gen; - break label_135; + jj_la1[189] = jj_gen; + break label_132; } jj_consume_token(S); } break; default: - jj_la1[192] = jj_gen; + jj_la1[190] = jj_gen; ; } jj_consume_token(CONTAINS); - label_136: while (true) { + label_133: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[193] = jj_gen; - break label_136; + jj_la1[191] = jj_gen; + break label_133; } jj_consume_token(S); } @@ -4260,18 +4266,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { jj_consume_token(RPARAN); break; default: - jj_la1[194] = jj_gen; + jj_la1[192] = jj_gen; ; } jj_consume_token(COMMA); - label_137: while (true) { + label_134: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[195] = jj_gen; - break label_137; + jj_la1[193] = jj_gen; + break label_134; } jj_consume_token(S); } @@ -4279,33 +4285,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_138: while (true) { + label_135: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[196] = jj_gen; - break label_138; + jj_la1[194] = jj_gen; + break label_135; } jj_consume_token(S); } n = jj_consume_token(IDENT); separator = n.image; - label_139: while (true) { + label_136: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[197] = jj_gen; - break label_139; + jj_la1[195] = jj_gen; + break label_136; } jj_consume_token(S); } break; default: - jj_la1[198] = jj_gen; + jj_la1[196] = jj_gen; ; } jj_consume_token(RPARAN); @@ -4407,7 +4413,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { warnDirective(); break; default: - jj_la1[199] = jj_gen; + jj_la1[197] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4419,14 +4425,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { // TODO should evaluate the content expression, call // documentHandler.debugDirective() etc. System.out.println(content); - label_140: while (true) { + label_137: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[200] = jj_gen; - break label_140; + jj_la1[198] = jj_gen; + break label_137; } jj_consume_token(S); } @@ -4438,14 +4444,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { // TODO should evaluate the content expression, call // documentHandler.warnDirective() etc. System.err.println(content); - label_141: while (true) { + label_138: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[201] = jj_gen; - break label_141; + jj_la1[199] = jj_gen; + break label_138; } jj_consume_token(S); } @@ -4471,19 +4477,19 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { exclusive = false; break; default: - jj_la1[202] = jj_gen; + jj_la1[200] = jj_gen; jj_consume_token(-1); throw new ParseException(); } to = skipStatementUntilLeftBrace(); - label_142: while (true) { + label_139: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[203] = jj_gen; - break label_142; + jj_la1[201] = jj_gen; + break label_139; } jj_consume_token(S); } @@ -4513,28 +4519,28 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public void extendDirective() throws ParseException { ArrayList list; jj_consume_token(EXTEND_SYM); - label_143: while (true) { + label_140: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[204] = jj_gen; - break label_143; + jj_la1[202] = jj_gen; + break label_140; } jj_consume_token(S); } list = selectorList(); - label_144: while (true) { + label_141: while (true) { jj_consume_token(SEMICOLON); - label_145: while (true) { + label_142: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[205] = jj_gen; - break label_145; + jj_la1[203] = jj_gen; + break label_142; } jj_consume_token(S); } @@ -4543,8 +4549,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[206] = jj_gen; - break label_144; + jj_la1[204] = jj_gen; + break label_141; } } documentHandler.extendDirective(list); @@ -4571,26 +4577,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { LexicalUnit exp; name = property(); jj_consume_token(COLON); - label_146: while (true) { + label_143: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[207] = jj_gen; - break label_146; + jj_la1[205] = jj_gen; + break label_143; } jj_consume_token(S); } jj_consume_token(LBRACE); - label_147: while (true) { + label_144: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[208] = jj_gen; - break label_147; + jj_la1[206] = jj_gen; + break label_144; } jj_consume_token(S); } @@ -4601,27 +4607,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[209] = jj_gen; + jj_la1[207] = jj_gen; ; } - label_148: while (true) { + label_145: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[210] = jj_gen; - break label_148; + jj_la1[208] = jj_gen; + break label_145; } jj_consume_token(SEMICOLON); - label_149: while (true) { + label_146: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[211] = jj_gen; - break label_149; + jj_la1[209] = jj_gen; + break label_146; } jj_consume_token(S); } @@ -4631,20 +4637,20 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[212] = jj_gen; + jj_la1[210] = jj_gen; ; } } jj_consume_token(RBRACE); documentHandler.endNestedProperties(name); - label_150: while (true) { + label_147: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[213] = jj_gen; - break label_150; + jj_la1[211] = jj_gen; + break label_147; } jj_consume_token(S); } @@ -4663,13 +4669,16 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { debuggingDirective(); break; default: - jj_la1[214] = jj_gen; + jj_la1[212] = jj_gen; if (jj_2_6(2147483647)) { styleRule(); } else if (jj_2_7(3)) { declarationOrNestedProperties(); } else { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -4681,7 +4690,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { styleRule(); break; default: - jj_la1[215] = jj_gen; + jj_la1[213] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4726,14 +4735,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { name = property(); save = token; jj_consume_token(COLON); - label_151: while (true) { + label_148: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[216] = jj_gen; - break label_151; + jj_la1[214] = jj_gen; + break label_148; } jj_consume_token(S); } @@ -4774,7 +4783,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { important = prio(); break; default: - jj_la1[217] = jj_gen; + jj_la1[215] = jj_gen; ; } Token next = getToken(1); @@ -4793,14 +4802,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; case LBRACE: jj_consume_token(LBRACE); - label_152: while (true) { + label_149: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[218] = jj_gen; - break label_152; + jj_la1[216] = jj_gen; + break label_149; } jj_consume_token(S); } @@ -4811,27 +4820,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[219] = jj_gen; + jj_la1[217] = jj_gen; ; } - label_153: while (true) { + label_150: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[220] = jj_gen; - break label_153; + jj_la1[218] = jj_gen; + break label_150; } jj_consume_token(SEMICOLON); - label_154: while (true) { + label_151: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[221] = jj_gen; - break label_154; + jj_la1[219] = jj_gen; + break label_151; } jj_consume_token(S); } @@ -4841,26 +4850,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[222] = jj_gen; + jj_la1[220] = jj_gen; ; } } jj_consume_token(RBRACE); - label_155: while (true) { + label_152: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[223] = jj_gen; - break label_155; + jj_la1[221] = jj_gen; + break label_152; } jj_consume_token(S); } documentHandler.endNestedProperties(name); break; default: - jj_la1[224] = jj_gen; + jj_la1[222] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4908,14 +4917,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { name = property(); save = token; jj_consume_token(COLON); - label_156: while (true) { + label_153: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[225] = jj_gen; - break label_156; + jj_la1[223] = jj_gen; + break label_153; } jj_consume_token(S); } @@ -4925,7 +4934,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { important = prio(); break; default: - jj_la1[226] = jj_gen; + jj_la1[224] = jj_gen; ; } documentHandler.property(name, exp, important); @@ -4966,14 +4975,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { */ final public boolean prio() throws ParseException { jj_consume_token(IMPORTANT_SYM); - label_157: while (true) { + label_154: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[227] = jj_gen; - break label_157; + jj_la1[225] = jj_gen; + break label_154; } jj_consume_token(S); } @@ -4987,14 +4996,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public boolean guarded() throws ParseException { jj_consume_token(GUARDED_SYM); - label_158: while (true) { + label_155: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[228] = jj_gen; - break label_158; + jj_la1[226] = jj_gen; + break label_155; } jj_consume_token(S); } @@ -5016,14 +5025,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case DIV: n = jj_consume_token(DIV); - label_159: while (true) { + label_156: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[229] = jj_gen; - break label_159; + jj_la1[227] = jj_gen; + break label_156; } jj_consume_token(S); } @@ -5036,14 +5045,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; case COMMA: n = jj_consume_token(COMMA); - label_160: while (true) { + label_157: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[230] = jj_gen; - break label_160; + jj_la1[228] = jj_gen; + break label_157; } jj_consume_token(S); } @@ -5055,7 +5064,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[231] = jj_gen; + jj_la1[229] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5071,11 +5080,11 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { char op; first = term(null); res = first; - label_161: while (true) { + label_158: while (true) { if (jj_2_8(2)) { ; } else { - break label_161; + break label_158; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: @@ -5083,7 +5092,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { res = operator(res); break; default: - jj_la1[232] = jj_gen; + jj_la1[230] = jj_gen; ; } res = term(res); @@ -5119,7 +5128,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[233] = jj_gen; + jj_la1[231] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5171,7 +5180,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { result = variableTerm(prev); break; default: - jj_la1[234] = jj_gen; + jj_la1[232] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5235,7 +5244,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { op = unaryOperator(); break; default: - jj_la1[235] = jj_gen; + jj_la1[233] = jj_gen; ; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -5350,7 +5359,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { result = function(op, prev); break; default: - jj_la1[236] = jj_gen; + jj_la1[234] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5376,7 +5385,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { s += "."; break; default: - jj_la1[237] = jj_gen; + jj_la1[235] = jj_gen; ; } n = jj_consume_token(IDENT); @@ -5414,24 +5423,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { result = unicode(prev); break; default: - jj_la1[238] = jj_gen; + jj_la1[236] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[239] = jj_gen; + jj_la1[237] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_162: while (true) { + label_159: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[240] = jj_gen; - break label_162; + jj_la1[238] = jj_gen; + break label_159; } jj_consume_token(S); } @@ -5454,14 +5463,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Token n; LexicalUnit params = null; n = jj_consume_token(FUNCTION); - label_163: while (true) { + label_160: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[241] = jj_gen; - break label_163; + jj_la1[239] = jj_gen; + break label_160; } jj_consume_token(S); } @@ -5517,7 +5526,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { params = expr(); break; default: - jj_la1[242] = jj_gen; + jj_la1[240] = jj_gen; ; } jj_consume_token(RPARAN); @@ -6054,14 +6063,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { */ final public void _parseRule() throws ParseException { String ret = null; - label_164: while (true) { + label_161: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[243] = jj_gen; - break label_164; + jj_la1[241] = jj_gen; + break label_161; } jj_consume_token(S); } @@ -6073,6 +6082,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case WARN_SYM: debuggingDirective(); break; + case PLUS: + case PRECEDES: + case SIBLING: case LBRACKET: case ANY: case PARENT: @@ -6093,7 +6105,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { fontFace(); break; default: - jj_la1[244] = jj_gen; + jj_la1[242] = jj_gen; ret = skipStatement(); if ((ret == null) || (ret.length() == 0)) { { @@ -6116,14 +6128,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } final public void _parseImportRule() throws ParseException { - label_165: while (true) { + label_162: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[245] = jj_gen; - break label_165; + jj_la1[243] = jj_gen; + break label_162; } jj_consume_token(S); } @@ -6131,14 +6143,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } final public void _parseMediaRule() throws ParseException { - label_166: while (true) { + label_163: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[246] = jj_gen; - break label_166; + jj_la1[244] = jj_gen; + break label_163; } jj_consume_token(S); } @@ -6146,14 +6158,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } final public void _parseDeclarationBlock() throws ParseException { - label_167: while (true) { + label_164: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[247] = jj_gen; - break label_167; + jj_la1[245] = jj_gen; + break label_164; } jj_consume_token(S); } @@ -6163,27 +6175,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[248] = jj_gen; + jj_la1[246] = jj_gen; ; } - label_168: while (true) { + label_165: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[249] = jj_gen; - break label_168; + jj_la1[247] = jj_gen; + break label_165; } jj_consume_token(SEMICOLON); - label_169: while (true) { + label_166: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[250] = jj_gen; - break label_169; + jj_la1[248] = jj_gen; + break label_166; } jj_consume_token(S); } @@ -6193,7 +6205,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[251] = jj_gen; + jj_la1[249] = jj_gen; ; } } @@ -6202,14 +6214,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public ArrayList _parseSelectors() throws ParseException { ArrayList p = null; try { - label_170: while (true) { + label_167: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[252] = jj_gen; - break label_170; + jj_la1[250] = jj_gen; + break label_167; } jj_consume_token(S); } @@ -6325,87 +6337,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } - private boolean jj_3R_212() { - if (jj_3R_249()) { - return true; - } - return false; - } - - private boolean jj_3R_195() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_212()) { - jj_scanpos = xsp; - } - xsp = jj_scanpos; - if (jj_3R_213()) { - jj_scanpos = xsp; - if (jj_3R_214()) { - jj_scanpos = xsp; - if (jj_3R_215()) { - jj_scanpos = xsp; - if (jj_3R_216()) { - jj_scanpos = xsp; - if (jj_3R_217()) { - jj_scanpos = xsp; - if (jj_3R_218()) { - jj_scanpos = xsp; - if (jj_3R_219()) { - jj_scanpos = xsp; - if (jj_3R_220()) { - jj_scanpos = xsp; - if (jj_3R_221()) { - jj_scanpos = xsp; - if (jj_3R_222()) { - jj_scanpos = xsp; - if (jj_3R_223()) { - jj_scanpos = xsp; - if (jj_3R_224()) { - jj_scanpos = xsp; - if (jj_3R_225()) { - jj_scanpos = xsp; - if (jj_3R_226()) { - jj_scanpos = xsp; - if (jj_3R_227()) { - jj_scanpos = xsp; - if (jj_3R_228()) { - jj_scanpos = xsp; - if (jj_3R_229()) { - jj_scanpos = xsp; - if (jj_3R_230()) { - jj_scanpos = xsp; - if (jj_3R_231()) { - jj_scanpos = xsp; - if (jj_3R_232()) { - jj_scanpos = xsp; - if (jj_3R_233()) { - return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3R_181() { + private boolean jj_3R_178() { if (jj_scan_token(VARIABLE)) { return true; } @@ -6420,74 +6352,47 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_176() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_195()) { - jj_scanpos = xsp; - if (jj_3R_196()) { - return true; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - return false; - } - - private boolean jj_3R_252() { - if (jj_scan_token(HASH)) { - return true; - } - return false; - } - - private boolean jj_3R_184() { - if (jj_scan_token(SEMICOLON)) { + private boolean jj_3R_240() { + if (jj_3R_178()) { return true; } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_239() { + private boolean jj_3R_237() { Token xsp; xsp = jj_scanpos; - if (jj_3R_255()) { + if (jj_3R_250()) { jj_scanpos = xsp; - if (jj_3R_256()) { + if (jj_3R_251()) { return true; } } return false; } - private boolean jj_3R_255() { + private boolean jj_3R_250() { if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_199() { + private boolean jj_3R_248() { + if (jj_scan_token(URL)) { + return true; + } + return false; + } + + private boolean jj_3R_194() { Token xsp; - if (jj_3R_239()) { + if (jj_3R_237()) { return true; } while (true) { xsp = jj_scanpos; - if (jj_3R_239()) { + if (jj_3R_237()) { jj_scanpos = xsp; break; } @@ -6502,127 +6407,114 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_242() { - if (jj_3R_181()) { - return true; - } - return false; - } - - private boolean jj_3R_253() { - if (jj_scan_token(URL)) { - return true; - } - return false; - } - - private boolean jj_3R_183() { - if (jj_3R_205()) { + private boolean jj_3R_180() { + if (jj_3R_200()) { return true; } return false; } - private boolean jj_3R_203() { - if (jj_3R_176()) { + private boolean jj_3R_198() { + if (jj_3R_173()) { return true; } return false; } - private boolean jj_3R_180() { + private boolean jj_3R_177() { Token xsp; xsp = jj_scanpos; - if (jj_3R_203()) { + if (jj_3R_198()) { jj_scanpos = xsp; - if (jj_3R_204()) { + if (jj_3R_199()) { return true; } } return false; } - private boolean jj_3R_179() { - if (jj_3R_202()) { + private boolean jj_3R_176() { + if (jj_3R_197()) { return true; } return false; } - private boolean jj_3R_259() { + private boolean jj_3R_254() { if (jj_scan_token(PLUS)) { return true; } return false; } - private boolean jj_3R_249() { + private boolean jj_3R_244() { Token xsp; xsp = jj_scanpos; - if (jj_3R_258()) { + if (jj_3R_253()) { jj_scanpos = xsp; - if (jj_3R_259()) { + if (jj_3R_254()) { return true; } } return false; } - private boolean jj_3R_258() { + private boolean jj_3R_253() { if (jj_scan_token(MINUS)) { return true; } return false; } - private boolean jj_3R_245() { - if (jj_scan_token(SIBLING)) { + private boolean jj_3R_249() { + if (jj_scan_token(UNICODERANGE)) { return true; } return false; } - private boolean jj_3R_244() { - if (jj_scan_token(PRECEDES)) { - return true; + private boolean jj_3_8() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_176()) { + jj_scanpos = xsp; } - return false; - } - - private boolean jj_3R_254() { - if (jj_scan_token(UNICODERANGE)) { + if (jj_3R_177()) { return true; } return false; } - private boolean jj_3R_243() { - if (jj_scan_token(PLUS)) { + private boolean jj_3R_179() { + if (jj_3R_177()) { return true; } + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_8()) { + jj_scanpos = xsp; + break; + } + } return false; } - private boolean jj_3_8() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_179()) { - jj_scanpos = xsp; - } - if (jj_3R_180()) { + private boolean jj_3R_202() { + if (jj_3R_201()) { return true; } return false; } - private boolean jj_3R_206() { + private boolean jj_3R_201() { Token xsp; xsp = jj_scanpos; - if (jj_3R_243()) { + if (jj_scan_token(20)) { jj_scanpos = xsp; - if (jj_3R_244()) { + if (jj_scan_token(24)) { jj_scanpos = xsp; - if (jj_3R_245()) { + if (jj_scan_token(25)) { return true; } } @@ -6637,44 +6529,34 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_182() { - if (jj_3R_180()) { + private boolean jj_3R_168() { + if (jj_3R_178()) { + return true; + } + if (jj_scan_token(COLON)) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3_8()) { + if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } - return false; - } - - private boolean jj_3R_187() { - if (jj_scan_token(SIBLING)) { + if (jj_3R_179()) { return true; } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } + xsp = jj_scanpos; + if (jj_3R_180()) { + jj_scanpos = xsp; } - return false; - } - - private boolean jj_3R_186() { - if (jj_scan_token(PRECEDES)) { + if (jj_3R_181()) { return true; } - Token xsp; while (true) { xsp = jj_scanpos; - if (jj_scan_token(1)) { + if (jj_3R_181()) { jj_scanpos = xsp; break; } @@ -6682,38 +6564,20 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_188() { + private boolean jj_3R_183() { if (jj_scan_token(S)) { return true; } Token xsp; xsp = jj_scanpos; - if (jj_3R_206()) { - jj_scanpos = xsp; - } - return false; - } - - private boolean jj_3R_172() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_185()) { + if (jj_3R_202()) { jj_scanpos = xsp; - if (jj_3R_186()) { - jj_scanpos = xsp; - if (jj_3R_187()) { - jj_scanpos = xsp; - if (jj_3R_188()) { - return true; - } - } - } } return false; } - private boolean jj_3R_185() { - if (jj_scan_token(PLUS)) { + private boolean jj_3R_239() { + if (jj_scan_token(COMMA)) { return true; } Token xsp; @@ -6727,69 +6591,38 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_171() { - if (jj_3R_181()) { - return true; - } - if (jj_scan_token(COLON)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - if (jj_3R_182()) { - return true; - } - xsp = jj_scanpos; - if (jj_3R_183()) { - jj_scanpos = xsp; - } - if (jj_3R_184()) { + private boolean jj_3R_182() { + if (jj_3R_201()) { return true; } - while (true) { - xsp = jj_scanpos; - if (jj_3R_184()) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_241() { - if (jj_scan_token(COMMA)) { - return true; - } + private boolean jj_3R_169() { Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; + xsp = jj_scanpos; + if (jj_3R_182()) { + jj_scanpos = xsp; + if (jj_3R_183()) { + return true; } } return false; } - private boolean jj_3R_202() { + private boolean jj_3R_197() { Token xsp; xsp = jj_scanpos; - if (jj_3R_240()) { + if (jj_3R_238()) { jj_scanpos = xsp; - if (jj_3R_241()) { + if (jj_3R_239()) { return true; } } return false; } - private boolean jj_3R_240() { + private boolean jj_3R_238() { if (jj_scan_token(DIV)) { return true; } @@ -6804,7 +6637,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_205() { + private boolean jj_3R_200() { if (jj_scan_token(GUARDED_SYM)) { return true; } @@ -6819,7 +6652,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_194() { + private boolean jj_3R_189() { if (jj_scan_token(VARIABLE)) { return true; } @@ -6844,10 +6677,10 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_174() { + private boolean jj_3R_171() { Token xsp; xsp = jj_scanpos; - if (jj_3R_194()) { + if (jj_3R_189()) { jj_scanpos = xsp; } if (jj_scan_token(CONTAINS)) { @@ -6868,21 +6701,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_208() { + private boolean jj_3R_204() { if (jj_scan_token(HASH)) { return true; } return false; } - private boolean jj_3R_281() { + private boolean jj_3R_276() { if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_282() { + private boolean jj_3R_277() { if (jj_scan_token(FUNCTION)) { return true; } @@ -6902,26 +6735,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_280() { + private boolean jj_3R_275() { if (jj_scan_token(COLON)) { return true; } return false; } - private boolean jj_3R_210() { + private boolean jj_3R_206() { if (jj_scan_token(COLON)) { return true; } Token xsp; xsp = jj_scanpos; - if (jj_3R_280()) { + if (jj_3R_275()) { jj_scanpos = xsp; } xsp = jj_scanpos; - if (jj_3R_281()) { + if (jj_3R_276()) { jj_scanpos = xsp; - if (jj_3R_282()) { + if (jj_3R_277()) { return true; } } @@ -6929,96 +6762,96 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } private boolean jj_3_7() { - if (jj_3R_178()) { + if (jj_3R_175()) { return true; } return false; } - private boolean jj_3R_301() { + private boolean jj_3R_296() { if (jj_scan_token(STRING)) { return true; } return false; } - private boolean jj_3R_299() { + private boolean jj_3R_294() { if (jj_scan_token(STARMATCH)) { return true; } return false; } - private boolean jj_3R_300() { - if (jj_scan_token(IDENT)) { + private boolean jj_3R_293() { + if (jj_scan_token(DOLLARMATCH)) { return true; } return false; } - private boolean jj_3R_298() { - if (jj_scan_token(DOLLARMATCH)) { + private boolean jj_3R_295() { + if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_297() { + private boolean jj_3R_292() { if (jj_scan_token(CARETMATCH)) { return true; } return false; } - private boolean jj_3R_296() { + private boolean jj_3R_291() { if (jj_scan_token(DASHMATCH)) { return true; } return false; } - private boolean jj_3R_295() { + private boolean jj_3R_290() { if (jj_scan_token(INCLUDES)) { return true; } return false; } - private boolean jj_3R_267() { + private boolean jj_3R_257() { if (jj_scan_token(INTERPOLATION)) { return true; } return false; } - private boolean jj_3R_294() { + private boolean jj_3R_289() { if (jj_scan_token(EQ)) { return true; } return false; } - private boolean jj_3R_201() { + private boolean jj_3R_196() { if (jj_scan_token(LBRACE)) { return true; } return false; } - private boolean jj_3R_287() { + private boolean jj_3R_282() { Token xsp; xsp = jj_scanpos; - if (jj_3R_294()) { + if (jj_3R_289()) { jj_scanpos = xsp; - if (jj_3R_295()) { + if (jj_3R_290()) { jj_scanpos = xsp; - if (jj_3R_296()) { + if (jj_3R_291()) { jj_scanpos = xsp; - if (jj_3R_297()) { + if (jj_3R_292()) { jj_scanpos = xsp; - if (jj_3R_298()) { + if (jj_3R_293()) { jj_scanpos = xsp; - if (jj_3R_299()) { + if (jj_3R_294()) { return true; } } @@ -7034,9 +6867,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } xsp = jj_scanpos; - if (jj_3R_300()) { + if (jj_3R_295()) { jj_scanpos = xsp; - if (jj_3R_301()) { + if (jj_3R_296()) { return true; } } @@ -7050,7 +6883,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_211() { + private boolean jj_3R_207() { if (jj_scan_token(LBRACKET)) { return true; } @@ -7073,7 +6906,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } xsp = jj_scanpos; - if (jj_3R_287()) { + if (jj_3R_282()) { jj_scanpos = xsp; } if (jj_scan_token(RBRACKET)) { @@ -7082,28 +6915,28 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_293() { + private boolean jj_3R_288() { if (jj_scan_token(INTERPOLATION)) { return true; } return false; } - private boolean jj_3R_200() { - if (jj_3R_182()) { + private boolean jj_3R_195() { + if (jj_3R_179()) { return true; } return false; } - private boolean jj_3R_248() { + private boolean jj_3R_243() { if (jj_scan_token(PARENT)) { return true; } return false; } - private boolean jj_3R_247() { + private boolean jj_3R_242() { if (jj_scan_token(ANY)) { return true; } @@ -7111,7 +6944,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } private boolean jj_3_6() { - if (jj_3R_177()) { + if (jj_3R_174()) { return true; } if (jj_scan_token(LBRACE)) { @@ -7120,8 +6953,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_178() { - if (jj_3R_199()) { + private boolean jj_3R_175() { + if (jj_3R_194()) { return true; } if (jj_scan_token(COLON)) { @@ -7136,42 +6969,42 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } xsp = jj_scanpos; - if (jj_3R_200()) { + if (jj_3R_195()) { jj_scanpos = xsp; - if (jj_3R_201()) { + if (jj_3R_196()) { return true; } } return false; } - private boolean jj_3R_257() { + private boolean jj_3R_252() { Token xsp; xsp = jj_scanpos; - if (jj_3R_266()) { + if (jj_3R_256()) { jj_scanpos = xsp; - if (jj_3R_267()) { + if (jj_3R_257()) { return true; } } return false; } - private boolean jj_3R_266() { + private boolean jj_3R_256() { if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_207() { + private boolean jj_3R_203() { Token xsp; xsp = jj_scanpos; - if (jj_3R_246()) { + if (jj_3R_241()) { jj_scanpos = xsp; - if (jj_3R_247()) { + if (jj_3R_242()) { jj_scanpos = xsp; - if (jj_3R_248()) { + if (jj_3R_243()) { return true; } } @@ -7179,14 +7012,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_246() { + private boolean jj_3R_241() { Token xsp; - if (jj_3R_257()) { + if (jj_3R_252()) { return true; } while (true) { xsp = jj_scanpos; - if (jj_3R_257()) { + if (jj_3R_252()) { jj_scanpos = xsp; break; } @@ -7194,7 +7027,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_175() { + private boolean jj_3R_172() { if (jj_scan_token(COMMA)) { return true; } @@ -7209,48 +7042,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_291() { - if (jj_3R_210()) { - return true; - } - return false; - } - - private boolean jj_3R_275() { + private boolean jj_3R_270() { Token xsp; xsp = jj_scanpos; - if (jj_3R_292()) { + if (jj_3R_287()) { jj_scanpos = xsp; - if (jj_3R_293()) { + if (jj_3R_288()) { return true; } } return false; } - private boolean jj_3R_292() { + private boolean jj_3R_287() { if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_289() { - if (jj_3R_209()) { - return true; - } - return false; - } - - private boolean jj_3R_284() { - if (jj_3R_209()) { - return true; - } - return false; - } - private boolean jj_3R_286() { - if (jj_3R_210()) { + if (jj_3R_206()) { return true; } return false; @@ -7259,26 +7071,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { private boolean jj_3_5() { Token xsp; xsp = jj_scanpos; - if (jj_3R_175()) { + if (jj_3R_172()) { jj_scanpos = xsp; } - if (jj_3R_176()) { + if (jj_3R_173()) { return true; } return false; } - private boolean jj_3R_209() { + private boolean jj_3R_205() { if (jj_scan_token(DOT)) { return true; } Token xsp; - if (jj_3R_275()) { + if (jj_3R_270()) { return true; } while (true) { xsp = jj_scanpos; - if (jj_3R_275()) { + if (jj_3R_270()) { jj_scanpos = xsp; break; } @@ -7286,67 +7098,63 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_274() { - if (jj_3R_210()) { + private boolean jj_3R_284() { + if (jj_3R_205()) { return true; } return false; } - private boolean jj_3R_277() { - if (jj_3R_209()) { + private boolean jj_3R_279() { + if (jj_3R_205()) { return true; } return false; } - private boolean jj_3R_279() { - if (jj_3R_210()) { + private boolean jj_3R_281() { + if (jj_3R_206()) { return true; } return false; } - private boolean jj_3R_290() { - if (jj_3R_211()) { + private boolean jj_3R_269() { + if (jj_3R_206()) { return true; } return false; } - private boolean jj_3R_260() { - if (jj_3R_182()) { + private boolean jj_3R_272() { + if (jj_3R_205()) { return true; } return false; } - private boolean jj_3R_265() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_288()) { - jj_scanpos = xsp; - if (jj_3R_289()) { - jj_scanpos = xsp; - if (jj_3R_290()) { - jj_scanpos = xsp; - if (jj_3R_291()) { - return true; - } - } - } + private boolean jj_3R_274() { + if (jj_3R_206()) { + return true; } return false; } - private boolean jj_3R_288() { - if (jj_3R_208()) { + private boolean jj_3R_255() { + if (jj_3R_179()) { return true; } return false; } - private boolean jj_3R_264() { + private boolean jj_3R_285() { + if (jj_3R_207()) { + return true; + } + return false; + } + + private boolean jj_3R_262() { Token xsp; xsp = jj_scanpos; if (jj_3R_283()) { @@ -7365,29 +7173,22 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } private boolean jj_3R_283() { - if (jj_3R_208()) { - return true; - } - return false; - } - - private boolean jj_3R_271() { - if (jj_3R_210()) { + if (jj_3R_204()) { return true; } return false; } - private boolean jj_3R_263() { + private boolean jj_3R_261() { Token xsp; xsp = jj_scanpos; - if (jj_3R_276()) { + if (jj_3R_278()) { jj_scanpos = xsp; - if (jj_3R_277()) { + if (jj_3R_279()) { jj_scanpos = xsp; - if (jj_3R_278()) { + if (jj_3R_280()) { jj_scanpos = xsp; - if (jj_3R_279()) { + if (jj_3R_281()) { return true; } } @@ -7396,42 +7197,74 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_276() { - if (jj_3R_208()) { + private boolean jj_3R_278() { + if (jj_3R_204()) { return true; } return false; } - private boolean jj_3R_285() { - if (jj_3R_211()) { + private boolean jj_3R_266() { + if (jj_3R_206()) { return true; } return false; } - private boolean jj_3R_273() { - if (jj_3R_211()) { + private boolean jj_3R_260() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_271()) { + jj_scanpos = xsp; + if (jj_3R_272()) { + jj_scanpos = xsp; + if (jj_3R_273()) { + jj_scanpos = xsp; + if (jj_3R_274()) { + return true; + } + } + } + } + return false; + } + + private boolean jj_3R_271() { + if (jj_3R_204()) { return true; } return false; } - private boolean jj_3R_278() { - if (jj_3R_211()) { + private boolean jj_3R_280() { + if (jj_3R_207()) { return true; } return false; } - private boolean jj_3R_262() { + private boolean jj_3R_268() { + if (jj_3R_207()) { + return true; + } + return false; + } + + private boolean jj_3R_273() { + if (jj_3R_207()) { + return true; + } + return false; + } + + private boolean jj_3R_259() { Token xsp; xsp = jj_scanpos; - if (jj_3R_272()) { + if (jj_3R_267()) { jj_scanpos = xsp; - if (jj_3R_273()) { + if (jj_3R_268()) { jj_scanpos = xsp; - if (jj_3R_274()) { + if (jj_3R_269()) { return true; } } @@ -7439,21 +7272,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_269() { - if (jj_3R_209()) { + private boolean jj_3R_264() { + if (jj_3R_205()) { return true; } return false; } - private boolean jj_3R_272() { - if (jj_3R_209()) { + private boolean jj_3R_267() { + if (jj_3R_205()) { return true; } return false; } - private boolean jj_3R_250() { + private boolean jj_3R_245() { if (jj_scan_token(FUNCTION)) { return true; } @@ -7466,7 +7299,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } xsp = jj_scanpos; - if (jj_3R_260()) { + if (jj_3R_255()) { jj_scanpos = xsp; } if (jj_scan_token(RPARAN)) { @@ -7475,29 +7308,28 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_193() { - if (jj_3R_211()) { + private boolean jj_3R_234() { + if (jj_3R_249()) { return true; } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_265()) { - jj_scanpos = xsp; - break; - } + return false; + } + + private boolean jj_3R_233() { + if (jj_3R_248()) { + return true; } return false; } - private boolean jj_3R_192() { - if (jj_3R_210()) { + private boolean jj_3R_188() { + if (jj_3R_207()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_264()) { + if (jj_3R_262()) { jj_scanpos = xsp; break; } @@ -7505,28 +7337,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_270() { - if (jj_3R_211()) { - return true; - } - return false; - } - - private boolean jj_3R_238() { - if (jj_3R_254()) { + private boolean jj_3R_232() { + if (jj_3R_247()) { return true; } return false; } - private boolean jj_3R_191() { - if (jj_3R_209()) { + private boolean jj_3R_187() { + if (jj_3R_206()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_263()) { + if (jj_3R_261()) { jj_scanpos = xsp; break; } @@ -7534,28 +7359,36 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_237() { - if (jj_3R_253()) { + private boolean jj_3R_265() { + if (jj_3R_207()) { return true; } return false; } - private boolean jj_3R_236() { - if (jj_3R_252()) { + private boolean jj_3R_186() { + if (jj_3R_205()) { return true; } + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_260()) { + jj_scanpos = xsp; + break; + } + } return false; } - private boolean jj_3R_190() { - if (jj_3R_208()) { + private boolean jj_3R_185() { + if (jj_3R_204()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_262()) { + if (jj_3R_259()) { jj_scanpos = xsp; break; } @@ -7563,16 +7396,16 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_261() { + private boolean jj_3R_258() { Token xsp; xsp = jj_scanpos; - if (jj_3R_268()) { + if (jj_3R_263()) { jj_scanpos = xsp; - if (jj_3R_269()) { + if (jj_3R_264()) { jj_scanpos = xsp; - if (jj_3R_270()) { + if (jj_3R_265()) { jj_scanpos = xsp; - if (jj_3R_271()) { + if (jj_3R_266()) { return true; } } @@ -7581,21 +7414,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_268() { - if (jj_3R_208()) { + private boolean jj_3R_263() { + if (jj_3R_204()) { return true; } return false; } - private boolean jj_3R_189() { - if (jj_3R_207()) { + private boolean jj_3R_184() { + if (jj_3R_203()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_261()) { + if (jj_3R_258()) { jj_scanpos = xsp; break; } @@ -7603,18 +7436,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_173() { + private boolean jj_3R_170() { Token xsp; xsp = jj_scanpos; - if (jj_3R_189()) { + if (jj_3R_184()) { jj_scanpos = xsp; - if (jj_3R_190()) { + if (jj_3R_185()) { jj_scanpos = xsp; - if (jj_3R_191()) { + if (jj_3R_186()) { jj_scanpos = xsp; - if (jj_3R_192()) { + if (jj_3R_187()) { jj_scanpos = xsp; - if (jj_3R_193()) { + if (jj_3R_188()) { return true; } } @@ -7624,68 +7457,61 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_251() { - if (jj_scan_token(DOT)) { + private boolean jj_3R_236() { + if (jj_3R_201()) { return true; } - return false; - } - - private boolean jj_3R_235() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_251()) { - jj_scanpos = xsp; - } - if (jj_scan_token(IDENT)) { + if (jj_3R_170()) { return true; } return false; } - private boolean jj_3_1() { - if (jj_3R_171()) { + private boolean jj_3R_246() { + if (jj_scan_token(DOT)) { return true; } return false; } - private boolean jj_3R_234() { - if (jj_scan_token(STRING)) { + private boolean jj_3R_231() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_246()) { + jj_scanpos = xsp; + } + if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3_2() { - if (jj_3R_172()) { - return true; - } - if (jj_3R_173()) { + private boolean jj_3R_230() { + if (jj_scan_token(STRING)) { return true; } return false; } - private boolean jj_3R_233() { - if (jj_3R_250()) { + private boolean jj_3R_229() { + if (jj_3R_245()) { return true; } return false; } - private boolean jj_3R_196() { + private boolean jj_3R_191() { Token xsp; xsp = jj_scanpos; - if (jj_3R_234()) { + if (jj_3R_230()) { jj_scanpos = xsp; - if (jj_3R_235()) { + if (jj_3R_231()) { jj_scanpos = xsp; - if (jj_3R_236()) { + if (jj_3R_232()) { jj_scanpos = xsp; - if (jj_3R_237()) { + if (jj_3R_233()) { jj_scanpos = xsp; - if (jj_3R_238()) { + if (jj_3R_234()) { return true; } } @@ -7695,7 +7521,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_198() { + private boolean jj_3_2() { + if (jj_3R_169()) { + return true; + } + if (jj_3R_170()) { + return true; + } + return false; + } + + private boolean jj_3_1() { + if (jj_3R_168()) { + return true; + } + return false; + } + + private boolean jj_3R_193() { if (jj_scan_token(COMMA)) { return true; } @@ -7707,17 +7550,42 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; } } - if (jj_3R_197()) { + if (jj_3R_192()) { return true; } return false; } - private boolean jj_3R_197() { - if (jj_3R_173()) { + private boolean jj_3R_235() { + if (jj_3R_170()) { + return true; + } + return false; + } + + private boolean jj_3R_228() { + if (jj_scan_token(DIMEN)) { + return true; + } + return false; + } + + private boolean jj_3R_227() { + if (jj_scan_token(KHZ)) { return true; } + return false; + } + + private boolean jj_3R_192() { Token xsp; + xsp = jj_scanpos; + if (jj_3R_235()) { + jj_scanpos = xsp; + if (jj_3R_236()) { + return true; + } + } while (true) { xsp = jj_scanpos; if (jj_3_2()) { @@ -7735,49 +7603,49 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_232() { - if (jj_scan_token(DIMEN)) { + private boolean jj_3R_226() { + if (jj_scan_token(HZ)) { return true; } return false; } - private boolean jj_3R_231() { - if (jj_scan_token(KHZ)) { + private boolean jj_3R_225() { + if (jj_scan_token(MS)) { return true; } return false; } - private boolean jj_3R_230() { - if (jj_scan_token(HZ)) { + private boolean jj_3R_224() { + if (jj_scan_token(SECOND)) { return true; } return false; } - private boolean jj_3R_229() { - if (jj_scan_token(MS)) { + private boolean jj_3R_223() { + if (jj_scan_token(GRAD)) { return true; } return false; } - private boolean jj_3R_228() { - if (jj_scan_token(SECOND)) { + private boolean jj_3R_222() { + if (jj_scan_token(RAD)) { return true; } return false; } - private boolean jj_3R_177() { - if (jj_3R_197()) { + private boolean jj_3R_174() { + if (jj_3R_192()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_198()) { + if (jj_3R_193()) { jj_scanpos = xsp; break; } @@ -7785,35 +7653,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_227() { - if (jj_scan_token(GRAD)) { - return true; - } - return false; - } - - private boolean jj_3R_226() { - if (jj_scan_token(RAD)) { - return true; - } - return false; - } - - private boolean jj_3R_225() { + private boolean jj_3R_221() { if (jj_scan_token(DEG)) { return true; } return false; } - private boolean jj_3R_224() { + private boolean jj_3R_220() { if (jj_scan_token(EXS)) { return true; } return false; } - private boolean jj_3R_223() { + private boolean jj_3R_219() { if (jj_scan_token(REM)) { return true; } @@ -7821,103 +7675,224 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } private boolean jj_3_4() { - if (jj_3R_174()) { + if (jj_3R_171()) { return true; } return false; } - private boolean jj_3R_222() { + private boolean jj_3R_218() { if (jj_scan_token(LEM)) { return true; } return false; } - private boolean jj_3R_221() { + private boolean jj_3R_217() { if (jj_scan_token(EMS)) { return true; } return false; } - private boolean jj_3R_220() { + private boolean jj_3R_216() { if (jj_scan_token(PX)) { return true; } return false; } - private boolean jj_3R_219() { + private boolean jj_3R_215() { if (jj_scan_token(IN)) { return true; } return false; } - private boolean jj_3R_218() { + private boolean jj_3R_214() { if (jj_scan_token(PC)) { return true; } return false; } - private boolean jj_3R_256() { - if (jj_scan_token(INTERPOLATION)) { + private boolean jj_3R_213() { + if (jj_scan_token(MM)) { return true; } return false; } - private boolean jj_3R_217() { - if (jj_scan_token(MM)) { + private boolean jj_3R_212() { + if (jj_scan_token(CM)) { return true; } return false; } - private boolean jj_3R_216() { - if (jj_scan_token(CM)) { + private boolean jj_3R_251() { + if (jj_scan_token(INTERPOLATION)) { return true; } return false; } - private boolean jj_3R_215() { + private boolean jj_3R_211() { if (jj_scan_token(PT)) { return true; } return false; } - private boolean jj_3R_214() { + private boolean jj_3R_210() { if (jj_scan_token(PERCENTAGE)) { return true; } return false; } - private boolean jj_3R_204() { - if (jj_3R_242()) { + private boolean jj_3R_199() { + if (jj_3R_240()) { return true; } return false; } private boolean jj_3_3() { - if (jj_3R_171()) { + if (jj_3R_168()) { return true; } return false; } - private boolean jj_3R_213() { + private boolean jj_3R_209() { if (jj_scan_token(NUMBER)) { return true; } return false; } + private boolean jj_3R_208() { + if (jj_3R_244()) { + return true; + } + return false; + } + + private boolean jj_3R_190() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_208()) { + jj_scanpos = xsp; + } + xsp = jj_scanpos; + if (jj_3R_209()) { + jj_scanpos = xsp; + if (jj_3R_210()) { + jj_scanpos = xsp; + if (jj_3R_211()) { + jj_scanpos = xsp; + if (jj_3R_212()) { + jj_scanpos = xsp; + if (jj_3R_213()) { + jj_scanpos = xsp; + if (jj_3R_214()) { + jj_scanpos = xsp; + if (jj_3R_215()) { + jj_scanpos = xsp; + if (jj_3R_216()) { + jj_scanpos = xsp; + if (jj_3R_217()) { + jj_scanpos = xsp; + if (jj_3R_218()) { + jj_scanpos = xsp; + if (jj_3R_219()) { + jj_scanpos = xsp; + if (jj_3R_220()) { + jj_scanpos = xsp; + if (jj_3R_221()) { + jj_scanpos = xsp; + if (jj_3R_222()) { + jj_scanpos = xsp; + if (jj_3R_223()) { + jj_scanpos = xsp; + if (jj_3R_224()) { + jj_scanpos = xsp; + if (jj_3R_225()) { + jj_scanpos = xsp; + if (jj_3R_226()) { + jj_scanpos = xsp; + if (jj_3R_227()) { + jj_scanpos = xsp; + if (jj_3R_228()) { + jj_scanpos = xsp; + if (jj_3R_229()) { + return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3R_173() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_190()) { + jj_scanpos = xsp; + if (jj_3R_191()) { + return true; + } + } + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { + jj_scanpos = xsp; + break; + } + } + return false; + } + + private boolean jj_3R_181() { + if (jj_scan_token(SEMICOLON)) { + return true; + } + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { + jj_scanpos = xsp; + break; + } + } + return false; + } + + private boolean jj_3R_247() { + if (jj_scan_token(HASH)) { + return true; + } + return false; + } + /** Generated Token Manager. */ public ParserTokenManager token_source; /** Current token. */ @@ -7928,7 +7903,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { private Token jj_scanpos, jj_lastpos; private int jj_la; private int jj_gen; - final private int[] jj_la1 = new int[253]; + final private int[] jj_la1 = new int[251]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -7942,33 +7917,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { private static void jj_la1_init_0() { jj_la1_0 = new int[] { 0x0, 0xc02, 0xc02, 0x0, 0xc00, 0x2, 0x2, 0x2, - 0xd0000000, 0x0, 0xc00, 0x2, 0xc00, 0x2, 0x0, 0x2, 0x0, 0x2, - 0x2, 0x0, 0x0, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0xd0000000, - 0xd0000000, 0x2, 0x2, 0x2, 0xd3f45400, 0xd3f45400, 0x2, + 0xd3100000, 0x0, 0xc00, 0x2, 0xc00, 0x2, 0x0, 0x2, 0x0, 0x2, + 0x2, 0x0, 0x0, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0xd3100000, + 0xd3100000, 0x2, 0x2, 0x2, 0xd3f45400, 0xd3f45400, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x2, 0x0, 0x0, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x2, 0x2, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, - 0x3f45400, 0x2, 0x2, 0x2, 0x3100000, 0x2, 0x3100000, 0x3100002, - 0x2, 0x480002, 0x480002, 0x2, 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, - 0xd0000000, 0xd0000000, 0x2, 0x400000, 0x2, 0x2, 0x10000000, + 0xe45400, 0x3100000, 0x3100002, 0x3100000, 0x2, 0x2, 0x480002, + 0x480002, 0x2, 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, 0xd3100000, + 0xd3100000, 0x2, 0x400000, 0x2, 0xd3100000, 0x2, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0xd0000000, 0x0, 0x0, 0x0, 0x0, 0xc0000000, 0x2, 0x2, 0xfc000, 0x2, 0x0, 0x2, 0xfc000, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x800000, 0x0, - 0xd0000000, 0x0, 0x4d380002, 0x2, 0xd0000000, 0x2, 0x0, 0x2, - 0x4d380002, 0x0, 0x2, 0xd0000000, 0x2, 0x4d380002, 0x2, 0x2, - 0x2, 0x0, 0x2, 0xd0000000, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, - 0x2, 0x0, 0x2, 0xd0000000, 0xd0000000, 0x2, 0x400000, 0x2, 0x2, + 0xd3100000, 0x0, 0x4d380002, 0x2, 0xd3100000, 0x2, 0x0, 0x2, + 0x4d380002, 0x0, 0x2, 0xd3100000, 0x2, 0x4d380002, 0x2, 0x2, + 0x2, 0x0, 0x2, 0xd3100000, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, + 0x2, 0x0, 0x2, 0xd3100000, 0xd3100000, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x400000, 0x0, 0x0, 0x300000, 0x2, 0x0, 0x400000, 0x2, 0x300000, 0x2, 0x0, 0x2, 0x0, 0x2, 0x800000, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, 0x0, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2, 0x800000, 0x2, - 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x0, 0xd0000000, 0x2, 0x0, + 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x0, 0xd3100000, 0x2, 0x0, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x301000, 0x2, 0x0, 0x2, 0x2, 0x2, 0x2, 0x8400000, 0x8400000, 0x300000, 0x300000, 0x300000, 0x0, 0x0, 0x0, 0x300000, 0x2, 0x2, 0x300000, 0x2, - 0xd0000000, 0x2, 0x2, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, }; + 0xd3100000, 0x2, 0x2, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, }; } private static void jj_la1_init_1() { @@ -7978,11 +7953,11 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { 0xac800181, 0xac800181, 0x0, 0x0, 0x0, 0xc000381, 0xc000381, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x200, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x185, 0x185, 0x0, - 0x100, 0x100, 0x0, 0x0, 0x0, 0x0, 0xac800181, 0xac800181, 0x0, - 0x0, 0x0, 0x0, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, - 0x81, 0x81, 0x181, 0x100, 0x100, 0x100, 0x100, 0x100, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x185, 0x185, 0x0, 0x100, 0x100, 0x0, + 0x0, 0x0, 0x0, 0xac800181, 0xac800181, 0x0, 0x0, 0x0, 0x181, + 0x0, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, + 0x81, 0x181, 0x100, 0x100, 0x100, 0x100, 0x100, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0000000, 0xc800181, 0x0, 0x7e, 0x0, 0xc800181, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0xc800181, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc800181, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, @@ -8006,25 +7981,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { 0x0, 0x0, 0x0, 0x2b80, 0x2b80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x2a80, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x380, 0x380, 0x0, 0x100, 0x100, 0x0, 0x0, 0x0, - 0x0, 0x1112, 0x1112, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x100, 0x100, 0x100, - 0x100, 0x100, 0x0, 0x0, 0x0, 0x0, 0x180, 0x0, 0x0, 0x0, 0x0, - 0x100, 0x0, 0x40, 0x0, 0x0, 0x0, 0x102, 0x1000, 0x1300, 0x0, - 0x1102, 0x0, 0x1, 0x0, 0x1300, 0x20, 0x0, 0x1102, 0x0, 0x1300, - 0x0, 0x0, 0x0, 0x1100, 0x0, 0x1102, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x100, 0x0, 0x1102, 0x1102, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x1000, 0x1000, 0xfffffb80, 0x0, 0x0, 0x0, 0x0, - 0xfffffb80, 0x0, 0x0, 0x0, 0x1100, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x380, 0x380, 0x0, 0x100, 0x100, 0x0, 0x0, 0x0, 0x0, 0x1112, + 0x1112, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x100, 0x100, 0x100, 0x100, + 0x100, 0x0, 0x0, 0x0, 0x0, 0x180, 0x0, 0x0, 0x0, 0x0, 0x100, + 0x0, 0x40, 0x0, 0x0, 0x0, 0x102, 0x1000, 0x1300, 0x0, 0x1102, + 0x0, 0x1, 0x0, 0x1300, 0x20, 0x0, 0x1102, 0x0, 0x1300, 0x0, + 0x0, 0x0, 0x1100, 0x0, 0x1102, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x100, 0x0, 0x1102, 0x1102, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1000, 0x1000, 0xfffffb80, 0x0, 0x0, 0x0, 0x0, 0xfffffb80, + 0x0, 0x0, 0x0, 0x1100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x1000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, - 0x0, 0x100, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, - 0xfffffb80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0xfffffb80, 0x0, 0xffffe200, 0x0, 0x980, 0xffffeb80, 0x0, 0x0, - 0xfffffb80, 0x0, 0x100, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, - 0x0, }; + 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, + 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0xfffffb80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffb80, 0x0, + 0xffffe200, 0x0, 0x980, 0xffffeb80, 0x0, 0x0, 0xfffffb80, 0x0, + 0x100, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, }; } private static void jj_la1_init_3() { @@ -8033,16 +8007,16 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x45, 0x0, 0x0, 0x0, 0xc401bf, 0xc401bf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0xc401be, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x400000, 0x400000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, - 0x45, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x45, 0x0, 0x200000, 0x0, 0x45, 0x0, 0x0, 0x0, 0x200000, - 0x0, 0x0, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x75, 0x75, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x440001, 0x0, 0x0, 0x0, - 0x0, 0x440001, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xc401be, 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, + 0x400000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x45, 0x0, + 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x45, 0x0, 0x200000, 0x0, 0x45, 0x0, 0x0, 0x0, 0x200000, 0x0, + 0x0, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x75, 0x75, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x440001, 0x0, 0x0, 0x0, 0x0, + 0x440001, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x0, 0x0, 0x0, 0x380000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @@ -8063,7 +8037,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 253; i++) { + for (int i = 0; i < 251; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -8077,7 +8051,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 253; i++) { + for (int i = 0; i < 251; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -8091,7 +8065,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 253; i++) { + for (int i = 0; i < 251; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -8105,7 +8079,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 253; i++) { + for (int i = 0; i < 251; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -8256,7 +8230,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 253; i++) { + for (int i = 0; i < 251; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1 << j)) != 0) { diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj index 1f9221de88..3798947d1d 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj @@ -1058,9 +1058,6 @@ void skipUnknownRule() : | n= | n= | n=";" -| n="+" -| n=">" -| n="~" | n="-" | n= ) { @@ -1083,13 +1080,18 @@ char combinator() : char connector = ' '; } { - "+" ( )* { return '+'; } - | ">" ( )* { return '>'; } - | "~" ( )* { return '~'; } -| ( ( "+" { connector = '+'; } - | ">" { connector = '>'; } - | "~" { connector = '~'; } ) - ( )* )? { return connector; } + (connector = combinatorChar() + | (connector = combinatorChar())?) { return connector; } +} + +/**to refactor combinator and reuse in selector().*/ +char combinatorChar() : +{Token t;} +{ + (t = | t = | t = ) ()* + { + return t.image.charAt(0); + } } void microsoftExtension() : @@ -1202,12 +1204,14 @@ void styleRule() : */ String selector() : { - String selector; + String selector = null; char comb; } { try { - selector=simple_selector(null, ' ') + // the selector can begin either a simple_selector, or a combinatorChar(+, >, ~). + // when beginning with combinatorChar, the next one should be a simple_selector(). + (selector=simple_selector(null, ' ') | (comb=combinatorChar() selector=simple_selector(selector, comb))) ( LOOKAHEAD(2) comb=combinator() selector=simple_selector(selector, comb) )* ()* { @@ -1267,22 +1271,27 @@ String simple_selector(String selector, char comb) : if (cond != null) { simple_current = simple_current + cond; } - if (selector != null) { - switch (comb) { + StringBuilder builder = new StringBuilder(); + switch (comb) { case ' ': - selector = selector + comb + simple_current; + if(selector!=null){ + builder.append(selector).append(" "); + } break; case '+': case '>': case '~': - selector = selector + " " + comb + " " + simple_current; + if(selector!=null){ + builder.append(selector).append(" "); + } + builder.append(comb).append(" "); break; default: throw new ParseException("invalid state. send a bug report"); - } - } else { - selector= simple_current; } + builder.append(simple_current); + selector = builder.toString(); + if (pseudoElt != null) { selector = selector + pseudoElt; } diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java index e5116bdb49..9ff123c808 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java @@ -1,3 +1,18 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ /* Generated By:JavaCC: Do not edit this line. ParserTokenManager.java */ package com.vaadin.sass.internal.parser; @@ -5835,21 +5850,6 @@ public class ParserTokenManager implements ParserConstants { int jjmatchedPos; int jjmatchedKind; - /* - * Copyright 2000-2013 Vaadin Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - */ /** Get the next Token. */ public Token getNextToken() { Token specialToken = null; diff --git a/theme-compiler/tests/resources/automatic/css/nested-selector-begin-with-plus.css b/theme-compiler/tests/resources/automatic/css/nested-selector-begin-with-plus.css new file mode 100644 index 0000000000..fa8d2861a6 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/nested-selector-begin-with-plus.css @@ -0,0 +1,9 @@ +.v-panel { + display: block; + max-width: 84em; + margin: auto; +} + +.v-panel + .abc { + margin-top: 1em; +} \ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/nested-selector-begin-with-plus.scss b/theme-compiler/tests/resources/automatic/scss/nested-selector-begin-with-plus.scss new file mode 100644 index 0000000000..f5a61b86ea --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/nested-selector-begin-with-plus.scss @@ -0,0 +1,9 @@ +.v-panel { + display: block; + max-width: 84em; + margin: auto; + + + .abc { + margin-top: 1em; + } + } \ No newline at end of file diff --git a/theme-compiler/tests/resources/sasslangbroken/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css b/theme-compiler/tests/resources/sasslang/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css similarity index 100% rename from theme-compiler/tests/resources/sasslangbroken/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css rename to theme-compiler/tests/resources/sasslang/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css diff --git a/theme-compiler/tests/resources/sasslangbroken/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss b/theme-compiler/tests/resources/sasslang/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss similarity index 100% rename from theme-compiler/tests/resources/sasslangbroken/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss rename to theme-compiler/tests/resources/sasslang/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss -- 2.39.5