public static VariableReference getVariableReference(PageContext pc,String var) throws PageException {
StringList list = parse(pc,new ParserString(var),false);
if(list==null) throw new InterpreterException("invalid variable declaration ["+var+"]");
if(list.size()==1) {
return new VariableReference(pc.undefinedScope(),list.next());
}
int scope=scopeString2Int(list.next());
Object coll;
if(scope==Scope.SCOPE_UNDEFINED){
coll=pc.touch(pc.undefinedScope(),list.current());
}
else{
coll=VariableInterpreter.scope(pc, scope, list.hasNext());
//coll=pc.scope(scope);
}
while(list.hasNextNext()) {
coll=pc.touch(coll,list.next());
}
if(!(coll instanceof Collection))
throw new InterpreterException("invalid variable ["+var+"]");
return new VariableReference((Collection)coll,list.next());
}