suftab.c 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. /*
  2. * This file is part of the UCB release of Plan 9. It is subject to the license
  3. * terms in the LICENSE file found in the top-level directory of this
  4. * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
  5. * part of the UCB release of Plan 9, including this file, may be copied,
  6. * modified, propagated, or distributed except according to the terms contained
  7. * in the LICENSE file.
  8. */
  9. /*
  10. * Suffix table
  11. */
  12. typedef unsigned char Uchar;
  13. static Uchar sufa[] = {
  14. 02,0200+'t', /* -TA */
  15. 02,0200+'s', /* -SA */
  16. 03,0200+'t','r', /* -TRA */
  17. 03,0200+'d','r', /* -DRA */
  18. 03,0200+'b','r', /* -BRA */
  19. 02,0200+'p', /* -PA */
  20. 02,0200+'n', /* -NA */
  21. 02,0200+'m', /* -MA */
  22. 03,0200+'p','l', /* -PLA */
  23. 02,0200+'l', /* -LA */
  24. 02,0200+'k', /* -KA */
  25. 03,0200+'t','h', /* -THA */
  26. 03,0200+'s','h', /* -SHA */
  27. 02,0200+'g', /* -GA */
  28. 02,0200+'d', /* -DA */
  29. 02,0200+'c', /* -CA */
  30. 02,0200+'b', /* -BA */
  31. 00
  32. };
  33. static Uchar sufc[] = {
  34. 04,'e','t',0200+'i', /* ET-IC */
  35. 07,'a','l',0200+'i','s',0200+'t','i', /* AL-IS-TIC */
  36. 04,'s',0200+'t','i', /* S-TIC */
  37. 04,'p',0200+'t','i', /* P-TIC */
  38. 05,0200+'l','y','t',0200+'i', /* -LYT-IC */
  39. 04,'o','t',0200+'i', /* OT-IC */
  40. 05,'a','n',0200+'t','i', /* AN-TIC */
  41. 04,'n',0200+'t','i', /* N-TIC */
  42. 04,'c',0200+'t','i', /* C-TIC */
  43. 04,'a','t',0200+'i', /* AT-IC */
  44. 04,'h',0200+'n','i', /* H-NIC */
  45. 03,'n',0200+'i', /* N-IC */
  46. 03,'m',0200+'i', /* M-IC */
  47. 04,'l',0200+'l','i', /* L-LIC */
  48. 04,'b',0200+'l','i', /* B-LIC */
  49. 04,0200+'c','l','i', /* -CLIC */
  50. 03,'l',0200+'i', /* L-IC */
  51. 03,'h',0200+'i', /* H-IC */
  52. 03,'f',0200+'i', /* F-IC */
  53. 03,'d',0200+'i', /* D-IC */
  54. 03,0200+'b','i', /* -BIC */
  55. 03,'a',0200+'i', /* A-IC */
  56. 03,0200+'m','a', /* -MAC */
  57. 03,'i',0200+'a', /* I-AC */
  58. 00
  59. };
  60. static Uchar sufd[] = {
  61. 04,0200+'w','o','r', /* -WORD */
  62. 04,0200+'l','o','r', /* -LORD */
  63. 04,0200+'f','o','r', /* -FORD */
  64. 04,0200+'y','a','r', /* -YARD */
  65. 04,0200+'w','a','r', /* -WARD */
  66. 05,0200+'g','u','a','r', /* -GUARD */
  67. 04,0200+'t','a','r', /* -TARD */
  68. 05,0200+'b','o','a','r', /* -BOARD */
  69. 04,0200+'n','a','r', /* -NARD */
  70. 05,0200+'l','i','a','r', /* -LIARD */
  71. 04,0200+'i','a','r', /* -IARD */
  72. 04,0200+'g','a','r', /* -GARD */
  73. 04,0200+'b','a','r', /* -BARD */
  74. 03,0200+'r','o', /* -ROD */
  75. 04,0200+'w','o','o', /* -WOOD */
  76. 04,0200+'h','o','o', /* -HOOD */
  77. 04,0200+'m','o','n', /* -MOND */
  78. 04,0200+'t','e','n', /* -TEND */
  79. 05,0200+'s','t','a','n', /* -STAND */
  80. 04,0200+'l','a','n', /* -LAND */
  81. 04,0200+'h','a','n', /* -HAND */
  82. 04,0200+'h','o','l', /* -HOLD */
  83. 04,0200+'f','o','l', /* -FOLD */
  84. 05,0200+'f','i','e','l', /* -FIELD */
  85. 03,0200+'v','i', /* -VID */
  86. 03,0200+'c','i', /* -CID */
  87. 04,0200+'s','a','i', /* -SAID */
  88. 04,0200+'m','a','i', /* -MAID */
  89. 04,'t',0200+'t','e', /* T-TED */
  90. 03,'t',0200+'e', /* T-ED */
  91. 04,0200+'d','r','e', /* -DRED */
  92. 04,0200+'c','r','e', /* -CRED */
  93. 04,0200+'b','r','e', /* -BRED */
  94. 05,'v',0200+'e','l','e', /* V-ELED */
  95. 0100+04,'a','l',0200+'e', /* AL/ED */
  96. 0140+03,0200+'e','e', /* /EED */
  97. 040+05,'e','d',0200+'d','e', /* ED-DED */
  98. 04,'d',0200+'d','e', /* D-DED */
  99. 040+04,'e','d',0200+'e', /* ED-ED */
  100. 03,'d',0200+'e', /* D-ED */
  101. 05,0200+'d','u','c','e', /* -DUCED */
  102. 0300+02,'e', /* E/D */
  103. 05,0200+'s','t','e','a', /* -STEAD */
  104. 05,0200+'a','h','e','a', /* -AHEAD */
  105. 04,0200+'h','e','a', /* -HEAD */
  106. 00
  107. };
  108. static Uchar sufe[] = {
  109. 05,'a','r',0200+'i','z', /* AR-IZE */
  110. 05,'a','n',0200+'i','z', /* AN-IZE */
  111. 05,'a','l',0200+'i','z', /* AL-IZE */
  112. 06,0200+'a','r','d',0200+'i','z', /* -ARD-IZE */
  113. 05,0200+'s','e','l','v', /* -SELVE */
  114. 05,0200+'k','n','i','v', /* -KNIVE */
  115. 05,0200+'l','i','e','v', /* -LIEVE */
  116. 0100+03,0200+'q','u', /* /QUE */
  117. 07,'o','n',0200+'t','i','n',0200+'u', /* ON-TIN-UE */
  118. 03,0200+'n','u', /* -NUE */
  119. 03,0200+'d','u', /* -DUE */
  120. 0300+02,'u', /* U/E */
  121. 0300+05,'q','u','a','t', /* QUAT/E */
  122. 04,'u',0200+'a','t', /* U-ATE */
  123. 05,0200+'s','t','a','t', /* -STATE */
  124. 04,0200+'t','a','t', /* -TATE */
  125. 06,0200+'t','o','r',0200+'a','t', /* -TOR-ATE */
  126. 05,'e','n',0200+'a','t', /* EN-ATE */
  127. 04,0200+'m','a','t', /* -MATE */
  128. 05,0200+'h','o','u','s', /* -HOUSE */
  129. 05,0200+'c','l','o','s', /* -CLOSE */
  130. 04,'i',0200+'o','s', /* I-OSE */
  131. 04,0200+'w','i','s', /* -WISE */
  132. 05,'a','s',0200+'u','r', /* AS-URE */
  133. 040+04,0200+'s','u','r', /* -SURE */
  134. 06,0200+'f','i','g',0200+'u','r', /* -FIG-URE */
  135. 040+03,0200+'t','r', /* -TRE */
  136. 05,0200+'s','t','o','r', /* -STORE */
  137. 04,0200+'f','o','r', /* -FORE */
  138. 05,0200+'w','h','e','r', /* -WHERE */
  139. 06,0200+'s','p','h','e','r', /* -SPHERE */
  140. 03,0200+'d','r', /* -DRE */
  141. 03,0200+'c','r', /* -CRE */
  142. 03,0200+'b','r', /* -BRE */
  143. 05,0200+'s','c','o','p', /* -SCOPE */
  144. 04,'y',0200+'o','n', /* Y-ONE */
  145. 05,0200+'s','t','o','n', /* -STONE */
  146. 05,0200+'p','h','o','n', /* -PHONE */
  147. 04,0200+'g','o','n', /* -GONE */
  148. 04,'e',0200+'o','n', /* E-ONE */
  149. 040+04,0200+'e','n','n', /* -ENNE */
  150. 040+05,'a',0200+'r','i','n', /* A-RINE */
  151. 05,0200+'c','l','i','n', /* -CLINE */
  152. 04,0200+'l','i','n', /* -LINE */
  153. 007,00200+'r','o','u',00200+'t','i','n', /*-ROU-TINE */
  154. 04,0200+'s','o','m', /* -SOME */
  155. 04,0200+'c','o','m', /* -COME */
  156. 04,0200+'t','i','m', /* -TIME */
  157. 03,0200+'z','l', /* -ZLE */
  158. 03,0200+'t','l', /* -TLE */
  159. 03,0200+'s','l', /* -SLE */
  160. 03,0200+'p','l', /* -PLE */
  161. 05,0200+'v','i','l','l', /* -VILLE */
  162. 04,'c','k',0200+'l', /* CK-LE */
  163. 03,0200+'k','l', /* -KLE */
  164. 03,0200+'g','l', /* -GLE */
  165. 03,0200+'f','l', /* -FLE */
  166. 03,0200+'d','l', /* -DLE */
  167. 03,0200+'c','l', /* -CLE */
  168. 05,0200+'p','a',0200+'b','l', /* -PA-BLE */
  169. 05,'f','a',0200+'b','l', /* FA-BLE */
  170. 05,0200+'c','a',0200+'b','l', /* -CA-BLE */
  171. 06,0200+'s','t','a','b','l', /* -STABLE */
  172. 04,0200+'a','b','l', /* -ABLE */
  173. 03,0200+'b','l', /* -BLE */
  174. 04,0200+'d','a','l', /* -DALE */
  175. 04,0200+'m','a','l', /* -MALE */
  176. 04,0200+'s','a','l', /* -SALE */
  177. 04,0200+'l','i','k', /* -LIKE */
  178. 0340+05,'g',0200+'u','a','g', /* -G/UAGE */
  179. 05,0200+'r','i','a','g', /* -RIAGE */
  180. 05,'e','r',0200+'a','g', /* ER-AGE */
  181. 04,'m',0200+'a','g', /* M-AGE */
  182. 04,'k',0200+'a','g', /* K-AGE */
  183. 04,'d',0200+'a','g', /* D-AGE */
  184. 04,0200+'w','i','f', /* -WIFE */
  185. 05,0200+'k','n','i','f', /* -KNIFE */
  186. 03,0200+'s','e', /* -SEE */
  187. 04,0200+'f','r','e', /* -FREE */
  188. 0340+02,'e', /* EE */
  189. 04,0200+'w','i','d', /* -WIDE */
  190. 04,0200+'t','i','d', /* -TIDE */
  191. 04,0200+'s','i','d', /* -SIDE */
  192. 06,0200+'q','u','e','n','c', /* -QUENCE */
  193. 07,0200+'f','l','u',0200+'e','n','c', /* -FLU-ENCE */
  194. 040+06,'e','s',0200+'e','n','c', /* ES-ENCE */
  195. 06,'e','r',0200+'e','n','c', /* ER-ENCE */
  196. 05,'i',0200+'e','n','c', /* I-ENCE */
  197. 040+05,0200+'s','a','n','c', /* -SANCE */
  198. 06,'e','r',0200+'a','n','c', /* ER-ANCE */
  199. 06,'a','r',0200+'a','n','c', /* AR-ANCE */
  200. 05,0200+'n','a','n','c', /* -NANCE */
  201. 07,0200+'b','a','l',0200+'a','n','c', /* -BAL-ANCE */
  202. 05,'i',0200+'a','n','c', /* I-ANCE */
  203. 07,0200+'j','u','s',0200+'t','i','c', /* -JUS-TICE */
  204. 05,0200+'s','t','i','c', /* -STICE */
  205. 06,0200+'n','o','v',0200+'i','c', /* NOV-ICE */
  206. 04,0200+'v','i','c', /* -VICE */
  207. 05,0200+'p','i','e','c', /* -PIECE */
  208. 05,0200+'p','l','a','c', /* -PLACE */
  209. 0340+01, /* /E */
  210. 00
  211. };
  212. static Uchar suff[] = {
  213. 03,0200+'o','f', /* -OFF */
  214. 05,0200+'p','r','o','o', /* -PROOF */
  215. 04,0200+'s','e','l', /* -SELF */
  216. 03,0200+'r','i', /* -RIF */
  217. 040+04,0200+'l','i','e', /* -LIEF */
  218. 00
  219. };
  220. static Uchar sufg[] = {
  221. 03,0200+'l','o', /* -LOG */
  222. 04,0200+'l','o','n', /* -LONG */
  223. 05,'t',0200+'t','i','n', /* T-TING */
  224. 06,0200+'s','t','r','i','n', /* -STRING */
  225. 05,'r',0200+'r','i','n', /* R-RING */
  226. 05,'p',0200+'p','i','n', /* P-PING */
  227. 05,'n',0200+'n','i','n', /* N-NING */
  228. 05,'m',0200+'m','i','n', /* M-MING */
  229. 05,'l',0200+'l','i','n', /* L-LING */
  230. 05,0200+'z','l','i','n', /* -ZLING */
  231. 05,0200+'t','l','i','n', /* -TLING */
  232. 040+05,'s',0200+'l','i','n', /* S-LING */
  233. 05,'r',0200+'l','i','n', /* R-LING */
  234. 05,0200+'p','l','i','n', /* -PLING */
  235. 06,'n',0200+'k','l','i','n', /* N-KLING */
  236. 05,'k',0200+'l','i','n', /* K-LING */
  237. 05,0200+'g','l','i','n', /* -GLING */
  238. 05,0200+'f','l','i','n', /* -FLING */
  239. 05,0200+'d','l','i','n', /* -DLING */
  240. 05,0200+'c','l','i','n', /* -CLING */
  241. 05,0200+'b','l','i','n', /* -BLING */
  242. 06,'y',0200+'t','h','i','n', /* Y-THING */
  243. 07,'e','e','t','h',0200+'i','n', /* EETH-ING */
  244. 06,'e',0200+'t','h','i','n', /* E-THING */
  245. 05,'g',0200+'g','i','n', /* G-GING */
  246. 05,'d',0200+'d','i','n', /* D-DING */
  247. 05,'b',0200+'b','i','n', /* B-BING */
  248. 03,0200+'i','n', /* -ING */
  249. 00
  250. };
  251. static Uchar sufh[] = {
  252. 05,0200+'m','o','u','t', /* -MOUTH */
  253. 05,0200+'w','o','r','t', /* -WORTH */
  254. 04,0200+'w','i','t', /* -WITH */
  255. 05,'t',0200+'t','i','s', /* T-TISH */
  256. 05,'e',0200+'t','i','s', /* E-TISH */
  257. 05,'p',0200+'p','i','s', /* P-PISH */
  258. 05,'r',0200+'n','i','s', /* R-NISH */
  259. 05,'n',0200+'n','i','s', /* N-NISH */
  260. 05,0200+'p','l','i','s', /* -PLISH */
  261. 05,0200+'g','u','i','s', /* -GUISH */
  262. 05,0200+'g','l','i','s', /* -GLISH */
  263. 05,'b',0200+'l','i','s', /* B-LISH */
  264. 05,'g',0200+'g','i','s', /* G-GISH */
  265. 05,'d',0200+'d','i','s', /* D-DISH */
  266. 03,0200+'i','s', /* -ISH */
  267. 05,0200+'g','r','a','p', /* -GRAPH */
  268. 07,0200+'b','o','r',0200+'o','u','g', /* -BOR-OUGH */
  269. 05,0200+'b','u','r','g', /* -BURGH */
  270. 04,0200+'v','i','c', /* -VICH */
  271. 03,0200+'n','a', /* -NAH */
  272. 03,0200+'l','a', /* -LAH */
  273. 04,0200+'m','i',0200+'a', /* -MI-AH */
  274. 00
  275. };
  276. static Uchar sufi[] = {
  277. 03,0200+'t','r', /* -TRI */
  278. 03,0200+'c','h', /* -CHI */
  279. 0200+03,'i','f', /* IF-I */
  280. 0200+03,'e','d', /* ED-I */
  281. 05,0200+'a','s','c','i', /* -ASCII */
  282. 04,0200+'s','e','m', /* -SEMI */
  283. 00
  284. };
  285. static Uchar sufk[] = {
  286. 04,0200+'w','o','r', /* -WORK */
  287. 04,0200+'m','a','r', /* -MARK */
  288. 04,0200+'b','o','o', /* -BOOK */
  289. 04,0200+'w','a','l', /* -WALK */
  290. 05,0200+'c','r','a','c', /* -CRACK */
  291. 04,0200+'b','a','c', /* -BACK */
  292. 00
  293. };
  294. static Uchar sufl[] = {
  295. 03,0200+'f','u', /* -FUL */
  296. 05,'s',0200+'w','e','l', /* S-WELL */
  297. 04,0200+'t','e','l', /* -TELL */
  298. 05,0200+'s','h','e','l', /* -SHELL */
  299. 05,0200+'s','t','a','l', /* -STALL */
  300. 04,'s',0200+'t','a', /* S-TAL */
  301. 04,0200+'b','a','l', /* -BALL */
  302. 04,0200+'c','a','l', /* -CALL */
  303. 03,'v',0200+'e', /* V-EL */
  304. 03,'u',0200+'e', /* U-EL */
  305. 03,'k',0200+'e', /* K-EL */
  306. 04,'t','h',0200+'e', /* TH-EL */
  307. 05,'t','c','h',0200+'e', /* TCH-EL */
  308. 03,'a',0200+'e', /* A-EL */
  309. 0140+04,0200+'q','u','a', /* /QUAL */
  310. 040+03,'u',0200+'a', /* U-AL */
  311. 03,0200+'t','a', /* -TAL */
  312. 04,'u','r',0200+'a', /* UR-AL */
  313. 040+05,'g',0200+'o',0200+'n','a', /* G-O-NAL */
  314. 04,'o','n',0200+'a', /* ON-AL */
  315. 03,0200+'n','a', /* -NAL */
  316. 04,0200+'t','i','a', /* -TIAL */
  317. 04,0200+'s','i','a', /* -SIAL */
  318. 040+05,0200+'t','r','i',0200+'a', /* -TRI-AL */
  319. 04,'r','i',0200+'a', /* RI-AL */
  320. 04,0200+'n','i',0200+'a', /* -NI-AL */
  321. 04,0200+'d','i',0200+'a', /* -DI-AL */
  322. 04,0200+'c','i','a', /* -CIAL */
  323. 03,0200+'g','a', /* -GAL */
  324. 04,0200+'m','e','a', /* -MEAL */
  325. /* 040+04,0200+'r','e',0200+'a', /* -RE-AL */
  326. 040+04,0200+'r','e','a', /* -REAL */
  327. 06,'c',0200+'t','i',0200+'c','a', /* C-TI-CAL */
  328. 05,0200+'s','i',0200+'c','a', /* -SI-CAL */
  329. 04,0200+'i',0200+'c','a', /* -I-CAL */
  330. 03,0200+'c','a', /* -CAL */
  331. 03,0200+'b','a', /* -BAL */
  332. 06,0200+'n','o',0200+'m','i',0200+'a', /* -NO-MI-AL */
  333. 00
  334. };
  335. static Uchar sufm[] = {
  336. 03,0200+'n','u', /* -NUM */
  337. 05,'o',0200+'r','i',0200+'u', /* O-RI-UM */
  338. 040+03,'i',0200+'u', /* I-UM */
  339. 040+03,'e',0200+'u', /* E-UM */
  340. 05,'i','v',0200+'i','s', /* IV-ISM */
  341. 04,0200+'t','i','s', /* -TISM */
  342. 05,'i',0200+'m','i','s', /* I-MISM */
  343. 05,'a','l',0200+'i','s', /* AL-ISM */
  344. 040+04,'e',0200+'i','s', /* E-ISM */
  345. 040+04,'a',0200+'i','s', /* A-ISM */
  346. 04,0200+'r','o','o', /* -ROOM */
  347. 03,0200+'d','o', /* -DOM */
  348. 03,0200+'h','a', /* -HAM */
  349. 06,0200+'a',0200+'r','i','t','h', /* -A-RITHM */
  350. 05,0200+'r','i','t','h', /* -RITHM */
  351. 00
  352. };
  353. static Uchar sufn[] = {
  354. 05,0200+'k','n','o','w', /* -KNOWN */
  355. 04,0200+'t','o','w', /* -TOWN */
  356. 04,0200+'d','o','w', /* -DOWN */
  357. 04,0200+'t','u','r', /* -TURN */
  358. 05,0200+'s','p','o','o', /* -SPOON */
  359. 04,0200+'n','o','o', /* -NOON */
  360. 04,0200+'m','o','o', /* -MOON */
  361. 011,'a','l',0200+'i',0200+'z','a',0200+'t','i','o', /* AL-I-ZA-TION */
  362. 07,0200+'i',0200+'z','a',0200+'t','i','o', /* -I-ZA-TION */
  363. 07,'l',0200+'i',0200+'a',0200+'t','i','o', /* L-I-A-TION */
  364. 04,0200+'t','i','o', /* -TION */
  365. 040+05,'s',0200+'s','i','o', /* S-SION */
  366. 04,0200+'s','i','o', /* -SION */
  367. 04,'n',0200+'i','o', /* N-ION */
  368. 04,0200+'g','i','o', /* -GION */
  369. 04,0200+'c','i','o', /* -CION */
  370. 03,0200+'c','o', /* -CON */
  371. 05,0200+'c','o','l','o', /* -COLON */
  372. 03,0200+'t','o', /* -TON */
  373. 04,'i','s',0200+'o', /* IS-ON */
  374. 03,0200+'s','o', /* -SON */
  375. 03,0200+'r','i', /* -RIN */
  376. 03,0200+'p','i', /* -PIN */
  377. 03,0200+'n','i', /* -NIN */
  378. 03,0200+'m','i', /* -MIN */
  379. 03,0200+'l','i', /* -LIN */
  380. 03,0200+'k','i', /* -KIN */
  381. 05,0200+'s','t','e','i', /* -STEIN */
  382. 04,0200+'t','a','i', /* -TAIN */
  383. 05,'g','h','t',0200+'e', /* GHT-EN */
  384. 05,0200+'w','o','m',0200+'e', /* -WOM-EN */
  385. 03,0200+'m','e', /* -MEN */
  386. 04,'o',0200+'k','e', /* O-KEN */
  387. 03,'k',0200+'e', /* K-EN */
  388. 04,0200+'t','e','e', /* -TEEN */
  389. 04,0200+'s','e','e', /* -SEEN */
  390. 040+03,0200+'s','a', /* -SAN */
  391. 05,0200+'w','o','m',0200+'a', /* -WOM-AN */
  392. 03,0200+'m','a', /* -MAN */
  393. 04,0200+'t','i','a', /* -TIAN */
  394. 04,0200+'s','i','a', /* -SIAN */
  395. 040+04,'e',0200+'i','a', /* E-IAN */
  396. 04,0200+'c','i','a', /* -CIAN */
  397. 0300+03,'i','a', /* IA/N */
  398. 05,0200+'c','l','e','a', /* -CLEAN */
  399. 04,0200+'m','e','a', /* -MEAN */
  400. 040+03,'e',0200+'a', /* E-AN */
  401. 00
  402. };
  403. static Uchar sufo[] = {
  404. 05,0200+'m','a','c',0200+'r', /* -MAC-RO */
  405. 00
  406. };
  407. static Uchar sufp[] = {
  408. 05,0200+'g','r','o','u', /* -GROUP */
  409. 02,0200+'u', /* -UP */
  410. 04,0200+'s','h','i', /* -SHIP */
  411. 04,0200+'k','e','e', /* -KEEP */
  412. 00
  413. };
  414. static Uchar sufr[] = {
  415. 04,0200+'z','a','r', /* -ZARR */
  416. 0300+02,'r', /* R/R */
  417. 03,0200+'t','o', /* -TOR */
  418. 040+03,0200+'s','o', /* -SOR */
  419. 040+04,0200+'r','i',0200+'o', /* -RI-OR */
  420. 04,'i','z',0200+'e', /* IZ-ER */
  421. 05,0200+'c','o','v',0200+'e', /* -COV-ER */
  422. 04,0200+'o','v','e', /* -OVER */
  423. 04,0200+'e','v',0200+'e', /* -EV-ER */
  424. 8,0200+'c','o','m',0200+'p','u','t',0200+'e', /* -COM-PUT-ER */
  425. 040+05,'u','s',0200+'t','e', /* US-TER */
  426. 05,'o','s','t',0200+'e', /* OST-ER */
  427. 040+05,0200+'a','c',0200+'t','e', /* -AC-TER */
  428. 06,0200+'w','r','i','t',0200+'e', /* -WRIT-ER */
  429. 040+05,'i','s',0200+'t','e', /* IS-TER */
  430. 040+05,'e','s',0200+'t','e', /* ES-TER */
  431. 040+05,'a','s',0200+'t','e', /* AS-TER */
  432. 04,0200+'s','t','e', /* -STER */
  433. 05,'a','r',0200+'t','e', /* AR-TER */
  434. 04,'r','t',0200+'e', /* RT-ER */
  435. 040+05,'m',0200+'e',0200+'t','e', /* M-E-TER */
  436. 05,0200+'w','a',0200+'t','e', /* -WA-TER */
  437. 03,'r',0200+'e', /* R-ER */
  438. 04,'o','p',0200+'e', /* OP-ER */
  439. 05,0200+'p','a',0200+'p','e', /* -PA-PER */
  440. 04,'w','n',0200+'e', /* WN-ER */
  441. 040+04,'s',0200+'n','e', /* S-NER */
  442. 04,'o','n',0200+'e', /* ON-ER */
  443. 04,'r','m',0200+'e', /* RM-ER */
  444. 03,0200+'m','e', /* -MER */
  445. 04,'l','l',0200+'e', /* LL-ER */
  446. 05,'d',0200+'d','l','e', /* D-DLER */
  447. 04,0200+'b','l','e', /* -BLER */
  448. 03,'k',0200+'e', /* K-ER */
  449. 05,'n',0200+'t','h','e', /* N-THER */
  450. 06,0200+'f','a',0200+'t','h','e', /* -FA-THER */
  451. 06,'e','i',0200+'t','h','e', /* EI-THER */
  452. 04,'t','h',0200+'e', /* TH-ER */
  453. 04,'s','h',0200+'e', /* SH-ER */
  454. 04,0200+'p','h','e', /* -PHER */
  455. 04,'c','h',0200+'e', /* CH-ER */
  456. 04,'d','g',0200+'e', /* DG-ER */
  457. 04,'r','d',0200+'e', /* RD-ER */
  458. 06,'o','u','n','d',0200+'e', /* OUND-ER */
  459. 04,'l','d',0200+'e', /* LD-ER */
  460. 04,'i','d',0200+'e', /* ID-ER */
  461. 05,0200+'d','u','c',0200+'e', /* -DUC-ER */
  462. 04,'n','c',0200+'e', /* NC-ER */
  463. 0100+02, 0200+'e', /* /ER */
  464. 03,0200+'s','a', /* -SAR */
  465. 040+06,'a','c',0200+'u',0200+'l','a', /* AC-U-LAR */
  466. 040+06,'e','c',0200+'u',0200+'l','a', /* EC-U-LAR */
  467. 040+06,'i','c',0200+'u',0200+'l','a', /* IC-U-LAR */
  468. 040+06,'e','g',0200+'u',0200+'l','a', /* EG-U-LAR */
  469. 00
  470. };
  471. static Uchar sufs[] = {
  472. 040+04,'u',0200+'o','u', /* U-OUS */
  473. 05,0200+'t','i','o','u', /* -TIOUS */
  474. 05,0200+'g','i','o','u', /* -GIOUS */
  475. 05,0200+'c','i','o','u', /* -CIOUS */
  476. 040+04,'i',0200+'o','u', /* I-OUS */
  477. 05,0200+'g','e','o','u', /* -GEOUS */
  478. 05,0200+'c','e','o','u', /* -CEOUS */
  479. 04,'e',0200+'o','u', /* E-OUS */
  480. 0140+02,0200+'u', /* /US */
  481. 04,0200+'n','e','s', /* -NESS */
  482. 04,0200+'l','e','s', /* -LESS */
  483. 0140+02,0200+'s', /* /SS */
  484. 040+05,'p',0200+'o',0200+'l','i', /* P-O-LIS */
  485. 0140+02,0200+'i', /* /IS */
  486. 0100+03,0200+'x','e', /* X/ES */
  487. 0100+03,0200+'s','e', /* S/ES */
  488. 0100+04,'s','h',0200+'e', /* SH/ES */
  489. 0100+04,'c','h',0200+'e', /* CH/ES */
  490. 0300+01, /* /S */
  491. 00
  492. };
  493. static Uchar suft[] = {
  494. 05,0200+'l','i','m',0200+'i', /* -LIM-IT */
  495. 06,'i','o','n',0200+'i','s', /* ION-IST */
  496. 05,'i','n',0200+'i','s', /* IN-IST */
  497. 05,'a','l',0200+'i','s', /* AL-IST */
  498. 06,'l',0200+'o',0200+'g','i','s', /* L-O-GIST */
  499. 05,'h','t',0200+'e','s', /* HT-EST */
  500. 04,'i',0200+'e','s', /* I-EST */
  501. 05,'g',0200+'g','e','s', /* G-GEST */
  502. 04,'g',0200+'e','s', /* G-EST */
  503. 05,'d',0200+'d','e','s', /* D-DEST */
  504. 04,'d',0200+'e','s', /* D-EST */
  505. 04,0200+'c','a','s', /* -CAST */
  506. 05,0200+'h','e','a','r', /* -HEART */
  507. 04,0200+'f','o','o', /* -FOOT */
  508. 03,'i',0200+'o', /* I-OT */
  509. 05,0200+'f','r','o','n', /* -FRONT */
  510. 05,0200+'p','r','i','n', /* -PRINT */
  511. 04,0200+'m','e','n', /* -MENT */
  512. 05,0200+'c','i','e','n', /* -CIENT */
  513. 04,'i',0200+'a','n', /* I-ANT */
  514. 06,0200+'w','r','i','g','h', /* -WRIGHT */
  515. 06,0200+'b','r','i','g','h', /* -BRIGHT */
  516. 06,0200+'f','l','i','g','h', /* -FLIGHT */
  517. 06,0200+'w','e','i','g','h', /* -WEIGHT */
  518. 05,0200+'s','h','i','f', /* -SHIFT */
  519. 05,0200+'c','r','a','f', /* -CRAFT */
  520. 040+04,'d','g',0200+'e', /* DG-ET */
  521. 04,0200+'g','o','a', /* -GOAT */
  522. 04,0200+'c','o','a', /* -COAT */
  523. 04,0200+'b','o','a', /* -BOAT */
  524. 04,0200+'w','h','a', /* -WHAT */
  525. 04,0200+'c','u','i', /* -CUIT */
  526. 00
  527. };
  528. static Uchar sufy[] = {
  529. 040+04,'e','s',0200+'t', /* ES-TY */
  530. 040+05,'q','u','i',0200+'t', /* QUI-TY */
  531. 04,0200+'t','i',0200+'t', /* -TI-TY */
  532. 040+05,'o','s',0200+'i',0200+'t', /* OS-I-TY */
  533. 04,0200+'s','i',0200+'t', /* -SI-TY */
  534. 05,'i','n',0200+'i',0200+'t', /* IN-I-TY */
  535. 04,'n','i',0200+'t', /* NI-TY */
  536. 040+010,'f','a',0200+'b','i','l',0200+'i',0200+'t', /* FA-BIL-I-TY */
  537. 010,0200+'c','a',0200+'b','i','l',0200+'i',0200+'t', /* -CA-BIL-I-TY */
  538. 010,0200+'p','a',0200+'b','i','l',0200+'i',0200+'t', /* -PA-BIL-I-TY */
  539. 06,0200+'b','i','l',0200+'i',0200+'t', /* -BIL-I-TY */
  540. 03,'i',0200+'t', /* I-TY */
  541. 04,0200+'b','u','r', /* -BUR-Y */
  542. 04,0200+'t','o',0200+'r', /* -TO-RY */
  543. 05,0200+'q','u','a','r', /* -QUAR-Y */
  544. 040+04,'u',0200+'a','r', /* U-ARY */
  545. 07,0200+'m','e','n',0200+'t','a',0200+'r', /* -MEN-TA-RY */
  546. 06,'i','o','n',0200+'a','r', /* ION-ARY */
  547. 04,'i',0200+'a','r', /* I-ARY */
  548. 04,'n',0200+'o',0200+'m', /* N-O-MY */
  549. 03,0200+'p','l', /* -PLY */
  550. 04,'g',0200+'g','l', /* G-GLY */
  551. 05,0200+'p','a',0200+'b','l', /* -PA-BLY */
  552. 05,'f','a',0200+'b','l', /* FA-BLY */
  553. 05,0200+'c','a',0200+'b','l', /* -CA-BLY */
  554. 04,0200+'a','b','l', /* -ABLY */
  555. 03,0200+'b','l', /* -BLY */
  556. 02,0200+'l', /* -LY */
  557. 03,0200+'s','k', /* -SKY */
  558. 040+06,'g',0200+'r','a',0200+'p','h', /* G-RA-PHY */
  559. 04,'l',0200+'o',0200+'g', /* L-O-GY */
  560. 02,0200+'f', /* -FY */
  561. 03,0200+'n','e', /* -NEY */
  562. 03,0200+'l','e', /* -LEY */
  563. 04,'c','k',0200+'e', /* CK-EY */
  564. 03,0200+'k','e', /* -KEY */
  565. 04,0200+'b','o','d', /* -BODY */
  566. 05,0200+'s','t','u','d', /* -STUDY */
  567. 0340+04,'e','e','d', /* EEDY */
  568. 02,0200+'b', /* -BY */
  569. 03,0200+'w','a', /* -WAY */
  570. 03,0200+'d','a', /* -DAY */
  571. 00
  572. };
  573. Uchar *suftab[] = {
  574. sufa,
  575. 0,
  576. sufc,
  577. sufd,
  578. sufe,
  579. suff,
  580. sufg,
  581. sufh,
  582. sufi,
  583. 0,
  584. sufk,
  585. sufl,
  586. sufm,
  587. sufn,
  588. sufo,
  589. sufp,
  590. 0,
  591. sufr,
  592. sufs,
  593. suft,
  594. 0,
  595. 0,
  596. 0,
  597. 0,
  598. sufy,
  599. 0,
  600. };