Document xapian-compact --blocksize takes an argument
[xapian.git] / xapian-core / languages / danish.sbl
blobffc60d5f8f32a13f33d98775600a4dfc83c98153
1 // Alias: da
3 routines (
4            mark_regions
5            main_suffix
6            consonant_pair
7            other_suffix
8            undouble
11 externals ( stem )
13 strings ( ch )
15 integers ( p1 x )
17 groupings ( v s_ending )
19 stringescapes {}
21 /* special characters (in ISO Latin I) */
23 stringdef ae   hex 'E6'
24 stringdef ao   hex 'E5'
25 stringdef o/   hex 'F8'
27 define v 'aeiouy{ae}{ao}{o/}'
29 define s_ending  'abcdfghjklmnoprtvyz{ao}'
31 define mark_regions as (
33     $p1 = limit
35     test ( hop 3 setmark x )
36     goto v gopast non-v  setmark p1
37     try ( $p1 < x  $p1 = x )
40 backwardmode (
42     define main_suffix as (
43         setlimit tomark p1 for ([substring])
44         among(
46             'hed' 'ethed' 'ered' 'e' 'erede' 'ende' 'erende' 'ene' 'erne' 'ere'
47             'en' 'heden' 'eren' 'er' 'heder' 'erer' 'heds' 'es' 'endes'
48             'erendes' 'enes' 'ernes' 'eres' 'ens' 'hedens' 'erens' 'ers' 'ets'
49             'erets' 'et' 'eret'
50                 (delete)
51             's'
52                 (s_ending delete)
53         )
54     )
56     define consonant_pair as (
57         test (
58             setlimit tomark p1 for ([substring])
59             among(
60                 'gd' // significant in the call from other_suffix
61                 'dt' 'gt' 'kt'
62             )
63         )
64         next] delete
65     )
67     define other_suffix as (
68         do ( ['st'] 'ig' delete )
69         setlimit tomark p1 for ([substring])
70         among(
71             'ig' 'lig' 'elig' 'els'
72                 (delete do consonant_pair)
73             'l{o/}st'
74                 (<-'l{o/}s')
75         )
76     )
77     define undouble as (
78         setlimit tomark p1 for ([non-v] ->ch)
79         ch
80         delete
81     )
84 define stem as (
86     do mark_regions
87     backwards (
88         do main_suffix
89         do consonant_pair
90         do other_suffix
91         do undouble
92     )