code: public Object eval( CallStack callstack, Interpreter interpreter)
          throws EvalError
      {
          Object value = Primitive.VOID;
          try {
              NameSpace namespace = callstack.top();
              BSHType typeNode = getTypeNode();
              Class<?> type = typeNode.getType( callstack, interpreter );
  
              BSHVariableDeclarator [] bvda = getDeclarators();
              for (int i = 0; i < bvda.length; i++)
              {
                  BSHVariableDeclarator dec = bvda[i];
  
                  // Type node is passed down the chain for array initializers
                  // which need it under some circumstances
                  value = dec.eval( typeNode, modifiers, callstack, interpreter);
                  try {
                      LHS lhs = null;
                      if ( namespace.isClass )
                          if ( null != namespace.classInstance )
                              lhs = new LHS(namespace.classInstance,
                                  Reflect.resolveJavaField(
                                      namespace.classInstance.getClass(),
                                  dec.name, modifiers.hasModifier("static")));
                          else
                              lhs = new LHS(namespace.classStatic,
                                  Reflect.resolveJavaField(namespace.classStatic,
                                  dec.name, modifiers.hasModifier("static")));
  
                      if ( null != lhs && null != lhs.field ) {
                          Variable var = new Variable(dec.name, type, lhs);
                          var.modifiers = modifiers;
                          var.setValue(value, Variable.ASSIGNMENT);
                          namespace.setVariableImpl(var);
                      } else {
                          if (interpreter.getStrictJava()
                                  && value instanceof Primitive
                                  && ((Primitive) value).isNumber())
                              value = Primitive.castNumberStrictJava(type,
                                      ((Primitive) value).numberValue());
                          namespace.setTypedVariable(
                                  dec.name, type, value, modifiers );
                      }
                      value = namespace.getVariable(dec.name);
                  } catch ( UtilEvalError e ) {
                      throw e.toEvalError( this, callstack );
                  }
              }
          } catch ( EvalError e ) {
              e.reThrow( "Typed variable declaration" );
          }
          return value;
      }
docs: evaluate the type and one or more variable declarations, e.g.:
  int a, b=5, c;