Add regression test for previous commit
[xapian.git] / xapian-core / languages / nepali.sbl
blob6da52e72742fb6f19559b03b149d2d2b597a70a1
1 // Alias: ne
3 /*
4  * Authors:
5  * - Ingroj Shrestha <ing.stha@gmail.com>, Nepali NLP Group
6  * - Oleg Bartunov <obartunov@gmail.com>, Postgres Professional Ltd.
7  * - Shreeya Singh Dhakal, Nepali NLP Group
8  */
10 routines (
11         remove_category_1
12         check_category_2
13         remove_category_2
14         remove_category_3
17 stringescapes {}
19 stringdef dsc     '{U+0901}'  // DEVANAGARI_SIGN_CANDRABINDU
20 stringdef dsa     '{U+0902}'  // DEVANAGARI_SIGN_ANUSVARA
21 stringdef dli     '{U+0907}'  // DEVANAGARI_LETTER_I
22 stringdef dlii    '{U+0908}'  // DEVANAGARI_LETTER_II
23 stringdef dle     '{U+090F}'  // DEVANAGARI_LETTER_E
24 stringdef dlka    '{U+0915}'  // DEVANAGARI_LETTER_KA
25 stringdef dlkha   '{U+0916}'  // DEVANAGARI_LETTER_KHA
26 stringdef dlg     '{U+0917}'  // DEVANAGARI_LETTER_GA
27 stringdef dlc     '{U+091B}'  // DEVANAGARI_LETTER_CHA
28 stringdef dlta    '{U+0924}'  // DEVANAGARI_LETTER_TA
29 stringdef dltha   '{U+0925}'  // DEVANAGARI_LETTER_THA
30 stringdef dld     '{U+0926}'  // DEVANAGARI_LETTER_DA
31 stringdef dln     '{U+0928}'  // DEVANAGARI_LETTER_NA
32 stringdef dlpa    '{U+092A}'  // DEVANAGARI_LETTER_PA
33 stringdef dlpha   '{U+092B}'  // DEVANAGARI_LETTER_PHA
34 stringdef dlb     '{U+092D}'  // DEVANAGARI_LETTER_BHA
35 stringdef dlm     '{U+092E}'  // DEVANAGARI_LETTER_MA
36 stringdef dly     '{U+092F}'  // DEVANAGARI_LETTER_YA
37 stringdef dlr     '{U+0930}'  // DEVANAGARI_LETTER_RA
38 stringdef dll     '{U+0932}'  // DEVANAGARI_LETTER_LA
39 stringdef dlv     '{U+0935}'  // DEVANAGARI_LETTER_VA
40 stringdef dls     '{U+0938}'  // DEVANAGARI_LETTER_SA
41 stringdef dlh     '{U+0939}'  // DEVANAGARI_LETTER_HA
42 stringdef dvsaa   '{U+093E}'  // DEVANAGARI_VOWEL_SIGN_AA
43 stringdef dvsi    '{U+093F}'  // DEVANAGARI_VOWEL_SIGN_I
44 stringdef dvsii   '{U+0940}'  // DEVANAGARI_VOWEL_SIGN_II
45 stringdef dvsu    '{U+0941}'  // DEVANAGARI_VOWEL_SIGN_U
46 stringdef dvsuu   '{U+0942}'  // DEVANAGARI_VOWEL_SIGN_UU
47 stringdef dvse    '{U+0947}'  // DEVANAGARI_VOWEL_SIGN_E
48 stringdef dvsai   '{U+0948}'  // DEVANAGARI_VOWEL_SIGN_AI
49 stringdef dvso    '{U+094B}'  // DEVANAGARI_VOWEL_SIGN_O
50 stringdef dvsau   '{U+094C}'  // DEVANAGARI_VOWEL_SIGN_AU
51 stringdef dsv     '{U+094D}'  // DEVANAGARI_SIGN_VIRAMA
53 externals ( stem )
54 backwardmode (
55         define remove_category_1 as(
56                 [substring] among (
57                         '{dlm}{dvsaa}{dlr}{dsv}{dlpha}{dlta}' '{dld}{dsv}{dlv}{dvsaa}{dlr}{dvsaa}' '{dls}{dsc}{dlg}{dvsai}' '{dls}{dsa}{dlg}'
58                         '{dls}{dsc}{dlg}' '{dll}{dvsaa}{dli}' '{dll}{dvsaa}{dlii}' '{dlpa}{dlc}{dvsi}'
59                         '{dll}{dvse}' '{dlr}{dlta}' '{dlm}{dvsai}' '{dlm}{dvsaa}'
60                         (delete)
61                         '{dlka}{dvso}' '{dlka}{dvsaa}' '{dlka}{dvsi}' '{dlka}{dvsii}' '{dlka}{dvsai}'(('{dle}' or '{dvse}' ()) or delete)
62                 )
63         )
65         define check_category_2 as(
66                 [substring] among(
67                         '{dsc}' '{dsa}' '{dvsai}'
68                 )
69         )
71         define remove_category_2 as (
72                 [substring] among(
73                 '{dsc}' '{dsa}' ('{dly}{dvsau}' or '{dlc}{dvsau}' or '{dln}{dvsau}' or '{dltha}{dvse}' delete)
74                 '{dvsai}' ('{dlta}{dsv}{dlr}' delete)
75                 )
76         )
78         define remove_category_3 as(
79                 [substring] among(
80                         '{dltha}{dvsi}{dli}{dls}{dsv}' '{dlh}{dvsu}{dln}{dvse}{dlc}' '{dlh}{dvsu}{dln}{dsv}{dlc}' '{dln}{dvse}{dlc}{dls}{dsv}' '{dln}{dvse}{dlc}{dln}{dsv}' '{dli}{dle}{dlka}{dvsii}' '{dli}{dle}{dlka}{dvsaa}' '{dli}{dle}{dlka}{dvso}' '{dvsi}{dle}{dlka}{dvsii}' '{dvsi}{dle}{dlka}{dvsaa}' '{dvsi}{dle}{dlka}{dvso}' '{dli}{dlc}{dln}{dsv}' '{dvsi}{dlc}{dln}{dsv}' '{dli}{dlc}{dls}{dsv}' '{dvsi}{dlc}{dls}{dsv}' '{dle}{dlc}{dln}{dsv}' '{dvse}{dlc}{dln}{dsv}' '{dle}{dlc}{dls}{dsv}' '{dvse}{dlc}{dls}{dsv}' '{dlc}{dvsi}{dln}{dsv}' '{dlc}{dvse}{dls}{dsv}' '{dlc}{dsv}{dly}{dvsau}' '{dltha}{dvsi}{dln}{dsv}' '{dltha}{dvsi}{dly}{dvso}' '{dltha}{dvsi}{dly}{dvsau}' '{dltha}{dvsi}{dls}{dsv}' '{dltha}{dsv}{dly}{dvso}' '{dltha}{dsv}{dly}{dvsau}' '{dld}{dvsi}{dly}{dvso}' '{dld}{dvse}{dlkha}{dvsi}' '{dld}{dvse}{dlkha}{dvsii}' '{dll}{dvsaa}{dln}{dsv}' '{dlm}{dvsaa}{dltha}{dvsi}' '{dln}{dvse}{dlka}{dvsai}' '{dln}{dvse}{dlka}{dvsaa}' '{dln}{dvse}{dlka}{dvso}' '{dln}{dvse}{dlc}{dvsau}' '{dlh}{dvso}{dls}{dsv}' '{dli}{dln}{dsv}{dlc}' '{dvsi}{dln}{dsv}{dlc}' '{dln}{dvse}{dlc}{dvsu}' '{dli}{dlc}{dvsau}' '{dvsi}{dlc}{dvsau}'                   '{dli}{dls}{dsv}' '{dvsi}{dls}{dsv}' '{dvsi}{dly}{dvso}' '{dli}{dly}{dvso}' '{dle}{dlka}{dvsaa}' '{dvse}{dlka}{dvsaa}' '{dle}{dlka}{dvsii}' '{dvse}{dlka}{dvsii}' '{dle}{dlka}{dvsai}' '{dvse}{dlka}{dvsai}' '{dle}{dlka}{dvso}' '{dvse}{dlka}{dvso}' '{dle}{dlc}{dvsu}' '{dvse}{dlc}{dvsu}' '{dle}{dlc}{dvsau}' '{dvse}{dlc}{dvsau}' '{dlc}{dln}{dsv}' '{dlc}{dls}{dsv}' '{dltha}{dvsi}{dle}' '{dlpa}{dlr}{dsv}' '{dlb}{dly}{dvso}' '{dlh}{dlr}{dvsu}' '{dlh}{dlr}{dvsuu}' '{dvsi}{dld}{dvsaa}' '{dli}{dld}{dvsaa}' '{dvsi}{dld}{dvso}' '{dli}{dld}{dvso}' '{dvsi}{dld}{dvsai}' '{dli}{dld}{dvsai}' '{dln}{dvse}{dlc}' '{dli}{dlc}' '{dvsi}{dlc}' '{dle}{dlc}' '{dvse}{dlc}' '{dlc}{dvsu}' '{dlc}{dvse}' '{dlc}{dvsau}' '{dltha}{dvsii}' '{dltha}{dvse}' '{dld}{dvsaa}' '{dld}{dvsii}' '{dld}{dvsai}' '{dld}{dvso}' '{dln}{dvsu}' '{dln}{dvse}' '{dly}{dvso}' '{dly}{dvsau}' '{dlc}'
81                         (delete)
82                 )
83         )
87 define stem as (
88         backwards (
89                 do remove_category_1
90                         do (
91                                 repeat (do (check_category_2 and remove_category_2) remove_category_3)
92                         )
93         )