#                              -*- Mode: Perl -*- 
# Verb.pm -- 
# Author          : Ulrich Pfeifer
# Created On      : Thu Feb  1 09:10:48 1996
# Last Modified By: Ulrich Pfeifer
# Last Modified On: Sun Apr  3 11:44:28 2005
# Language        : Perl
# Update Count    : 29
# Status          : Unknown, Use with caution!

package Text::German::Verb;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(%VERB);

{
  local ($_);
  
  while (<DATA>) {
    chomp;
    ($verb, $key) = split;
    $VERB{$verb} = [split ':', $key];
  }
  close DATA;
}

sub reduce {
    my($v,$s,$e) = @_;
    my $ge = ($v.$s =~ /^ge/)?'ge':'';
    
    while (1) {		# algorithmus unklar
	#print "reduce: $s\n";
	if (defined $VERB{$s}) {
	    if ($VERB{$s}->[1]) { # 'ge' gehoert zum stamm 
		my $vg = $v;
		$vg =~ s/^ge//;
		return ($vg, $ge.$VERB{$s}->[0], $e);
	    } else {
		return ($v, $VERB{$s}->[0], $e);
	    }
	}
	last unless $e;
	$s .= substr($e,0,1);
	$e  = substr($e,1);
    }
    return undef;
}

1;
# stamm ersatz:ge gehoert zum wort
# führ	fahr:0
__DATA__
äß	ess:0
aß	ess:0
bäck	back:0
bänd	bind:0
bär	bär:1
bärg	berg:0
bät	bitt:0
bög	bieg:0
böt	biet:0
bük	back:0
back	back:0
band	bind:0
bar	berst:0
barg	berg:0
bat	bitt:0
beiß	beiß:0
ber	berst:0
berg	berg:0
berst	berst:0
bet	bitt:0
biß	beiß:0
bieg	bieg:0
bier	bär:1
biet	biet:0
bind	bind:0
bir	berst:0
birg	berg:0
biss	beiß:0
bitt	bitt:0
blä	blas:0
blas	blas:0
bleib	bleib:0
bleich	bleich:0
blich	bleich:0
blieb	bleib:0
blies	blas:0
bog	bieg:0
bor	berst:0
borg	berg:0
bot	biet:0
brä	brat:0
bräch	bring:0
brät	brat:0
brach	bring:0
brann	brenn:0
brat	brat:0
brech	brech:0
brenn	brenn:0
brich	brech:0
briet	brat:0
bring	bring:0
broch	brech:0
buk	back:0
bund	bind:0
däch	denk:0
däng	ding:0
dünk	dünk:0
dürb	derb:0
dürf	dürf:0
dach	denk:0
dang	ding:0
darb	derb:0
darf	dürf:0
deih	deih:1
denk	denk:0
derb	derb:0
deuch	dünk:0
dieh	deih:1
ding	ding:0
dirb	derb:0
dorb	derb:0
dräng	dring:0
dräsch	dresch:0
drösch	dresch:0
dröss	drieß:0
drang	dring:0
drasch	dresch:0
dresch	dresch:0
drieß	drieß:0
dring	dring:0
drisch	dresch:0
droß	drieß:0
drosch	dresch:0
dross	drieß:0
drung	dring:0
dung	ding:0
durf	dürf:0
ess	ess:0
fähl	fehl:0
fähr	fahr:0
fäll	fall:0
fänd	find:0
fäng	fang:0
föch	fecht:0
föhl	fehl:0
führ	führ:0
fahl	fehl:0
fahr	fahr:0
fall	fall:0
fand	find:0
fang	fang:0
fech	fecht:0
fecht	fecht:0
fehl	fehl:0
fich	fecht:0
fiehl	fehl:0
fiel	fall:0
find	find:0
fing	fang:0
flöch	flecht:0
flög	flieg:0
flöh	flieh:0
flöss	fliess:0
flech	flecht:0
flecht	flecht:0
fleiß	fleiß:0
fliß	fleiß:0
flich	flecht:0
flicht	flecht:0
flieg	flieg:0
flieh	flieh:0
fliess	fliess:0
fliss	fleiß:0
floß	fliess:0
floch	flecht:0
flog	flieg:0
floh	flieh:0
floss	fliess:0
foch	fecht:0
fohl	fehl:0
fräß	fress:0
fräg	frag:0
frör	frier:0
fraß	fress:0
frag	frag:0
fress	fress:0
friß	fress:0
frier	frier:0
fror	frier:0
frug	frag:0
fuhr	fahr:0
fund	find:0
gäß	gess:0
gäb	geb:0
gäl	gelt:0
gänn	ginn:0
gär	gär:0
göl	gelt:0
gönn	ginn:0
gör	gär:0
göss	gieß:0
gaß	gess:0
gab	geb:0
gal	gelt:0
gang	geh:0
gann	ginn:0
geb	geb:0
geh	geh:0
gelt	gelt:0
gess	gess:0
giß	gess:0
gib	geb:0
gieß	gieß:0
gil	gelt:0
gilt	gelt:0
ging	geh:0
ginn	ginn:0
glömm	glimm:0
gleich	gleich:0
gleit	gleit:0
glich	gleich:0
glimm	glimm:0
glitt	gleit:0
glomm	glimm:0
goß	gieß:0
gol	gelt:0
gonn	ginn:0
gor	gär:0
goss	gieß:0
gräb	grab:0
grüb	grab:0
grab	grab:0
greif	greif:0
griff	greif:0
grub	grab:0
häl	halt:0
hälf	helf:0
hält	halt:0
häng	häng:0
hätt	hab:0
höb	heb:0
hüb	heb:0
hülf	helf:0
ha	hab:0
hab	hab:0
hal	halt:0
half	helf:0
halt	halt:0
hang	häng:0
hat	hab:0
hau	hau:0
heb	heb:0
heiß	heiß:0
helf	helf:0
hieß	heiß:0
hieb	hau:0
hiel	halt:0
hilf	helf:0
hing	häng:0
hob	heb:0
holf	helf:0
hub	heb:0
iß	ess:0
ies	
käm	komm:0
kömm	komm:0
könn	könn:0
kör	kies:0
kam	komm:0
kann	könn:0
kies	kies:0
kläng	kling:0
klömm	klimm:0
klang	kling:0
klimm	klimm:0
kling	kling:0
klomm	klimm:0
klung	kling:0
kneif	kneif:0
kniff	kneif:0
komm	komm:0
konn	könn:0
kor	kies:0
kröch	kriech:0
kreisch	kreisch:0
kriech	kriech:0
krisch	kreisch:0
kroch	kriech:0
läß	lass:0
läd	lad:0
läg	lieg:0
läng	ling:1
läs	les:0
läuf	lauf:0
lög	lüg:0
lör	lier:0
lösch	lösch:0
lüd	lad:0
lüg	lüg:0
lad	lad:0
lag	lieg:0
lang	ling:1
las	les:0
lass	lass:0
lauf	lauf:0
leg	lieg:0
leid	leid:0
leih	leih:0
les	les:0
lie	les:0
ließ	lass:0
lief	lauf:0
lieg	lieg:0
lieh	leih:0
lier	lier:0
lies	les
ling	ling:1
lisch	lösch:0
litt	leid:0
log	lüg:0
lor	lier:0
losch	lösch:0
lud	lad:0
lung	ling:1
mäß	mess:0
möch	mög:0
mög	mög:0
mölk	melk:0
müß	müss:0
müss	müss:0
maß	mess:0
mag	mög:0
mahl	mahl:0
meid	meid:0
melk	melk:0
mess	mess:0
miß	mess:0
mied	meid:0
milk	melk:0
moch	mög:0
molk	melk:0
muß	müss:0
nähm	nehm:0
näs	nes:1
nöss	nieß:1
nahm	nehm:0
nann	nenn:0
nas	nes:1
nehm	nehm:0
nenn	nenn:0
nes	nes:1
nieß	nieß:1
nimm	nehm:0
noß	nieß:1
nomm	nehm:0
noss	nieß:1
pfähl	pfehl:0
pfänd	pfind:0
pfäng	pfang:0
pföhl	pfehl:0
pfahl	pfehl:0
pfand	pfind:0
pfang	pfang:0
pfehl	pfehl:0
pfeif	pfeif:0
pfiehl	pfehl:0
pfiff	pfeif:0
pfind	pfind:0
pfing	pfang:0
pflög	pfleg:0
pfleg	pfleg:0
pflog	pfleg:0
pfohl	pfehl:0
pfund	pfind:0
preis	preis:0
pries	preis:0
quöll	quell:0
quell	quell:0
quill	quell:0
quoll	quell:0
rä	rat:0
räng	ring:0
ränn	rinn:0
rät	rat:0
röch	riech:0
rönn	rinn:0
ra	rat:0
rang	ring:0
rann	renn:0
rat	rat:0
reiß	reiß:0
reib	reib:0
reit	reit:0
renn	renn:0
riß	reiß:0
rie	rat:0
rieb	reib:0
riech	riech:0
rief	ruf:0
riet	rat:0
ring	ring:0
rinn	rinn:0
riss	reiß:0
ritt	reit:0
roch	riech:0
ronn	rinn:0
ruf	ruf:0
rung	ring:0
säß	sitz:0
säh	seh:0
säng	sing:0
sänk	sink:0
sänn	sinn:0
säuf	sauf:0
söff	sauf:0
sög	saug:0
sönn	sinn:0
söt	sied:0
sött	sied:0
saß	sitz:0
sah	seh:0
salz	salz:0
sand	send:0
sang	sing:0
sank	sink:0
sann	sinn:0
sauf	sauf:0
saug	saug:0
schäh	scheh:1
schöb	schieb:0
schöl	schelt:0
schöll	schall:0
schör	scher:0
schöss	schieß:0
schüf	schaff:0
schaff	schaff:0
schah	scheh:1
schal	schelt:0
schall	schall:0
scheh	scheh:1
scheiß	scheiß:0
scheid	scheid:0
schein	schein:0
schelt	schelt:0
scher	scher:0
schiß	scheiß:0
schieß	schieß:0
schieb	schieb:0
schied	scheid:0
schieh	scheh:1
schien	schein:0
schil	schelt:0
schilt	schelt:0
schind	schind:0
schiss	scheiß:0
schläf	schlaf:0
schläg	schlag:0
schläng	schling:0
schlöss	schließ:0
schlüg	schlag:0
schlaf	schlaf:0
schlag	schlag:0
schlang	schling:0
schleiß	schleiß:0
schleich	schleich:0
schleif	schleif:0
schliß	schleiß:0
schlich	schleich:0
schließ	schließ:0
schlief	schlaf:0
schliff	schleif:0
schling	schling:0
schliss	schleiß:0
schloß	schließ:0
schloss	schließ:0
schlug	schlag:0
schlung	schling:0
schmölz	schmelz:0
schmeiß	schmeiß:0
schmelz	schmelz:0
schmiß	schmeiß:0
schmilz	schmelz:0
schmiss	schmeiß:0
schmolz	schmelz:0
schnöb	schnaub:0
schnaub	schnaub:0
schneid	schneid:0
schnitt	schneid:0
schnob	schnaub:0
schoß	schieß:0
schob	schieb:0
schol	schelt:0
scholl	schall:0
schor	scher:0
schoss	schieß:0
schräk	schreck:0
schrak	schreck:0
schreck	schreck:0
schrei	schrei:0
schreib	schreib:0
schreit	schreit:0
schri	schrei:0
schrick	schreck:0
schrie	schrei:0
schrieb	schreib:0
schrit	schreit:0
schritt	schreit:0
schrock	schreck:0
schuf	schaff:0
schund	schind:0
schwämm	schwimm:0
schwänd	schwind:0
schwäng	schwing:0
schwöll	schwell:0
schwömm	schwimm:0
schwör	schwör:0
schwür	schwör:0
schwamm	schwimm:0
schwand	schwind:0
schwang	schwing:0
schweig	schweig:0
schwell	schwell:0
schwieg	schweig:0
schwill	schwell:0
schwimm	schwimm:0
schwind	schwind:0
schwing	schwing:0
schwoll	schwell:0
schwomm	schwimm:0
schwor	schwör:0
schwund	schwind:0
schwung	schwing:0
schwur	schwör:0
seh	seh:0
send	send:0
sess	sitz:0
sied	sied:0
sieh	seh:0
sing	sing:0
sink	sink:0
sinn	sinn:0
sitz	sitz:0
soff	sauf:0
sog	saug:0
sonn	sinn:0
sot	sied:0
sott	sied:0
spänn	spinn:0
spönn	spinn:0
spann	spinn:0
spei	spei:0
spi	spei:0
spie	spei:0
spinn	spinn:0
spleiß	spleiß:0
spliß	spleiß:0
spliss	spleiß:0
sponn	spinn:0
spräch	sprech:0
spräng	spring:0
spröss	sprieß:0
sprach	sprech:0
sprang	spring:0
sprech	sprech:0
sprich	sprech:0
sprieß	sprieß:0
spring	spring:0
sproß	sprieß:0
sproch	sprech:0
spross	sprieß:0
sprung	spring:0
stäch	stech:0
stähl	stehl:0
stäk	steck:0
ständ	steh:0
stänk	stink:0
stöß	stoß:0
stöb	stieb:0
stöhl	stehl:0
stünd	steh:0
stürb	sterb:0
stach	stech:0
stahl	stehl:0
stak	steck:0
stand	steh:0
stank	stink:0
starb	sterb:0
stech	stech:0
steck	steck:0
steh	steh:0
stehl	stehl:0
steig	steig:0
sterb	sterb:0
stich	stech:0
stieß	stoß:0
stieb	stieb:0
stieg	steig:0
stiehl	stehl:0
stink	stink:0
stirb	sterb:0
stoß	stoß:0
stob	stieb:0
stoch	stech:0
stohl	stehl:0
storb	sterb:0
streich	streich:0
streit	streit:0
strich	streich:0
strit	streit:0
stritt	streit:0
stunk	stink:0
sung	sing:0
sunk	sink:0
tä	tun:0
tät	tun:0
ta	tun:0
tan	tun:0
tat	tun:0
träf	treff:0
träg	trag:0
tränk	trink:0
trät	tret:0
tröff	trief:0
trög	trüg:0
trüg	trüg:0
traf	treff:0
trag	trag:0
trank	trink:0
trat	tret:0
treff	treff:0
treib	treib:0
tret	tret:0
trieb	treib:0
trief	trief:0
triff	treff:0
trink	trink:0
trit	tret:0
tritt	tret:0
troff	treff:0
trog	trüg:0
trug	trag:0
trunk	trink:0
tu	tun:0
tun	tun:0
wäch	wachs:0
wänd	wind:0
wänn	winn:1
wäsch	wasch:0
wöb	web:0
wög	wieg:0
wönn	winn:1
wüß	wiss:0
wüchs	wachs:0
würb	werb:0
würd	werd:0
würf	werf:0
wüsch	wasch:0
wachs	wachs:0
wand	wind:0
wann	winn:1
warb	werb:0
ward	werd:0
warf	werf:0
wasch	wasch:0
web	web:0
weiß	wiss:0
weich	weich:0
weis	weis:0
werb	werb:0
werd	werd:0
werf	werf:0
wich	weich:0
wieg	wieg:0
wies	weis:0
will	woll:0
wind	wind:0
winn	winn:1
wir	werd:0
wirb	werb:0
wird	werd:0
wirf	werf:0
wiss	wiss:0
wob	web:0
wog	wieg:0
woll	woll:0
wonn	winn:1
worb	werb:0
word	werd:0
worf	werf:0
wräng	wring:0
wrang	wring:0
wring	wring:0
wrung	wring:0
wuß	wiss:0
wuchs	wachs:0
wund	wind:0
wurd	werd:0
wusch	wasch:0
zög	zieh:0
zieh	zieh:0
zog	zieh:0
zwäng	zwing:0
zwang	zwing:0
zwing	zwing:0
zwung	zwing:0
