code: public Bindings evaluate(Map symbolTable)
  	throws RslEvaluationException {
  	if (symbolTable == null) {
  	    throw new IllegalArgumentException("Symbol table must be initialized.");
  	}
  	List newValues = new LinkedList();
  	Iterator iter = values.iterator();
  	Object vl;
  	Binding binding;
  	while (iter.hasNext()) {
  	    vl = iter.next();
  	    if (vl instanceof Binding) {
  		binding = ((Binding)vl).evaluate(symbolTable);
  
  		// update symbol table
  		symbolTable.put(binding.getName(),
  				binding.getValue().getValue());
  
  		newValues.add(binding);
  	    } else {
  		// error: only binding objects should be in the list
  		throw new RuntimeException("Invalid object in binding");
  	    }
  	}
  
  	Bindings bind = new Bindings(getAttribute());
  	bind.setValues(newValues);
  	return bind;
      }
docs: Evaluates the variable definitions as variable definitions
  can reference each other against the symbol table.
  The evaluation process updates the symbol table.
  
  @param symbolTable the symbol table to evalute the variables
  against.
  @return a new evaluted variable definition.
  @exception RslEvaluationException If an error occured during
  rsl evaluation.