/usr/share/perl5/Text/German/Endung.pm is in libtext-german-perl 0.06-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | # -*- Mode: Perl -*-
# Endung.pm --
# Author : Ulrich Pfeifer
# Created On : Thu Feb 1 09:10:48 1996
# Last Modified By: Ulrich Pfeifer
# Last Modified On: Sun Apr 3 12:16:20 2005
# Language : Perl
# Update Count : 45
# Status : Unknown, Use with caution!
package Text::German::Endung;
# require Exporter;
# @ISA = qw(Exporter);
# @EXPORT = qw(%ENDUNG);
use Text::German::Util;
{
local ($_);
while (<DATA>) {
chomp;
my ($endung, $key) = split;
my ($a,$b,$c,$d) = split ':', $key; # $c, $d nicht verwedet?
my $B = Text::German::Util::bit_to_int($b);
$ENDUNG{$endung} = [$a,$B,$c,$d];
}
close DATA;
}
sub endungen {
my $word = shift;
my $class = wordclass($word);
my @result;
for $i (1 .. length($word)) {
my $endung = substr($word, length($word)-$i,$i);
if (defined $ENDUNG{$endung} && defined $ENDUNG{$endung}->[1]
and ($ENDUNG{$endung}->[1] & $class)) {
push @result, $endung;
}
}
@result;
}
sub max_endung {
my $word = shift;
my $class = wordclass($word);
my $result = undef;
for $i (1 .. length($word)) {
my $endung = substr($word, length($word)-$i,$i);
if (defined $ENDUNG{$endung}
and ($ENDUNG{$endung}->[1] & $class)) {
$result = $endung
if !defined($result) || length($endung) > length($result);
}
}
$result;
}
sub wort_klasse {
my $endung = shift;
$ENDUNG{$endung}->[1];
}
sub regel {
my $endung = shift;
$ENDUNG{$endung}->[0];
}
1;
# regel
# wortklassen
# nachfolgeregel
__DATA__
e 001:11100:000:000
em 004:00100:000:000
en 002:11101:000:010
end 003:00010:000:011
ende 037:00010:001:047
endem 039:00010:004:049
enden 038:00010:002:048
ender 040:00010:005:050
endere 057:00010:092:067
enderem 059:00010:094:069
enderen 058:00010:093:068
enderer 060:00010:095:070
enderes 061:00010:096:071
endes 041:00010:007:051
endste 077:00010:102:087
endstem 079:00010:104:089
endsten 078:00010:103:088
endster 080:00010:105:090
endstes 081:00010:106:091
ene 032:00001:001:001
enem 034:00001:004:004
enen 033:00001:002:002
ener 035:00001:005:005
enere 052:00001:092:092
enerem 054:00001:094:094
eneren 053:00001:093:093
enerer 055:00001:095:095
eneres 056:00001:096:096
enes 036:00001:007:007
enste 072:00001:102:102
enstem 074:00001:104:104
ensten 073:00001:103:103
enster 075:00001:105:105
enstes 076:00001:106:106
er 005:10100:000:000
ere 092:00100:001:001
erem 094:00100:004:004
eren 093:00100:002:002
erer 095:00100:005:005
eres 096:00100:007:007
ern 006:10000:000:010
es 007:10100:000:012
est 008:00100:000:013
este 097:00100:001:102
estem 099:00100:004:104
esten 098:00100:002:103
ester 100:00100:005:105
estes 101:00100:007:106
et 009:00001:000:014
ete 042:00001:001:017
etem 044:00001:004:019
eten 043:00001:002:018
eter 045:00001:005:020
etere 062:00001:092:022
eterem 064:00001:094:024
eteren 063:00001:093:023
eterer 065:00001:095:025
eteres 066:00001:096:026
etes 046:00001:007:021
etste 082:00001:102:102
etstem 084:00001:104:104
etsten 083:00001:103:103
etster 085:00001:105:105
etstes 086:00001:106:106
n 010:11000:000:000
nd 011:00010:000:000
nde 047:00010:001:001
ndem 049:00010:004:004
nden 048:00010:002:002
nder 050:00010:005:005
ndere 067:00010:092:092
nderem 069:00010:094:094
nderen 068:00010:093:093
nderer 070:00010:095:095
nderes 071:00010:096:096
ndes 051:00010:007:007
ndste 087:00010:102:102
ndstem 089:00010:104:104
ndsten 088:00010:103:103
ndster 090:00010:105:105
ndstes 091:00010:106:106
s 012:10000:000:000
st 013:01000:000:014
ste 102:00100:001:017
stem 104:00100:004:019
sten 103:00100:002:018
ster 105:00100:005:020
stes 106:00100:007:021
t 014:01001:000:000
te 017:01001:001:001
tem 019:00001:004:004
ten 018:01001:002:002
ter 020:00001:005:005
tere 022:00001:092:092
terem 024:00001:094:094
teren 023:00001:093:093
terer 025:00001:095:095
teres 026:00001:096:096
tes 021:00001:007:007
test 015:01000:000:008
teste 027:00001:097:097
testem 029:00001:099:099
testen 028:00001:098:098
tester 030:00001:100:100
testes 031:00001:101:101
tet 016:01000:000:009
|