[ci] Fix clang-santisers job for GHA change
[xapian.git] / xapian-core / languages / irish.sbl
blob923a353cc032e00c492188ff0c11b9f9b2ecd04c
1 // Alias: ga
3 routines (
4   R1 R2 RV
5   initial_morph
6   mark_regions
7   noun_sfx
8   deriv
9   verb_sfx
12 externals ( stem )
14 integers ( pV p1 p2 )
16 groupings ( v )
18 stringescapes {}
20 /* Accented characters */
22 stringdef a'   '{U+00E1}'  // a-acute
23 stringdef e'   '{U+00E9}'  // e-acute
24 stringdef i'   '{U+00ED}'  // i-acute
25 stringdef o'   '{U+00F3}'  // o-acute
26 stringdef u'   '{U+00FA}'  // u-acute
28 define v 'aeiou{a'}{e'}{i'}{o'}{u'}'
30 define mark_regions as (
32     $pV = limit
33     $p1 = limit
34     $p2 = limit  // defaults
36     do (
37         gopast v setmark pV
38     )
39     do (
40         gopast v gopast non-v setmark p1
41         gopast v gopast non-v setmark p2
42     )
45 define initial_morph as (
46   [substring] among (
47     'h-' 'n-' 't-' //nAthair -> n-athair, but alone are problematic
48     (delete)
50     // verbs
51     'd{'}'
52     (delete)
53     'd{'}fh'
54     (<- 'f')
55     // other contractions
56     'm{'}' 'b{'}'
57     (delete)
59     'sh'
60     (<- 's')
62     'mb'
63     (<- 'b')
64     'gc'
65     (<- 'c')
66     'nd'
67     (<- 'd')
68     'bhf'
69     (<- 'f')
70     'ng'
71     (<- 'g')
72     'bp'
73     (<- 'p')
74     'ts'
75     (<- 's')
76     'dt'
77     (<- 't')
79     // Lenition
80     'bh'
81     (<- 'b')
82     'ch'
83     (<- 'c')
84     'dh'
85     (<- 'd')
86     'fh'
87     (<- 'f')
88     'gh'
89     (<- 'g')
90     'mh'
91     (<- 'm')
92     'ph'
93     (<- 'p')
94     'th'
95     (<- 't')
96   )
99 backwardmode (
101   define RV as $pV <= cursor
102   define R1 as $p1 <= cursor
103   define R2 as $p2 <= cursor
105   define noun_sfx as (
106     [substring] among (
107       'amh' 'eamh' 'abh' 'eabh'
108       'aibh' 'ibh' 'aimh' 'imh'
109       'a{i'}ocht' '{i'}ocht' 'a{i'}ochta' '{i'}ochta'
110       (R1 delete)
111       'ire' 'ir{i'}' 'aire' 'air{i'}'
112       (R2 delete)
113     )
114   )
115   define deriv as (
116     [substring] among (
117       'acht' 'eacht' 'ach' 'each' 'eacht{u'}il' 'eachta' 'acht{u'}il' 'achta'
118       (R2 delete)  //siopadóireacht -> siopadóir but not poblacht -> pobl
119       'arcacht' 'arcachta{i'}' 'arcachta'
120       (<- 'arc') // monarcacht -> monarc
121       'gineach' 'gineas' 'ginis'
122       (<- 'gin')
123       'grafa{i'}och' 'grafa{i'}ocht' 'grafa{i'}ochta' 'grafa{i'}ochta{i'}'
124       (<- 'graf')
125       'paite' 'patach' 'pataigh' 'patacha'
126       (<- 'paite')
127       '{o'}ideach' '{o'}ideacha' '{o'}idigh'
128       (<- '{o'}id')
129     )
130   )
131   define verb_sfx as (
132     [substring] among (
133       'imid' 'aimid' '{i'}mid' 'a{i'}mid'
134       'faidh' 'fidh'
135       (RV delete)
136       'ain'
137       'eadh' 'adh'
138       '{a'}il'
139       'tear' 'tar'
140       (R1 delete)
141     )
142   )
145 define stem as (
146   do initial_morph
147   do mark_regions
148   backwards (
149     do noun_sfx
150     do deriv
151     do verb_sfx
152   )