public Token nextToken() {
		Token token;
		// System.out.println("nextToken()");
		// skip all whitespace and comments
		while (true) {

			skipWhiteSpace();
			if (ch == ';') {
				src.skipLine();
				ch = src.nextChar();
			} else {
				break;
			}
		}

		// System.out.println("Switch on char|"+(int)ch+"|");

		switch (ch) {
		case '(':
			token = new Token("(");
			ch = src.nextChar();
			break;
		case ')':
			token = new Token(")");
			ch = src.nextChar();
			break;
		case '#':
			token = getBoolean();
			break;
		case '\'':
			token = getLiteral();
			break;
		case '\0':
			token = new Token("\0");
			break;
		default:
			token = getWord();
		}
		return token;
	}