private LinkedList<Token> getPreprocessingDirective() {
		Token token;
		LinkedList<Token> directive = new LinkedList<Token>();

		int depth = 0;
		do {
			token = next();
			directive.add(token);

			if (token instanceof DownMarker)
				depth += 1;
			else if (token instanceof UpMarker)
				depth -= 1;

		} while (token != null && depth > 0);

		return directive;
	}