public Token scanForNextToken()
	{
		if (!matcher.find())
			return null;

		String tokenstring = matcher.group();
		String type = null;
		if (Pattern.compile(SPECIAL_SYMBOL).matcher(tokenstring).matches())
			type = "specialsymbol";
		else if (Pattern.compile(KEYWORD).matcher(tokenstring).matches())
			type = "keyword";
		else if (Pattern.compile(SYMBOL).matcher(tokenstring).matches())
			type = "symbol";
		else if (Pattern.compile(WORD).matcher(tokenstring).matches())
			type = "word";
		else if (Pattern.compile(NUMBER).matcher(tokenstring).matches())
			type = "number";
		else if (Pattern.compile(BOOLEAN).matcher(tokenstring).matches())
			type = "boolean";
		else if (Pattern.compile(CHARACTER).matcher(tokenstring).matches())
			type = "character";
		else if (Pattern.compile(STRING).matcher(tokenstring).matches())
			type = "string";
		else
			type = "unknown";

		return new Token(tokenstring, type);
	}