property = ((ASTIntegerLiteral) propertyNode).getLiteral();
antVar = true;
} else if (propertyNode instanceof ASTArrayAccess) {
// first objectNode is the identifier
objectNode = propertyNode;
ASTArrayAccess narray = (ASTArrayAccess) objectNode;
Object nobject = narray.jjtGetChild(0).jjtAccept(this, object);
if (nobject == null) {
throw new JexlException(objectNode, "array element is null");
} else {
object = nobject;
}
// can have multiple nodes - either an expression, integer literal or
// reference
last = narray.jjtGetNumChildren() - 1;
for (int i = 1; i < last; i++) {
objectNode = narray.jjtGetChild(i);
if (objectNode instanceof JexlNode.Literal<?>) {
object = objectNode.jjtAccept(this, object);
} else {
Object index = objectNode.jjtAccept(this, null);
object = getAttribute(object, index, objectNode);
}
}
property = narray.jjtGetChild(last).jjtAccept(this, null);
} else {
throw new JexlException(objectNode, "illegal assignment form");
}
// deal with ant variable; set context
if (antVar) {