}
if (name.startsWith("$"))
name = name.substring(1);
_jspBuilder.attribute(new QName("var"), name);
cb.clear();
parseVelocityExpr(cb, ')');
String expr = cb.close();
if (expr.indexOf("..") > 0) {
int h = 0;
for (; Character.isWhitespace(expr.charAt(h)); h++) {
}
if (expr.charAt(h) != '[')
throw error(L.l("Expected '[' for #foreach `{0}'. The velocity-style #foreach syntax is: #foreach ([Type] $a in [min .. max])",
badChar(expr.charAt(h))));
int t = expr.length() - 1;
for (; Character.isWhitespace(expr.charAt(t)); t--) {
}
if (expr.charAt(t) != ']')
throw error(L.l("Expected ']' for #foreach `{0}'. The velocity-style #foreach syntax is: #foreach ($a in [min .. max])",
badChar(expr.charAt(t))));
int p = expr.indexOf("..");
String min = expr.substring(h + 1, p);
String max = expr.substring(p + 2, t);
_jspBuilder.attribute(new QName("begin"), "${" + min + "}");
_jspBuilder.attribute(new QName("end"), "${" + max + "}");
}
else {
_jspBuilder.attribute(new QName("items"), "${" + expr + "}");
}
_jspBuilder.endAttributes();
return skipWhitespaceToEndOfLine(read());
}