9 Step_1a Step_1b Step_1c Step_2 Step_3 Step_4 Step_5a Step_5b
17 define v_WXY v + 'wxY'
21 define shortv as ( non-v_WXY v non-v )
23 define R1 as $p1 <= cursor
24 define R2 as $p2 <= cursor
44 'bb' 'dd' 'ff' 'gg' 'mm' 'nn' 'pp' 'rr' 'tt'
45 // ignoring double c, h, j, k, q, v, w, and x
47 '' (atmark p1 test shortv <+ 'e')
60 [substring] R1 among (
69 'ational' 'ation' 'ator'
84 [substring] R1 among (
86 'icate' 'iciti' 'ical'
94 [substring] R2 among (
95 'al' 'ance' 'ence' 'er' 'ic' 'able' 'ible' 'ant' 'ement'
96 'ment' 'ent' 'ou' 'ism' 'ate' 'iti' 'ous' 'ive' 'ize'
98 'ion' ('s' or 't' delete)
104 R2 or (R1 not shortv)
118 do ( ['y'] <-'Y' set Y_found)
119 do repeat(goto (v ['y']) <-'Y' set Y_found)
124 gopast v gopast non-v setmark p1
125 gopast v gopast non-v setmark p2
139 do(Y_found repeat(goto (['Y']) <-'y'))