public Annotations(Generator gen, String path) {
		this.gen = gen;
		this.path = path;
		try {
			File dir = new File(path);
			dir.mkdirs();
			readFileNames();
			readIdentifiersFile();
			File f = new File(dir, ANNOTATIONS_BINARY_FILE);
			annotFile = new RandomAccessFile(f, "rw");
			if (f.length() > 0) {
				posInWriteBuffer = (int) (f.length() % writeBuffer.length);
				if ((posInWriteBuffer % TUPLE_SIZE_IN_BYTES) != 0) {
					throw new RuntimeException("Annotations file corrupted");
				}
				absoluteWritePos = f.length() - posInWriteBuffer;
				annotFile.seek(absoluteWritePos);
				annotFile.read(writeBuffer, 0, posInWriteBuffer);
				annotNo = f.length() / TUPLE_SIZE_IN_BYTES;
			}
		} catch (IOException ex) {
			throw new RuntimeException(ex);
		}
	}