private void lexRaw(String string) {
		StringBuilder builder = new StringBuilder();
		while (pos < string.length()) {
			// [%-
			Matcher matcher = openTagRe.matcher(string.substring(pos));
			if (matcher.find()) {
				mode = LexerMode.IN_TAG;
				pos += matcher.group(0).length();

				if (builder.toString().length() > 0) {
					tokens.add(this.createToken(TokenType.RAW,
							builder.toString()));
				}

				// [%# comments %]
				if (pos < string.length() && string.charAt(pos) == '#') {
					this.lexTagComment();
				} else {
					tokens.add(this.createToken(TokenType.OPEN));
				}
				return;
			} else {
				char c = string.charAt(pos);
				if (c == '\n') {
					++lineNumber;
				}
				builder.append(string.charAt(pos));
				++pos;
			}
		}
		if (builder.toString().length() > 0) {
			tokens.add(this.createToken(TokenType.RAW, builder.toString()));
		}
	}