private Object number() {
		this.buf.setLength(0);

		if (this.c == '-') {
			this.add();
		}

		this.addDigits();

		if (this.c == '.') {
			this.add();
			this.addDigits();
		}

		if ((this.c == 'e') || (this.c == 'E')) {
			this.add();

			if ((this.c == '+') || (this.c == '-')) {
				this.add();
			}

			this.addDigits();
		}

		return (this.buf.indexOf(".") >= 0) ? (Object) Double
				.parseDouble(this.buf.toString()) : (Object) Long
				.parseLong(this.buf.toString());
	}