code: 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(pc.ignoreScopes(), list.next());
  
  	Object coll;
  	if (scope == Scope.SCOPE_UNDEFINED) {
  	    coll = pc.touch(pc.undefinedScope(), KeyImpl.init(list.current()));
  	}
  	else {
  	    coll = VariableInterpreter.scope(pc, scope, list.hasNext());
  	    // coll=pc.scope(scope);
  	}
  
  	while (list.hasNextNext()) {
  	    coll = pc.touch(coll, KeyImpl.init(list.next()));
  	}
  
  	if (!(coll instanceof Collection)) throw new InterpreterException("invalid variable [" + var + "]");
  	return new VariableReference((Collection) coll, list.next());
      }
docs: return a variable reference by string syntax ("scopename.key.key" -> "url.name") a variable
  reference, references to variable, to modifed it, with global effect.
  
  @param pc
  @param var variable name to get
  @return variable as Reference
  @throws PageException