| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package Lingua::FI::Inflect; |
|
2
|
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
24537
|
use 5.008; |
|
|
1
|
|
|
|
|
4
|
|
|
|
1
|
|
|
|
|
41
|
|
|
4
|
1
|
|
|
1
|
|
5
|
use strict; |
|
|
1
|
|
|
|
|
1
|
|
|
|
1
|
|
|
|
|
31
|
|
|
5
|
1
|
|
|
1
|
|
4
|
use warnings; |
|
|
1
|
|
|
|
|
6
|
|
|
|
1
|
|
|
|
|
5655
|
|
|
6
|
|
|
|
|
|
|
require Exporter; |
|
7
|
|
|
|
|
|
|
|
|
8
|
|
|
|
|
|
|
our @ISA = qw(Exporter); |
|
9
|
|
|
|
|
|
|
our %EXPORT_TAGS = ( 'all' => [ qw(taivuta to_number %sijamuodot) ] ); |
|
10
|
|
|
|
|
|
|
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); |
|
11
|
|
|
|
|
|
|
our @EXPORT = qw( ); |
|
12
|
|
|
|
|
|
|
our $VERSION = '0.02'; |
|
13
|
|
|
|
|
|
|
|
|
14
|
|
|
|
|
|
|
our %sijamuodot=( |
|
15
|
|
|
|
|
|
|
monikko => 0, |
|
16
|
|
|
|
|
|
|
genetiivi => 1, |
|
17
|
|
|
|
|
|
|
inessiivi => 2, |
|
18
|
|
|
|
|
|
|
elatiivi => 3, |
|
19
|
|
|
|
|
|
|
adessiivi => 4, |
|
20
|
|
|
|
|
|
|
ablatiivi => 5, |
|
21
|
|
|
|
|
|
|
partitiivi => 6, |
|
22
|
|
|
|
|
|
|
essiivi => 7, |
|
23
|
|
|
|
|
|
|
illatiivi => 8, |
|
24
|
|
|
|
|
|
|
translatiivi=> 9, |
|
25
|
|
|
|
|
|
|
); |
|
26
|
|
|
|
|
|
|
|
|
27
|
|
|
|
|
|
|
# haluaa taivuttamattoman sanan |
|
28
|
|
|
|
|
|
|
# palauttaa taivutetun sanan |
|
29
|
|
|
|
|
|
|
sub taivuta{ |
|
30
|
0
|
|
|
0
|
0
|
|
my($sijamuoto_id,$sana)=@_; |
|
31
|
|
|
|
|
|
|
|
|
32
|
|
|
|
|
|
|
# järjestä ao. lista ensin pituuden mukaan, sitten aakkosjärjestykseen |
|
33
|
|
|
|
|
|
|
# konsonantit |
|
34
|
|
|
|
|
|
|
# viimeinen id=6 |
|
35
|
|
|
|
|
|
|
|
|
36
|
0
|
|
|
|
|
|
my $k ="bcdfghjklmnpqrstvwxz"; |
|
37
|
0
|
|
|
|
|
|
my $k2="smnl"; |
|
38
|
0
|
|
|
|
|
|
my $k5="k"; |
|
39
|
0
|
|
|
|
|
|
my $k4="lr"; |
|
40
|
0
|
|
|
|
|
|
my $k3="vh"; |
|
41
|
0
|
|
|
|
|
|
my $k6="h"; |
|
42
|
0
|
|
|
|
|
|
my $k7="kptq"; |
|
43
|
|
|
|
|
|
|
|
|
44
|
|
|
|
|
|
|
# järjestä ao. lista ensin pituuden mukaan, sitten aakkosjärjestykseen |
|
45
|
|
|
|
|
|
|
# vokaalit |
|
46
|
|
|
|
|
|
|
# viimeinen id=2 |
|
47
|
|
|
|
|
|
|
|
|
48
|
0
|
|
|
|
|
|
my $v ="aeiouy:;"; |
|
49
|
0
|
|
|
|
|
|
my $v2="i"; |
|
50
|
|
|
|
|
|
|
|
|
51
|
|
|
|
|
|
|
|
|
52
|
|
|
|
|
|
|
# muuta ä-kirjaimet kaksoispisteiksi ja ö-kirjaimet puolipisteiksi |
|
53
|
|
|
|
|
|
|
# hae käytetäänkö sanassa skandeja vai ei |
|
54
|
|
|
|
|
|
|
# $a == a tai ä |
|
55
|
|
|
|
|
|
|
# $o == o tai ö |
|
56
|
|
|
|
|
|
|
|
|
57
|
0
|
|
|
|
|
|
(local $_,my $a,my $o)=to_number($sana); |
|
58
|
|
|
|
|
|
|
|
|
59
|
|
|
|
|
|
|
|
|
60
|
|
|
|
|
|
|
# määritä sijamuodon sijapääte $p-muuttujaan |
|
61
|
|
|
|
|
|
|
# määritä $p1-muuttujaan sijapääte ilman skandeja |
|
62
|
|
|
|
|
|
|
# määritä $p2-muuttujaan sijapääte skandeilla varustettuna |
|
63
|
|
|
|
|
|
|
|
|
64
|
0
|
0
|
|
|
|
|
my($p)=( |
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
$sijamuoto_id == 0 ? "t" # monikko |
|
66
|
|
|
|
|
|
|
: $sijamuoto_id == 1 ? "n" # genetiivi |
|
67
|
|
|
|
|
|
|
: $sijamuoto_id == 2 ? "ss$a" # inessiivi |
|
68
|
|
|
|
|
|
|
: $sijamuoto_id == 3 ? "st$a" # elatiivi |
|
69
|
|
|
|
|
|
|
: $sijamuoto_id == 4 ? "ll$a" # adessiivi |
|
70
|
|
|
|
|
|
|
: $sijamuoto_id == 5 ? "lt$a" # ablatiivi |
|
71
|
|
|
|
|
|
|
: $sijamuoto_id == 6 ? "$a" # partitiivi |
|
72
|
|
|
|
|
|
|
: $sijamuoto_id == 7 ? "n$a" # essiivi |
|
73
|
|
|
|
|
|
|
: $sijamuoto_id == 8 ? "$a"."n" # illatiivi |
|
74
|
|
|
|
|
|
|
: $sijamuoto_id == 9 ? "ksi" # translatiivi |
|
75
|
|
|
|
|
|
|
: die "Wrong case"); |
|
76
|
0
|
|
|
|
|
|
(my $p1=$p) =~ tr/y:;/uao/; |
|
77
|
0
|
|
|
|
|
|
(my $p2=$p) =~ tr/aou/:;y/; |
|
78
|
|
|
|
|
|
|
|
|
79
|
|
|
|
|
|
|
|
|
80
|
|
|
|
|
|
|
# 1 = regex |
|
81
|
|
|
|
|
|
|
# 2 = käytettävän säännön id; viimeinen id = 111 |
|
82
|
|
|
|
|
|
|
# 3 = esimerkkisanan alku |
|
83
|
|
|
|
|
|
|
# 4 = esimerkkisanan loppu ; isolla kirjaimet, jotka ovat aina juuri nämä |
|
84
|
|
|
|
|
|
|
# 5 = esimerkkisanan lopun käännös ; isolla kirjaimet, jotka ovat aina juuri nämä |
|
85
|
|
|
|
|
|
|
# 6 = ryhmän id, johon regex kuuluu; viimeinen id = 10 |
|
86
|
|
|
|
|
|
|
# 7 = ryhmän järjestys; pienin ensin. Laita perään +, jos järjestys jaetaan jonkun muun kanssa |
|
87
|
|
|
|
|
|
|
# |
|
88
|
|
|
|
|
|
|
# 1 2 3 4 5 6 7 |
|
89
|
|
|
|
|
|
|
|
|
90
|
|
|
|
|
|
|
# illatiivi (kotiin) |
|
91
|
0
|
0
|
0
|
|
|
|
$sijamuoto_id == 8 && ( |
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
92
|
|
|
|
|
|
|
s/(.*[$v])([$v]) $ /$1$2h$2n !77 /x |
|
93
|
|
|
|
|
|
|
|
|
94
|
|
|
|
|
|
|
# poikkeukset |
|
95
|
|
|
|
|
|
|
|| s/^([th])(uu?l)i $ /$1$2een !92 /x |
|
96
|
|
|
|
|
|
|
|| s/^kivi $ /kiveen !93 /x # |
|
97
|
|
|
|
|
|
|
|
|
98
|
|
|
|
|
|
|
# monikko |
|
99
|
|
|
|
|
|
|
|| s/(.*)([$v])(\2)t $ /$1$2isiin !94 /x # lampaat lampaisiin |
|
100
|
|
|
|
|
|
|
|| s/(.*)([$k])([a:])t $ /$1$2$o\0ihin!95 /x # perunat perunoihin |
|
101
|
|
|
|
|
|
|
|
|
102
|
|
|
|
|
|
|
|| s/(.*)(s) $ /$1kseen !96 /x # sirkus kseen |
|
103
|
|
|
|
|
|
|
|| s/(.*)(e) $ /$1$2$2seen !78 /x # hame hameeseen |
|
104
|
|
|
|
|
|
|
|| s/(.*)(nk)(i) $ /$1$2een !79 /x # henki henkeen |
|
105
|
|
|
|
|
|
|
|| s/(.*)([$v]) $ /$1$2$2n !80 /x # kissa kissaan |
|
106
|
|
|
|
|
|
|
|| s/(.*)([$k]+) $ /$1$2iin !81 /x # kiss kissiin |
|
107
|
|
|
|
|
|
|
) |
|
108
|
|
|
|
|
|
|
|
|
109
|
|
|
|
|
|
|
# partitiivi |
|
110
|
|
|
|
|
|
|
|| $sijamuoto_id == 6 && ( |
|
111
|
|
|
|
|
|
|
s/(.*[$v])([$v]) $ /$1$2t$a !82 /x |
|
112
|
|
|
|
|
|
|
|
|
113
|
|
|
|
|
|
|
# poikkeukset |
|
114
|
|
|
|
|
|
|
|| s/^([th])(uu?l)i $ /$1$2ta !108/x # |
|
115
|
|
|
|
|
|
|
|| s/^kivi $ /kive$a !98 /x # |
|
116
|
|
|
|
|
|
|
|
|
117
|
|
|
|
|
|
|
# monikko |
|
118
|
|
|
|
|
|
|
|| s/(.*)([$v])(\2)t $ /$1$2it$a !99 /x # lampaat lampaita |
|
119
|
|
|
|
|
|
|
|| s/(.*)([$v])([$k])([a:])t $ /$1$2$3$o\0it$a!100/x # perunat perunoita |
|
120
|
|
|
|
|
|
|
|| s/(.*)([$k])([a:])t $ /$1$2$o\0j$a ! /x # aika aikoja |
|
121
|
|
|
|
|
|
|
|| s/(.*)([$k])([$v])t $ /$1$2$3j$a ! /x # jauhot jauhoja |
|
122
|
|
|
|
|
|
|
|
|
123
|
|
|
|
|
|
|
|| s/(.*)(s) $ /$1$2ta !109/x # sirkus ta |
|
124
|
|
|
|
|
|
|
|| s/(.*)(e) $ /$1$2tt$a !83 /x # hame hametta |
|
125
|
|
|
|
|
|
|
|| s/(.*)(nk)(i) $ /$1$2e$a !84 /x # henki henkeä |
|
126
|
|
|
|
|
|
|
|| s/(.*)([$v]) $ /$1$2$a !85 /x # kissa kissaa |
|
127
|
|
|
|
|
|
|
|| s/(.*)([$k]+) $ /$1$2i$a !86 /x # kiss kissiä |
|
128
|
|
|
|
|
|
|
) |
|
129
|
|
|
|
|
|
|
|
|
130
|
|
|
|
|
|
|
# essiivi |
|
131
|
|
|
|
|
|
|
|| $sijamuoto_id == 7 && ( |
|
132
|
|
|
|
|
|
|
s/(.*[$v])([$v]) $ /$1$2n$a !87 /x |
|
133
|
|
|
|
|
|
|
|
|
134
|
|
|
|
|
|
|
# poikkeukset |
|
135
|
|
|
|
|
|
|
|| s/^([th])(uu?l)i $ /$1$2ena !110/x |
|
136
|
|
|
|
|
|
|
|| s/^kivi $ /kiven$a !102/x # |
|
137
|
|
|
|
|
|
|
|
|
138
|
|
|
|
|
|
|
# monikko |
|
139
|
|
|
|
|
|
|
|| s/(.*)([$v])(\2)t $ /$1$2in$a !103/x # lampaat lampaina |
|
140
|
|
|
|
|
|
|
|| s/(.*)([$k])([a:])t $ /$1$2$o\0in$a!104/x # perunat perunoina |
|
141
|
|
|
|
|
|
|
|
|
142
|
|
|
|
|
|
|
|| s/(.*)(s) $ /$1ksena !111/x # sirkus ksena |
|
143
|
|
|
|
|
|
|
|| s/(.*)(e) $ /$1$2$2n$a !88 /x # hame hameena |
|
144
|
|
|
|
|
|
|
|| s/(.*)(nk)i $ /$1$2en$a !89 /x # henki henkenä |
|
145
|
|
|
|
|
|
|
|| s/(.*)([$v]) $ /$1$2n$a !90 /x # kissa kissana |
|
146
|
|
|
|
|
|
|
|| s/(.*)([$k]+) $ /$1$2in$a !91 /x # kiss kissinä |
|
147
|
|
|
|
|
|
|
) |
|
148
|
|
|
|
|
|
|
|
|
149
|
|
|
|
|
|
|
# lainasanat, jotka päättyvät vokaaliin |
|
150
|
|
|
|
|
|
|
|| s/( |
|
151
|
|
|
|
|
|
|
andante |
|
152
|
|
|
|
|
|
|
|anime |
|
153
|
|
|
|
|
|
|
|apache |
|
154
|
|
|
|
|
|
|
|appassionato |
|
155
|
|
|
|
|
|
|
|beta |
|
156
|
|
|
|
|
|
|
|beeta |
|
157
|
|
|
|
|
|
|
|blanko |
|
158
|
|
|
|
|
|
|
|byte |
|
159
|
|
|
|
|
|
|
|delta |
|
160
|
|
|
|
|
|
|
|data |
|
161
|
|
|
|
|
|
|
|desi |
|
162
|
|
|
|
|
|
|
|curry |
|
163
|
|
|
|
|
|
|
|copy |
|
164
|
|
|
|
|
|
|
|collie |
|
165
|
|
|
|
|
|
|
|college |
|
166
|
|
|
|
|
|
|
|chippendale |
|
167
|
|
|
|
|
|
|
|city |
|
168
|
|
|
|
|
|
|
|bluffi |
|
169
|
|
|
|
|
|
|
|beige |
|
170
|
|
|
|
|
|
|
|bridge |
|
171
|
|
|
|
|
|
|
|boutique |
|
172
|
|
|
|
|
|
|
|cache |
|
173
|
|
|
|
|
|
|
|case |
|
174
|
|
|
|
|
|
|
|deadline |
|
175
|
|
|
|
|
|
|
|freestyle |
|
176
|
|
|
|
|
|
|
|foto |
|
177
|
|
|
|
|
|
|
|fleece |
|
178
|
|
|
|
|
|
|
|empire |
|
179
|
|
|
|
|
|
|
|epo |
|
180
|
|
|
|
|
|
|
|esperanto |
|
181
|
|
|
|
|
|
|
|extreme |
|
182
|
|
|
|
|
|
|
|fluori |
|
183
|
|
|
|
|
|
|
|expo |
|
184
|
|
|
|
|
|
|
|folklore |
|
185
|
|
|
|
|
|
|
|ellipsi |
|
186
|
|
|
|
|
|
|
|ensemble |
|
187
|
|
|
|
|
|
|
|forte |
|
188
|
|
|
|
|
|
|
) $ /$1$p !59 /x |
|
189
|
|
|
|
|
|
|
|
|
190
|
|
|
|
|
|
|
# lainasanat, jotka päättyvät konsonanttiin |
|
191
|
|
|
|
|
|
|
|
|
192
|
|
|
|
|
|
|
|| s/( |
|
193
|
|
|
|
|
|
|
blues |
|
194
|
|
|
|
|
|
|
|charleston |
|
195
|
|
|
|
|
|
|
|evergreen |
|
196
|
|
|
|
|
|
|
|automarket |
|
197
|
|
|
|
|
|
|
|bouquet |
|
198
|
|
|
|
|
|
|
|bullshit |
|
199
|
|
|
|
|
|
|
|burnout |
|
200
|
|
|
|
|
|
|
|chat |
|
201
|
|
|
|
|
|
|
|debet |
|
202
|
|
|
|
|
|
|
|et |
|
203
|
|
|
|
|
|
|
|exit |
|
204
|
|
|
|
|
|
|
|fahrenheit |
|
205
|
|
|
|
|
|
|
|kermit |
|
206
|
|
|
|
|
|
|
) $ /$1i$p !60 /x |
|
207
|
|
|
|
|
|
|
|
|
208
|
|
|
|
|
|
|
# monikko |
|
209
|
|
|
|
|
|
|
|| /t$/ && ( |
|
210
|
|
|
|
|
|
|
s/([a:])t $ /$o\0i$p !105/x # kal AT oi 10 2 |
|
211
|
|
|
|
|
|
|
|| s/([$v])t $ /$1$p !106/x # pul u u |
|
212
|
|
|
|
|
|
|
|| s/(.) $ /$1i$p !107/x # marke T tIT |
|
213
|
|
|
|
|
|
|
) |
|
214
|
|
|
|
|
|
|
|
|
215
|
|
|
|
|
|
|
# numerot 8-10 |
|
216
|
|
|
|
|
|
|
|
|
217
|
|
|
|
|
|
|
|| s/( |
|
218
|
|
|
|
|
|
|
seitsem: |
|
219
|
|
|
|
|
|
|
|ykdeks: |
|
220
|
|
|
|
|
|
|
|kahdeksa |
|
221
|
|
|
|
|
|
|
|kymmene |
|
222
|
|
|
|
|
|
|
)n $ /$1$p !73 /x # 10 1 |
|
223
|
|
|
|
|
|
|
|
|
224
|
|
|
|
|
|
|
# säännöt, jotka toimivat myös nimille |
|
225
|
|
|
|
|
|
|
|
|
226
|
|
|
|
|
|
|
|| s/nen $ /se$p !22 /x # kisu NEN SEN 10 2 |
|
227
|
|
|
|
|
|
|
|
|
228
|
|
|
|
|
|
|
# nimet |
|
229
|
|
|
|
|
|
|
|| s/^([A-Z45].*)([$k7])\2([$v])$ /$1$2$3$p !67 /x # Ja tta ta 9 0 |
|
230
|
|
|
|
|
|
|
|| s/^([A-Z45].*[$v]) $ /$1$p !61 /x # Vil e e 9 1 |
|
231
|
|
|
|
|
|
|
|| s/^([A-Z45].*) $ /$1i$p !62 /x # Ki m mI 9 2 |
|
232
|
|
|
|
|
|
|
|
|
233
|
|
|
|
|
|
|
# pronominit |
|
234
|
|
|
|
|
|
|
|
|
235
|
|
|
|
|
|
|
|| $sijamuoto_id == 0 && ( |
|
236
|
|
|
|
|
|
|
s/^min: $ /me !63 /x |
|
237
|
|
|
|
|
|
|
|| s/^sin: $ /te !63 /x |
|
238
|
|
|
|
|
|
|
|| s/^h:n $ /he !63 /x |
|
239
|
|
|
|
|
|
|
|| s/^t:m: $ /n:m: !63 /x |
|
240
|
|
|
|
|
|
|
|| s/^tuo $ /nuo !63 /x |
|
241
|
|
|
|
|
|
|
|| s/^se $ /ne !63 /x |
|
242
|
|
|
|
|
|
|
) |
|
243
|
|
|
|
|
|
|
|
|
244
|
|
|
|
|
|
|
|| ( |
|
245
|
|
|
|
|
|
|
s/^min: $ /minu$p1 !63 /x |
|
246
|
|
|
|
|
|
|
|| s/^sin: $ /sinu$p1 !63 /x |
|
247
|
|
|
|
|
|
|
|| s/^h:n $ /h:ne$p2 !63 /x |
|
248
|
|
|
|
|
|
|
|| s/^me $ /meid:$p2 !63 /x |
|
249
|
|
|
|
|
|
|
|| s/^te $ /teid:$p2 !63 /x |
|
250
|
|
|
|
|
|
|
|| s/^he $ /heid:$p2 !63 /x |
|
251
|
|
|
|
|
|
|
|| s/^n:m: $ /n:ide$p2 !63 /x |
|
252
|
|
|
|
|
|
|
|| s/^nuo $ /noide$p1 !63 /x |
|
253
|
|
|
|
|
|
|
|| s/^ne $ /niide$p2 !63 /x |
|
254
|
|
|
|
|
|
|
|| s/^t:m: $ /t:m:$p2 !63 /x |
|
255
|
|
|
|
|
|
|
|| s/^tuo $ /tuo$p1 !63 /x |
|
256
|
|
|
|
|
|
|
|| s/^se $ /se$p2 !63 /x |
|
257
|
|
|
|
|
|
|
) |
|
258
|
|
|
|
|
|
|
|
|
259
|
|
|
|
|
|
|
# yksittäiset sanat, joita ei voi laittaa yhdyssanaan |
|
260
|
|
|
|
|
|
|
|
|
261
|
|
|
|
|
|
|
|| s/^aika $ /aja$p !64 /x # vrt. taika -> taia |
|
262
|
|
|
|
|
|
|
|| s/^([th])(uu?l)i $ /$1$2e$p !64 /x # vrt. kuli -> kulin |
|
263
|
|
|
|
|
|
|
|
|
264
|
|
|
|
|
|
|
# yksittäiset sanat, mahdolliset myös yhdyssanoissa |
|
265
|
|
|
|
|
|
|
|
|
266
|
|
|
|
|
|
|
|| s/poika $ /poja$p !66 /x # reliikki |
|
267
|
|
|
|
|
|
|
|| s/mies $ /miehe$p !66 /x # vrt. hies -> hiekse |
|
268
|
|
|
|
|
|
|
|| s/yhteys $ /yhteyde$p !66 /x # vrt. risteys -> risteykse |
|
269
|
|
|
|
|
|
|
|| s/haku $ /hau$p !66 /x # vrt. laku -> laku |
|
270
|
|
|
|
|
|
|
|| s/laki $ /lai$p !66 /x # vrt. khaki -> khaki |
|
271
|
|
|
|
|
|
|
|| s/tuoli $ /tuoli$p !66 /x # vrt. huoli -> huole |
|
272
|
|
|
|
|
|
|
|| s/henki $ /henge$p !66 /x # vrt. renki -> rengi |
|
273
|
|
|
|
|
|
|
|| s/puomi $ /puomi$p !66 /x # vrt. luomi -> luome |
|
274
|
|
|
|
|
|
|
|| s/(th])uli $ /$1uule$p !66 /x # vrt. muuli -> muuli |
|
275
|
|
|
|
|
|
|
|| s/nauris $ /naurii$p !66 /x |
|
276
|
|
|
|
|
|
|
|| s/veli $ /velje$p !66 /x # vrt. peli -> peli |
|
277
|
|
|
|
|
|
|
|| s/ruis $ /rukii$p !66 /x |
|
278
|
|
|
|
|
|
|
|| s/ananas $ /ananakse$p !66 /x |
|
279
|
|
|
|
|
|
|
|| s/business $ /businekse$p !66 /x |
|
280
|
|
|
|
|
|
|
|| s/kirves $ /kirvee$p !66 /x |
|
281
|
|
|
|
|
|
|
|
|
282
|
|
|
|
|
|
|
# numerot 1-6 |
|
283
|
|
|
|
|
|
|
|
|
284
|
|
|
|
|
|
|
|| s/(y|ka)ksi $ /$1hde$p !1 /x |
|
285
|
|
|
|
|
|
|
|| s/(kolme|nelj:) $ /$1$p !1 /x |
|
286
|
|
|
|
|
|
|
|| s/^(vii)si $ /$1de$p !1 /x # numero - kuitenkin aviisi -> aviisi |
|
287
|
|
|
|
|
|
|
|| s/(kuu)si $ /$1de$p !1 /x |
|
288
|
|
|
|
|
|
|
|
|
289
|
|
|
|
|
|
|
# numerot 11-19 |
|
290
|
|
|
|
|
|
|
|
|
291
|
0
|
|
|
|
|
|
|| s/(.+)(toista) $ /(taivuta($sijamuoto_id,$1))[0].$2.'!74' /ex |
|
292
|
|
|
|
|
|
|
|
|
293
|
|
|
|
|
|
|
# järjestysluvut 1-10 |
|
294
|
|
|
|
|
|
|
|
|
295
|
|
|
|
|
|
|
|| s/( |
|
296
|
|
|
|
|
|
|
yhde |
|
297
|
|
|
|
|
|
|
|kahde |
|
298
|
|
|
|
|
|
|
|kolma |
|
299
|
|
|
|
|
|
|
|nelj: |
|
300
|
|
|
|
|
|
|
|viide |
|
301
|
|
|
|
|
|
|
|kuude |
|
302
|
|
|
|
|
|
|
|seitsem: |
|
303
|
|
|
|
|
|
|
|kahdeksa |
|
304
|
|
|
|
|
|
|
|yhdeks: |
|
305
|
|
|
|
|
|
|
|kymmene |
|
306
|
|
|
|
|
|
|
)s $ /$1nne$p !75 /x |
|
307
|
|
|
|
|
|
|
|
|
308
|
|
|
|
|
|
|
|
|
309
|
|
|
|
|
|
|
|
|
310
|
|
|
|
|
|
|
# varmat säännöt, joissa etsimisosan säännöt ovat ilman muuttujia (esim. $1) |
|
311
|
|
|
|
|
|
|
|| s/^([vm])(er)i $ /$1$2e$p !33 /x # vERI > verE |
|
312
|
|
|
|
|
|
|
|| s/(n)si $ /$1$1e$p !38 /x # ka NSI > nnE |
|
313
|
|
|
|
|
|
|
|| s/(m)pi $ /$1$1e$p !11 /x # la MPI > mmE |
|
314
|
|
|
|
|
|
|
|| s/(iel)i $ /$1e$p !19 /x # k IELI > elE |
|
315
|
|
|
|
|
|
|
|| s/([yu]psi) $ /$1$p !55 /x # r yPSI > ypsi 8 1 |
|
316
|
|
|
|
|
|
|
|| s/(p)(s)i $ /$1$2e$p !32 /x # la PSI > psE 8 2 |
|
317
|
|
|
|
|
|
|
|| s/d([a:])s $ /t$1$1$p !24 /x # hi DAS > TAA |
|
318
|
|
|
|
|
|
|
|| s/([st])(([ou]u)|([;y]y))s$ /$1$2de$p !44 /x # out oUS > ouDE |
|
319
|
|
|
|
|
|
|
|| s/([$v])\1 $ /$1$1$p !58 /x # atelj ee > ee |
|
320
|
|
|
|
|
|
|
|
|
321
|
|
|
|
|
|
|
# sekalaiset säännöt |
|
322
|
|
|
|
|
|
|
|
|
323
|
|
|
|
|
|
|
|| s/(m)\1([a:])s $ /$1p$2$2$p !41 /x # ha MmAS > hamPaa 3 -2 |
|
324
|
|
|
|
|
|
|
|| s/(n)\1([a:])s $ /$1$1$2kse$p !42 /x # ka NnAS > nnaKSE 3 0 |
|
325
|
|
|
|
|
|
|
|| s/([$k])\1([a:])s $ /$1t$2$2$p !36 /x # ma llAS > malTaa 3 -1 |
|
326
|
|
|
|
|
|
|
|| s/([$k])d([a:])s $ /$1t$2$2$p !40 /x # a hDAS > ahTaa 3 -0.5 |
|
327
|
|
|
|
|
|
|
|| s/(n)\1e $ /$1tee$p !12 /x # la NnE > nTEE 3 1+ |
|
328
|
|
|
|
|
|
|
|| s/(m)\1e $ /$1$1ee$p !13 /x # a MmE > mmEE 3 1+ |
|
329
|
|
|
|
|
|
|
|| s/([$k2])\1([$v]) $ /$1$1$2$p !29 /x # ki ssa > ssa 3 2 |
|
330
|
|
|
|
|
|
|
|| s/([$k7])\1([$v]) $ /$1$2$p !02 /x # ta tti > ti |
|
331
|
|
|
|
|
|
|
|| s/(r)si $ /$1$1e$p !43 /x # vi RSI > rrE |
|
332
|
|
|
|
|
|
|
|| s/(sv|rm|sm)(i) $ /$1$2$p !68 /x # ka RmI > rmI |
|
333
|
|
|
|
|
|
|
|| s/([$k])([$k3])$v2 $ /$1$2e$p ! 3 /x # hi rvi > rvE |
|
334
|
|
|
|
|
|
|
|| s/([$v])\1s $ /$1$1de$p ! 4 /x # tilais uus > uuDE 1 1 |
|
335
|
|
|
|
|
|
|
|| s/([$v])([$v])s $ /$1$2kse$p ! 5 /x # lauk auS > auKSE 1 2 |
|
336
|
|
|
|
|
|
|
|| s/([$v])([$v])k([a:]) $ /$1$2$3$p ! 9 /x # s iiKA > iiA |
|
337
|
|
|
|
|
|
|
|| s/([$v])p([$v]) $ /$1v$2$p !16 /x # n aPa > aVa |
|
338
|
|
|
|
|
|
|
|| s/([$v])([$k])([a:])s $ /$1$2$2$3$3$p!25 /x # hi DAS > TAA 4 0 |
|
339
|
|
|
|
|
|
|
|| s/([$k])([$k])([a:])s $ /$1$2$3$3$p !37 /x # ka rvAS > karvaa 3 0 |
|
340
|
|
|
|
|
|
|
|| s/([$v])s $ /$1kse$p !23 /x # tik aS > aKSE 4 1 |
|
341
|
|
|
|
|
|
|
|| s/(tt)([$v])n $ /$1$2i$p !28 /x # 4 3 |
|
342
|
|
|
|
|
|
|
|| s/(t)(i)n $ /$1$1$2me$p !45 /x # lii TIN > ttiME 4 4+ |
|
343
|
|
|
|
|
|
|
|| s/(t)([o;])n $ /$1$1$2m$a$p !26 /x # ehdo TON > ttoMA 4 4+ |
|
344
|
|
|
|
|
|
|
|| s/(l)(i)n $ /$1$2me$p !30 /x # puhe LIN > liME 4 4+ |
|
345
|
|
|
|
|
|
|
|| s/(e)(n) $ /$1$2e$p !49 /x # ahv EN > enE 4 5 |
|
346
|
|
|
|
|
|
|
|| s/([$v])([$k]) $ /$1$2i$p !17 /x # kerm it > itI 4 6 |
|
347
|
|
|
|
|
|
|
|| s/([$v])(\1si) $ /$1$2$p !52 /x # m uuSI > uusi 6 1 |
|
348
|
|
|
|
|
|
|
|| s/([$v])si $ /$1de$p ! 6 /x # ka uSI > uDE 6 2 |
|
349
|
|
|
|
|
|
|
|| s/([$v])(t)(e) $ /$1$2$2$3$3$p!20 /x # ka TE > ttee 2 -2 |
|
350
|
|
|
|
|
|
|
|| s/d(e) $ /t$1$1$p !21 /x # kai DE > Tee 2 -1 |
|
351
|
|
|
|
|
|
|
|| s/(sk)(e) $ /$1$2$2$p !50 /x # rui SKE > skee 2 -0.5 |
|
352
|
|
|
|
|
|
|
|| s/(k)(e) $ /$1$1$2$2$p !46 /x # pil KE > kkee 2 -0.5 |
|
353
|
|
|
|
|
|
|
|| s/(e) $ /$1$1$p !18 /x # ven E > ee 2 0 |
|
354
|
|
|
|
|
|
|
|| s/(te[$k6])ti $ /$1di$p !56 /x # arkki TEhTI > tehDI 2 1.1 |
|
355
|
|
|
|
|
|
|
|| s/(e[$k6])ti $ /$1de$p !57 /x # le hTI > hDE 2 1.2 |
|
356
|
|
|
|
|
|
|
|| s/([$k6])t([$v]) $ /$1d$2$p !27 /x # jo hTo > hDo 2 1 |
|
357
|
|
|
|
|
|
|
|| s/([$v])t([$v]) $ /$1d$2$p !10 /x # ha uTa > uDa 2 2 |
|
358
|
|
|
|
|
|
|
|| s/([$k])(i)(v)i $ /$1$2$3e$p !14 /x # k ivI > ivE 2 3 |
|
359
|
|
|
|
|
|
|
|| s/([$k])([o;])([$k])i $ /$1$2$3i$p !51 /x # aero sOlI > olI 5 1 |
|
360
|
|
|
|
|
|
|
|| s/([o;]ni) $ /$1$p !54 /x # p ONI > oni 5 3 |
|
361
|
|
|
|
|
|
|
|| s/([o;])\1([$k])i $ /$1$1$2i$p !69 /x # b OolI > ooli 5 4 |
|
362
|
|
|
|
|
|
|
|| s/([o;])([$k])i $ /$1$2e$p !31 /x # hu OlI > olE 5 5 |
|
363
|
|
|
|
|
|
|
|| s/([$k4])t([a:]) $ /$1$1$2$p ! 7 /x # si lTA > llA |
|
364
|
|
|
|
|
|
|
|| s/(n)k([$v]) $ /$1g$2$p !28 /x # la NKo > ngo |
|
365
|
|
|
|
|
|
|
|| s/(n)t([$v]) $ /$1$1$2$p !15 /x # ka NTo > nno |
|
366
|
|
|
|
|
|
|
|| s/((au)|(:y))ki $ /$1e$p !47 /x # h AUKI > auE |
|
367
|
|
|
|
|
|
|
|| s/([o;]im|ie[$k])i $ /$1e$p !48 /x # t OIMI > oimE |
|
368
|
|
|
|
|
|
|
|| s/(l)t([$v]) $ /$1$1$2$p !70 /x # pe LTi > lli |
|
369
|
|
|
|
|
|
|
|| s/(l)k([i]) $ /$1je$p !72 /x # ky LKI > lJE |
|
370
|
|
|
|
|
|
|
|| s/(l)k([a:]) $ /$1$2$p !71 /x # su LKa > a |
|
371
|
|
|
|
|
|
|
|
|
372
|
|
|
|
|
|
|
# perussäännöt |
|
373
|
|
|
|
|
|
|
|| s/([$v]) $/$1$p ! 8 /x # kirj a > a 7 1 |
|
374
|
|
|
|
|
|
|
|| s/(.*) $/$1i$p !53 /x # aid S > sI 7 2 |
|
375
|
|
|
|
|
|
|
; |
|
376
|
|
|
|
|
|
|
|
|
377
|
0
|
|
|
|
|
|
tr/:;/\ä\ö/; |
|
378
|
|
|
|
|
|
|
|
|
379
|
0
|
|
|
|
|
|
m/^(.*?) *!(.*)/; |
|
380
|
0
|
|
|
|
|
|
return $1,$2; |
|
381
|
|
|
|
|
|
|
} |
|
382
|
|
|
|
|
|
|
|
|
383
|
|
|
|
|
|
|
# change scandinavic letters 'ä' to ':' and 'ö' to ';' in the given word |
|
384
|
|
|
|
|
|
|
# return changed word,a-skand,o-scand |
|
385
|
|
|
|
|
|
|
# a-skand == 'a' if scands are not used and ':' if they are |
|
386
|
|
|
|
|
|
|
# o-skand == 'o' if scands are not used and ';' if they are |
|
387
|
|
|
|
|
|
|
sub to_number{ |
|
388
|
0
|
|
|
0
|
0
|
|
my($temp)=@_; |
|
389
|
0
|
|
|
|
|
|
my($muisti,$apu,$scand)=undef; |
|
390
|
0
|
|
|
|
|
|
$scand=1; |
|
391
|
0
|
|
|
|
|
|
foreach my $kirjain(split //,$temp){ |
|
392
|
0
|
|
|
|
|
|
my $ascii=ord($kirjain); |
|
393
|
0
|
0
|
|
|
|
|
if($ascii == 195){ |
|
394
|
0
|
|
|
|
|
|
$muisti=1; |
|
395
|
|
|
|
|
|
|
}else{ |
|
396
|
0
|
0
|
0
|
|
|
|
if($ascii == 164 && $muisti){ |
|
|
|
0
|
0
|
|
|
|
|
|
397
|
0
|
|
|
|
|
|
$kirjain=":"; |
|
398
|
|
|
|
|
|
|
}elsif($ascii == 182 && $muisti){ |
|
399
|
0
|
|
|
|
|
|
$kirjain=";"; |
|
400
|
|
|
|
|
|
|
} |
|
401
|
0
|
|
|
|
|
|
$muisti=0; |
|
402
|
0
|
|
|
|
|
|
$apu.=$kirjain; |
|
403
|
|
|
|
|
|
|
} |
|
404
|
0
|
0
|
|
|
|
|
$scand=1 if $kirjain =~ /[y:;]/; |
|
405
|
0
|
0
|
|
|
|
|
$scand=0 if $kirjain =~ /[aou]/; |
|
406
|
|
|
|
|
|
|
} |
|
407
|
0
|
0
|
|
|
|
|
return $apu,$scand ? ":" : "a",$scand ? ";" : "o"; |
|
|
|
0
|
|
|
|
|
|
|
408
|
|
|
|
|
|
|
} |
|
409
|
|
|
|
|
|
|
|
|
410
|
|
|
|
|
|
|
1; |
|
411
|
|
|
|
|
|
|
|
|
412
|
|
|
|
|
|
|
__END__ |