private Token scanDirective () {
		forward();
		String name = scanDirectiveName();
		String value = null;
		if (name.equals("YAML"))
			value = scanYamlDirectiveValue();
		else if (name.equals("TAG"))
			value = scanTagDirectiveValue();
		else {
			StringBuilder buffer = new StringBuilder();
			while (true) {
				char ch = peek();
				if (NULL_OR_LINEBR.indexOf(ch) != -1) break;
				buffer.append(ch);
				forward();
			}
			value = buffer.toString().trim();
		}
		scanDirectiveIgnoredLine();
		return new DirectiveToken(name, value);
	}