private int booleanLiteral(final Token token, final String text,
			final int start, final int prefixLength, final int length) {
		
		final char quotationMark = text.charAt(start + prefixLength);

		int position = start + prefixLength + 2;
		
		while (position < length) {
			final char c = text.charAt(position);
			if (c != quotationMark) {
				// TODO Check if legal character ?
				position += 1;
				continue;
			}

			final Token booleanLiteral = token.subtoken(start, position + 1);
			booleanLiteral.addTag(AreaTag.PROGRAM_TEXT_AREA);
			booleanLiteral.addTag(SyntacticTag.CHARACTER_STRING);
			booleanLiteral.addTag(SyntacticTag.BOOLEAN_LITERAL);
			if (LOGGER.isTraceEnabled()) {
				LOGGER.trace("Boolean: " + booleanLiteral);
			}
			enqueue(booleanLiteral);
			return position + 1;
		}

		// TODO Incomplete hexadecimal. Throw error ?

		final Token booleanLiteral = token.subtoken(start);
		booleanLiteral.addTag(AreaTag.PROGRAM_TEXT_AREA);
		booleanLiteral.addTag(SyntacticTag.CHARACTER_STRING);
		booleanLiteral.addTag(SyntacticTag.BOOLEAN_LITERAL);
		if (LOGGER.isTraceEnabled()) {
			LOGGER.trace("Incomplete boolean: " + booleanLiteral);
		}
		enqueue(booleanLiteral);
		return length;
	}