final public ASTStart Start() throws ParseException {
		/* @bgen(jjtree) Start */
		ASTStart jjtn000 = new ASTStart(JJTSTART);
		boolean jjtc000 = true;
		jjtree.openNodeScope(jjtn000);
		try {
			if (jj_2_1(1)) {
				Expression();
				jj_consume_token(0);
				jjtree.closeNodeScope(jjtn000, true);
				jjtc000 = false;
				return jjtn000;
			}
			else {
				switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
				case 0:
					jj_consume_token(0);
					jjtree.closeNodeScope(jjtn000, true);
					jjtc000 = false;
					throw new ParseException("No expression entered");
				default:
					jj_la1[0] = jj_gen;
					jj_consume_token(-1);
					throw new ParseException();
				}
			}
		}
		catch (Throwable jjte000) {
			if (jjtc000) {
				jjtree.clearNodeScope(jjtn000);
				jjtc000 = false;
			}
			else {
				jjtree.popNode();
			}
			if (jjte000 instanceof RuntimeException) {
				throw (RuntimeException) jjte000;
			}
			if (jjte000 instanceof ParseException) {
				throw (ParseException) jjte000;
			}
			throw (Error) jjte000;
		}
		finally {
			if (jjtc000) {
				jjtree.closeNodeScope(jjtn000, true);
			}
		}
	}