21 /* special characters (in ISO Latin I) */
23 stringdef a' hex 'E1' // a-acute
24 stringdef e' hex 'E9' // e-acute
25 stringdef i' hex 'ED' // i-acute
26 stringdef o' hex 'F3' // o-acute
27 stringdef u' hex 'FA' // u-acute
28 stringdef u" hex 'FC' // u-diaeresis
29 stringdef n~ hex 'F1' // n-tilde
31 define v 'aeiou{a'}{e'}{i'}{o'}{u'}{u"}'
33 define mark_regions as (
37 $p2 = limit // defaults
40 ( v (non-v gopast v) or (v gopast non-v) )
42 ( non-v (non-v gopast v) or (v next) )
46 gopast v gopast non-v setmark p1
47 gopast v gopast non-v setmark p2
51 define postlude as repeat (
58 // and possibly {u"}->u here, or in prelude
65 define RV as $pV <= cursor
66 define R1 as $p1 <= cursor
67 define R2 as $p2 <= cursor
69 define attached_pronoun as (
71 'me' 'se' 'sela' 'selo' 'selas' 'selos' 'la' 'le' 'lo'
72 'las' 'les' 'los' 'nos'
75 'i{e'}ndo' (] <- 'iendo')
76 '{a'}ndo' (] <- 'ando')
88 define standard_suffix as (
92 'ico' 'ica' 'icos' 'icas'
97 'oso' 'osa' 'osos' 'osas'
103 'adora' 'ador' 'aci{o'}n'
104 'adoras' 'adores' 'aciones'
105 'ante' 'antes' 'ancia' 'ancias'// Note 1
108 try ( ['ic'] R2 delete )
127 [substring] R2 delete among(
128 'iv' (['at'] R2 delete)
163 ['at'] R2 delete // but not a further ['ic'] R2 delete
169 define y_verb_suffix as (
170 setlimit tomark pV for ([substring]) among(
171 'ya' 'ye' 'yan' 'yen' 'yeron' 'yendo' 'yo' 'y{o'}'
172 'yas' 'yes' 'yais' 'yamos'
177 define verb_suffix as (
178 setlimit tomark pV for ([substring]) among(
180 'en' 'es' '{e'}is' 'emos'
181 (try ('u' test 'g') ] delete)
183 'ar{i'}an' 'ar{i'}as' 'ar{a'}n' 'ar{a'}s' 'ar{i'}ais'
184 'ar{i'}a' 'ar{e'}is' 'ar{i'}amos' 'aremos' 'ar{a'}'
186 'er{i'}an' 'er{i'}as' 'er{a'}n' 'er{a'}s' 'er{i'}ais'
187 'er{i'}a' 'er{e'}is' 'er{i'}amos' 'eremos' 'er{a'}'
189 'ir{i'}an' 'ir{i'}as' 'ir{a'}n' 'ir{a'}s' 'ir{i'}ais'
190 'ir{i'}a' 'ir{e'}is' 'ir{i'}amos' 'iremos' 'ir{a'}'
193 'aba' 'ada' 'ida' '{i'}a' 'ara' 'iera' 'ad' 'ed'
194 'id' 'ase' 'iese' 'aste' 'iste' 'an' 'aban' '{i'}an'
195 'aran' 'ieran' 'asen' 'iesen' 'aron' 'ieron' 'ado'
196 'ido' 'ando' 'iendo' 'i{o'}' 'ar' 'er' 'ir' 'as'
197 'abas' 'adas' 'idas' '{i'}as' 'aras' 'ieras' 'ases'
198 'ieses' '{i'}s' '{a'}is' 'abais' '{i'}ais' 'arais'
199 'ierais' 'aseis' 'ieseis' 'asteis' 'isteis' 'ados'
200 'idos' 'amos' '{a'}bamos' '{i'}amos' 'imos'
201 '{a'}ramos' 'i{e'}ramos' 'i{e'}semos' '{a'}semos'
206 define residual_suffix as (
209 'a' 'o' '{a'}' '{i'}' '{o'}'
212 ( RV delete try( ['u'] test 'g' RV delete ) )
221 do ( standard_suffix or
231 Note 1: additions of 15 Jun 2005