public ParserThread(InputStreamReader input, int totalChars, InputStreamReader dictionary, int totalDictionaryChars, OutputStreamWriter output, UI ui, String languageCharacters, String additionalInnerCharacters, int maxWords) {
		mUi = ui;
		mInput = input;
		mTotalChars = totalChars;
		mInputDictionary = dictionary;
		mTotalDictionaryChars = totalDictionaryChars;
		mOutput = output;
		mMaxWords = maxWords;
		
		mLangChars = new HashSet<Character>(languageCharacters.length());
		for (int i = 0; i < languageCharacters.length(); ++i)
			mLangChars.add(languageCharacters.charAt(i));
		
		mLangInnerChars = new HashSet<Character>(additionalInnerCharacters.length());
		for (int i = 0; i < additionalInnerCharacters.length(); ++i)
			mLangInnerChars.add(additionalInnerCharacters.charAt(i));
		
		mWords = new HashMap<String, WordWithCount>();
	}