# -*- encoding: iso-8859-1 -*-


"""erstellt eine Datei aller Wortlemmata. Diese Datei soll gegen ein Korpus (CosmasII)
laufen und die Trefferhäufigkeiten der einzelnen Lemmata zeigen. Auf diese Art sollen
nicht existente Lemmata gefiltert werden können und die richtige Umlautschreibung 
gefunden werden.
Die Lemmata werden in einer Liste übergeben. Lemmata mit mehr als einem Listenelement 
werden in den unterschiedlichen Versionen untereinander gedruckt:
	HUEHNERHOEFE
	HÜHNERHOEFE
	HUEHNERHÖFE
	HÜHNERHÖFE
Die Kodierung zum Rücktransver der Lemmata in das Wörterbuch erfolgt durch Leerzeilen:	
	AALFAENGE		(= wl1)
	AALFÄNGE		(= wl1)
			<Leerzeile nach WL1>
	AALFANG			(= wl2)
			<zwei Leerzeilen vor WL1>
	
	AALFOERMIG		(= wl1)
	AALFÖRMIG		(= wl1)
	etc.
"""


import re, os, time
import classEntry03
import classSuffixManager

		
def printList(p):
	"""bekommt einen Lexikoneintrag. Übergibt Wl1 an den SuffixManager.
	Druckt in oben beschriebener Kodierung eine Liste aller Wortlemmata.
	"""
	f = open("../../res/wortlemmaListe/wlInputList.txt", "a")
	wl1 = p.getWl1()
	wl2 = p.getWl2()
	for lem in wl1:
		f.write(lem + "\n")
	if wl2[0]=="":
		f.write("\n"+"\n")
	else:
		f.write("\n")
		for lem in wl2:
			f.write(lem +"\n")
		f.write("\n"+"\n")
		
		
def rmOldVersions():
	"""löscht, wenn vorhanden, Dateien, die durch dieses Programm neu erstellt werden.
	Da die Dateien im append-Modus geöffnet werden, werden die alten Versionen 
	nicht automatisch überschrieben.
	"""
	if os.path.exists("../../res/wortlemmaListe/wlInputList.txt"): 
		os.unlink("../../res/wortlemmaListe/wlInputList.txt")


if __name__ == "__main__":
	"""Öffnet die Wörterbuchversion 03version.txt und liest 
	sie in eine Liste. Ruft für jeden Eintrag die Klassen Entry03 
	auf und übergibt ihr den kompletten Eintrag. Ruft die Klasse 
	SuffixManager auf. Übergibt alle Einträge einzeln an die 
	printList-Funktion.
	"""
	time1 =  time.time()
	lexicon = open("../../res/03WAT.txt")
	rmOldVersions()
	wholeEntry = []
	countEntry = 1
	line = lexicon.readline()
	while line:
		line = line.strip()
		if re.search("ID:", line):
			if wholeEntry and wholeEntry[0] is not "":
				countEntry += 1
				p = classEntry03.Entry(wholeEntry)
				s = classSuffixManager.SuffixManager(p)
				s.appendSuffix()
				printList(p)
			wholeEntry = []
		wholeEntry.append(line)
		line = lexicon.readline()
	p = classEntry03.Entry(wholeEntry)
	s = classSuffixManager.SuffixManager(p)
	s.appendSuffix()	
	printList(p)
	print "Anzahl der Einträge: ", countEntry
	time2 =  time.time()
	print "Laufzeit in Minuten: ", (time2-time1)/60
