/** @see toObject() @param forceClass if true then resolution will only produce a class. This is necessary to disambiguate in cases where the grammar knows that we want a class; where in general the var path may be taken. */ synchronized public Object toObject( CallStack callstack, Interpreter interpreter, boolean forceClass ) throws UtilEvalError { reset(); Object obj = null; while( evalName != null ) obj = consumeNextObjectField( callstack, interpreter, forceClass, false/*autoalloc*/ ); if ( obj == null ) throw new InterpreterError("null value in toObject()"); return obj; }
/** see #toObject(CallStack, Interpreter) @param forceClass if true then resolution will only produce a class. This is necessary to disambiguate in cases where the grammar knows that we want a class; where in general the var path may be taken. */ synchronized public Object toObject( BshEvaluatingVisitor visitor, boolean forceClass ) throws UtilEvalError { reset(); Object obj = null; while( evalName != null ) obj = consumeNextObjectField(visitor, forceClass, false/*autoalloc*/ ); if ( obj == null ) throw new InterpreterError("null value in toObject()"); return obj; }
while( evalName != null && isCompound( evalName ) ) obj = consumeNextObjectField( visitor, false/*forcclass*/, true/*autoallocthis*/ );
while( evalName != null && isCompound( evalName ) ) obj = consumeNextObjectField( callstack, interpreter, false/*forcclass*/, true/*autoallocthis*/ );