]> git.donarmstrong.com Git - deb_pkgs/scowl.git/blob - src/make-words
fix numbering of variants to be 1 and 2 (closes: #867586)
[deb_pkgs/scowl.git] / src / make-words
1 #!/bin/bash
2
3 level=$1
4 export SCOWL_LEVEL=$1
5
6 rm -f words.$level*
7
8 shopt -s nullglob
9
10 max_level=`src/get-level max`
11
12 get-list() {
13   res=`src/get-all-below $level $1`
14   if [ -n "$res" -a -d debug ]; then
15     cat $res | src/filter | sort -u > debug/$level.l.$1
16   fi
17   echo $res
18 }
19
20 cap() {
21   dsr=$1
22   shift
23   if [ -d debug ]; then
24     cat | sort -u > debug/$level.$dsr.in
25     cat debug/$level.$dsr.in | "$@" | sort -u > debug/$level.$dsr.out
26     comm -23 debug/$level.$dsr.out debug/$level.$dsr.in > debug/$level.+.$dsr
27     cat debug/$level.$dsr.out
28     rm debug/$level.$dsr.out debug/$level.$dsr.in
29   else
30     "$@"
31   fi
32 }
33
34 if [ $level -ne $max_level ]
35 then
36
37   supplement=`get-list supplement`  
38   add_affixes="`get-list add-affixes`"
39   add_possessive="`get-list add-possessive`"
40
41   if [ -d debug -a -d l/include/$level ]; then
42     cat l/include/$level/* | sort -u | comm -12  - working/words.`src/get-level next $level` > debug/$level.l.include
43   fi
44
45   cat $supplement $add_affixes $add_possessive l/include/$level/* \
46     | src/filter                                              \
47     > working/words.$level.tmp
48   cp working/words.$level.tmp working/words.$level.tmp.0
49
50   if [ -n "$add_affixes" ] && [ $level -le `cat l/add-affixes/max-level` ]
51   then
52     #echo "Adding affixes"
53     cat $add_affixes | src/filter | cap affixes src/add-affixes >> working/words.$level.tmp
54   fi
55
56   if [ $level -lt 80 ]
57   then
58     if [ -n "$add_possessive" ]
59     then
60       #echo "Adding possessive"
61       cat $add_possessive | src/filter | cap possessive src/add-affixes just-possessive >> working/words.$level.tmp
62     fi
63   else
64     #echo "Adding possessive"
65     cat working/words.$level.tmp                       \
66       | cap possessive src/add-affixes use-some just-possessive   \
67       > working/words.$level.tmp2
68     mv working/words.$level.tmp2 working/words.$level.tmp
69   fi
70
71   echo -n '' > working/exclude.$level
72   for l in `cat l/levels-list`; do
73     if [ $l -ge $level -a -e r/special/exclude.$l ]; then
74         cat r/special/exclude.$l >> working/exclude.$level
75     fi
76   done
77   sort -u working/exclude.$level -o working/exclude.$level
78
79   cat working/words.$level.tmp    \
80     | cap other-spellings-1 src/add-other-spellings \
81     | cap other-forms       src/add-other-forms     \
82     | cap other-spellings-2 src/add-other-spellings \
83     | sort -u                 \
84     | comm -23  - working/exclude.$level \
85     | comm -12  - working/words.`src/get-level next $level` \
86     > working/words.$level
87
88   #rm working/words.$level.tmp
89
90 else
91
92   if [ -d debug/ ]; then
93     cp working/all.lst debug/$level.everything
94   fi
95
96   cat working/all.lst           \
97     | cap possessive src/add-affixes use-all just-possessive \
98     | cap other-spellings src/add-other-spellings   \
99     | sort -u                   \
100     > working/words.$level
101
102 fi