public Token nextToken() {
		Token token = tokenizer.nextToken();

		if (token != null) {
			if (token.hasTag(ContinuationsTag.SKIPPED)) {
				// Do nothing.

			} else if (token.hasTag(AreaTag.END_OF_LINE)) {
				count = 0;

			} else if (token.hasTag(AreaTag.PROGRAM_TEXT_AREA)) {
				count += 1;

			} else if (token.hasTag(AreaTag.IDENTIFICATION_AREA)) {
				String text = token.getText();
				int pos = text.indexOf(':');
				if (pos != -1) {
					int expected = Integer.parseInt(text.substring(pos + 1)
							.trim());

					if (expected != count) {
						LOGGER.error("Line " + token.getStart().getLinenumber()
								+ ": found " + count + " token(s); expected "
								+ expected + ".");
					}
				}
			}
		}

		return token;
	}