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
46 'bb' 'dd' 'ff' 'gg' 'mm' 'nn' 'pp' 'rr' 'tt'
47 // ignoring double c, h, j, k, q, v, w, and x
49 '' (atmark p1 test shortv <+ 'e')
62 [substring] R1 among (
71 'ational' 'ation' 'ator'
86 [substring] R1 among (
88 'icate' 'iciti' 'ical'
96 [substring] R2 among (
97 'al' 'ance' 'ence' 'er' 'ic' 'able' 'ible' 'ant' 'ement'
98 'ment' 'ent' 'ou' 'ism' 'ate' 'iti' 'ous' 'ive' 'ize'
100 'ion' ('s' or 't' delete)
106 R2 or (R1 not shortv)
120 do ( ['y'] <-'Y' set Y_found)
121 do repeat(goto (v ['y']) <-'Y' set Y_found)
126 gopast v gopast non-v setmark p1
127 gopast v gopast non-v setmark p2
141 do(Y_found repeat(goto (['Y']) <-'y'))