private void processTokenFile(String fileName, boolean reversed) throws IOException {
		XMLStreamReader reader = resourceGetter.getXMLStreamReader(fileName);
		try {
			while (reader.hasNext()) {
				if (reader.next() == XMLStreamConstants.START_ELEMENT) {
					String tagName = reader.getLocalName();
					if (tagName.equals("tokenLists")) {
						while (reader.hasNext()) {
							switch (reader.next()) {
							case XMLStreamConstants.START_ELEMENT:
								if (reader.getLocalName().equals("tokenList")) {
									processTokenList(reader, reversed);
								}
								break;
							}
						}
					}
					else if (tagName.equals("tokenList")) {
						processTokenList(reader, reversed);
					}
				}
			}
		}
		catch (XMLStreamException e) {
			throw new IOException("Parsing exception occurred while reading " + fileName, e);
		}
		finally {
			try {
				reader.close();
			} catch (XMLStreamException e) {
				throw new IOException("Parsing exception occurred while reading " + fileName, e);
			}
		}
	}