@SuppressWarnings("unchecked")
	void predefine(String script) {
		if (compiler.compile("#predefine", script, true)) {
			Token[][] aatoken = compiler.getAatokenCompiled();
			if (aatoken.length != 1) {
				viewer
						.scriptStatus("JmolConstants.java ERROR: predefinition does not have exactly 1 command:"
								+ script);
				return;
			}
			Token[] statement = aatoken[0];
			if (statement.length > 2) {
				int tok = statement[1].tok;
				if (tok == Token.identifier || (tok & Token.predefinedset) == Token.predefinedset) {
					String variable = (String) statement[1].value;
					variables.put(variable, statement);
				}
				else {
					viewer.scriptStatus("JmolConstants.java ERROR: invalid variable name:" + script);
				}
			}
			else {
				viewer.scriptStatus("JmolConstants.java ERROR: bad predefinition length:" + script);
			}
		}
		else {
			viewer.scriptStatus("JmolConstants.java ERROR: predefined set compile error:" + script + "\ncompile error:"
					+ compiler.getErrorMessage());
		}
	}