final public void Variable() throws ParseException {
		String identString = "";
		ASTVarNode jjtn001 = new ASTVarNode(JJTVARNODE);
		boolean jjtc001 = true;
		jjtree.openNodeScope(jjtn001);
		try {
			identString = Identifier();
			jjtree.closeNodeScope(jjtn001, true);
			jjtc001 = false;
			if (jep.symTab.containsKey(identString)) {
				jjtn001.setName(identString);
			}
			else {
				if (jep.allowUndeclared) {
					jep.symTab.put(identString, new Double(0));
					jjtn001.setName(identString);
				}
				else {
					addToErrorList("Unrecognized symbol \"" + identString + "\"");
				}
			}
		}
		catch (Throwable jjte001) {
			if (jjtc001) {
				jjtree.clearNodeScope(jjtn001);
				jjtc001 = false;
			}
			else {
				jjtree.popNode();
			}
			if (jjte001 instanceof RuntimeException) {
				throw (RuntimeException) jjte001;
			}
			if (jjte001 instanceof ParseException) {
				throw (ParseException) jjte001;
			}
			throw (Error) jjte001;
		}
		finally {
			if (jjtc001) {
				jjtree.closeNodeScope(jjtn001, true);
			}
		}
	}