/** */ public static int getIndexAux( Object obj, BshEvaluatingVisitor visitor, SimpleNode callerInfo ) throws EvalError { if ( !obj.getClass().isArray() ) throw new EvalError("Not an array", callerInfo, visitor.getCallstack() ); int index; try { Object indexVal = ((SimpleNode)callerInfo.jjtGetChild(0)).accept(visitor); if ( !(indexVal instanceof Primitive) ) indexVal = Types.castObject( indexVal, Integer.TYPE, Types.ASSIGNMENT); index = ((Primitive)indexVal).intValue(); } catch( UtilEvalError e ) { Interpreter.debug("doIndex: "+e); throw e.toEvalError( "Arrays may only be indexed by integer types.", callerInfo, visitor.getCallstack() ); } return index; }
/** */ static int getIndexAux(Object obj, int idx, CallStack callstack, Interpreter interpreter, SimpleNode callerInfo ) throws EvalError { int index; try { Object indexVal = ((SimpleNode) callerInfo.jjtGetChild(idx)).eval( callstack, interpreter ); if ( !(indexVal instanceof Primitive) ) indexVal = Types.castObject( indexVal, Integer.TYPE, Types.ASSIGNMENT ); index = ((Primitive) indexVal).intValue(); } catch( UtilEvalError e ) { Interpreter.debug("doIndex: "+e); throw e.toEvalError( "Arrays may only be indexed by integer types.", callerInfo, callstack ); } return index; }
node.definedDimensions[i] = ((Primitive)length).intValue();
Object length = ((SimpleNode)jjtGetChild(i)).eval( callstack, interpreter); definedDimensions[i] = ((Primitive)length).intValue();