jj_la1[106] = jj_gen;
;
}
jj_consume_token(LPARAN);
if (operator != ' ') {
{if (true) throw new CSSParseException("invalid operator before a function.",
getLocator());}
}
String f = convertIdent(n.image);
LexicalUnitImpl l = (LexicalUnitImpl) params;
boolean loop = true;
if ("rgb(".equals(f)) {
// this is a RGB declaration (e.g. rgb(255, 50%, 0) )
int i = 0;
while (loop && l != null && i < 5) {
switch (i) {
case 0:
case 2:
case 4:
if ((l.getLexicalUnitType() != LexicalUnit.SAC_INTEGER)
&& (l.getLexicalUnitType() != LexicalUnit.SAC_PERCENTAGE)) {
loop = false;
}
break;
case 1:
case 3:
if (l.getLexicalUnitType() != LexicalUnit.SAC_OPERATOR_COMMA) {
loop = false;
}
break;
default:
{if (true) throw new ParseException("implementation error");}
}
if (loop) {
l = (LexicalUnitImpl) l.getNextLexicalUnit();
i ++;
}
}
if ((i == 5) && loop && (l == null)) {
{if (true) return LexicalUnitImpl.createRGBColor(n.beginLine,
n.beginColumn,
prev, params);}
} else {
if (errorHandler != null) {
String errorText;
Locator loc;
if (i < 5) {
if (params == null) {
loc = new LocatorImpl(this, n.beginLine,
n.beginColumn-1);
errorText = "not enough parameters.";
} else if (l == null) {
loc = new LocatorImpl(this, n.beginLine,
n.beginColumn-1);
errorText = "not enough parameters: "
+ params.toString();
} else {
loc = new LocatorImpl(this, l.getLineNumber(),
l.getColumnNumber());
errorText = "invalid parameter: "
+ l.toString();
}
} else {
loc = new LocatorImpl(this, l.getLineNumber(),
l.getColumnNumber());
errorText = "too many parameters: "
+ l.toString();
}
errorHandler.error(new CSSParseException(errorText, loc));
}
{if (true) throw new JumpException();}
}
} else if ("counter".equals(f)) {