private String getTokenValue(Token t) { return getTokenValue(t, false); }
private String extractNumber(Token t) { String token = getTokenValue(t); int offset = 0; char[] ch = token.toCharArray(); for (int i = 0; i < ch.length; i++) { char c = ch[i]; if (c < '0' || c > '9') { break; } offset++; } if (ch[offset] == '.') { offset++; for (int i = offset; i < ch.length; i++) { char c = ch[i]; if (c < '0' || c > '9') { break; } offset++; } } return token.substring(0, offset); }
private String extractUnit(Token t) { String s = extractNumber(t); return getTokenValue(t).substring(s.length()); }
private void addPseudoElement(Token t, Selector selector) { String value = getTokenValue(t); if (SUPPORTED_PSEUDO_ELEMENTS.contains(value)) { selector.setPseudoElement(value); } else { throw new CSSParseException(value + " is not a recognized psuedo-element", getCurrentLine()); } }
private void addPseudoClassOrElement(Token t, Selector selector) { String value = getTokenValue(t); if (value.equals("link")) { selector.addLinkCondition(); } else if (value.equals("visited")) { selector.setPseudoClass(Selector.VISITED_PSEUDOCLASS); } else if (value.equals("hover")) { selector.setPseudoClass(Selector.HOVER_PSEUDOCLASS); } else if (value.equals("focus")) { selector.setPseudoClass(Selector.FOCUS_PSEUDOCLASS); } else if (value.equals("active")) { selector.setPseudoClass(Selector.ACTIVE_PSEUDOCLASS); } else if (value.equals("first-child")) { selector.addFirstChildCondition(); } else if (value.equals("even")) { selector.addEvenChildCondition(); } else if (value.equals("odd")) { selector.addOddChildCondition(); } else if (value.equals("last-child")) { selector.addLastChildCondition(); } else if (CSS21_PSEUDO_ELEMENTS.contains(value)){ selector.setPseudoElement(value); } else { throw new CSSParseException(value + " is not a recognized pseudo-class", getCurrentLine()); } }
private PropertyValue hexcolor() throws IOException { //System.out.println("hexcolor()"); PropertyValue result = null; Token t = next(); if (t == Token.TK_HASH) { String s = getTokenValue(t); if ((s.length() != 3 && s.length() != 6) || ! isHexString(s)) { push(t); throw new CSSParseException('#' + s + " is not a valid color definition", getCurrentLine()); } FSRGBColor color = null; if (s.length() == 3) { color = new FSRGBColor( convertToInteger(s.charAt(0), s.charAt(0)), convertToInteger(s.charAt(1), s.charAt(1)), convertToInteger(s.charAt(2), s.charAt(2))); } else { /* s.length == 6 */ color = new FSRGBColor( convertToInteger(s.charAt(0), s.charAt(1)), convertToInteger(s.charAt(2), s.charAt(3)), convertToInteger(s.charAt(4), s.charAt(5))); } result = new PropertyValue(color); skip_whitespace(); } else { push(t); throw new CSSParseException(t, Token.TK_HASH, getCurrentLine()); } return result; }
private String medium() throws IOException { //System.out.println("medium()"); String result = null; Token t = next(); if (t == Token.TK_IDENT) { result = getTokenValue(t); skip_whitespace(); } else { push(t); throw new CSSParseException(t, Token.TK_IDENT, getCurrentLine()); } return result; }
private String property() throws IOException { //System.out.println("property()"); Token t = next(); String result; if (t == Token.TK_IDENT) { result = getTokenValue(t); skip_whitespace(); } else { push(t); throw new CSSParseException( t, Token.TK_IDENT, getCurrentLine()); } return result; }
private void addPseudoClassOrElementFunction(Token t, Selector selector) throws IOException { String f = getTokenValue(t); f = f.substring(0, f.length()-1); t = next(); if (t == Token.TK_IDENT) { String lang = getTokenValue(t); selector.addLangCondition(lang); skip_whitespace(); StringBuilder number = new StringBuilder(); while ((t = next()) != null && (t == Token.TK_IDENT || t == Token.TK_S || t == Token.TK_NUMBER || t == Token.TK_DIMENSION || t == Token.TK_PLUS || t == Token.TK_MINUS)) { number.append(getTokenValue(t));
private String pseudo_page() throws IOException { //System.out.println("pseudo_page()"); String result = null; Token t = next(); if (t == Token.TK_COLON) { t = next(); if (t == Token.TK_IDENT) { result = getTokenValue(t); if (! (result.equals("first") || result.equals("left") || result.equals("right"))) { throw new CSSParseException("Pseudo page must be one of first, left, or right", getCurrentLine()); } } else { push(t); throw new CSSParseException(t, Token.TK_IDENT, getCurrentLine()); } } else { push(t); throw new CSSParseException(t, Token.TK_COLON, getCurrentLine()); } return result; } // operator
next(); if (t == Token.TK_IDENT) { name = getTokenValue(t, true); name = getTokenValue(t, true);
result = new PropertyValue( CSSPrimitiveValue.CSS_NUMBER, sign*Float.parseFloat(getTokenValue(t)), sign(sign) + getTokenValue(t)); next(); skip_whitespace(); type, sign*Float.parseFloat(extractNumber(t)), sign(sign) + getTokenValue(t)); next(); skip_whitespace(); CSSPrimitiveValue.CSS_PERCENTAGE, sign*Float.parseFloat(extractNumber(t)), sign(sign) + getTokenValue(t)); next(); skip_whitespace(); CSSPrimitiveValue.CSS_EMS, sign*Float.parseFloat(extractNumber(t)), sign(sign) + getTokenValue(t)); next(); skip_whitespace(); CSSPrimitiveValue.CSS_EXS, sign*Float.parseFloat(extractNumber(t)), sign(sign) + getTokenValue(t)); next();
prefix = getTokenValue(t); skip_whitespace(); t = next(); url = getTokenValue(t); } else { throw new CSSParseException(
private void class_selector(Selector selector) throws IOException { //System.out.println("class_selector()"); Token t = next(); if (t == Token.TK_PERIOD) { t = next(); if (t == Token.TK_IDENT) { selector.addClassCondition(getTokenValue(t, true)); } else { push(t); throw new CSSParseException(t, Token.TK_IDENT, getCurrentLine()); } } else { push(t); throw new CSSParseException(t, Token.TK_PERIOD, getCurrentLine()); } }
Token t = next(); if (t == Token.TK_FUNCTION) { String f = getTokenValue(t); skip_whitespace(); List params = expr(false);
case Token.HASH: t = next(); selector.addIDCondition(getTokenValue(t, true)); break; case Token.PERIOD: case Token.HASH: t = next(); selector.addIDCondition(getTokenValue(t, true)); found = true; break;
t = la(); if (t == Token.TK_IDENT) { String pageName = getTokenValue(t); if (pageName.equals("auto")) { throw new CSSParseException("page name may not be auto", getCurrentLine());
return; String name = getTokenValue(t); MarginBoxName marginBoxName = MarginBoxName.valueOf(name); if (marginBoxName == null) {
case Token.STRING: case Token.URI: String uri = getTokenValue(t); String baseUri = stylesheet.getURI();
t = next(); if (t == Token.TK_IDENT || t == Token.TK_STRING) { String value = getTokenValue(t, true); switch (selectorType.getType()) { case Token.EQUALS: