#!/bin/bash level=$1 export SCOWL_LEVEL=$1 rm -f words.$level* shopt -s nullglob max_level=`src/get-level max` get-list() { res=`src/get-all-below $level $1` if [ -n "$res" -a -d debug ]; then cat $res | src/filter | sort -u > debug/$level.l.$1 fi echo $res } cap() { dsr=$1 shift if [ -d debug ]; then cat | sort -u > debug/$level.$dsr.in cat debug/$level.$dsr.in | "$@" | sort -u > debug/$level.$dsr.out comm -23 debug/$level.$dsr.out debug/$level.$dsr.in > debug/$level.+.$dsr cat debug/$level.$dsr.out rm debug/$level.$dsr.out debug/$level.$dsr.in else "$@" fi } if [ $level -ne $max_level ] then supplement=`get-list supplement` add_affixes="`get-list add-affixes`" add_possessive="`get-list add-possessive`" if [ -d debug -a -d l/include/$level ]; then cat l/include/$level/* | sort -u | comm -12 - working/words.`src/get-level next $level` > debug/$level.l.include fi cat $supplement $add_affixes $add_possessive l/include/$level/* \ | src/filter \ > working/words.$level.tmp cp working/words.$level.tmp working/words.$level.tmp.0 if [ -n "$add_affixes" ] && [ $level -le `cat l/add-affixes/max-level` ] then #echo "Adding affixes" cat $add_affixes | src/filter | cap affixes src/add-affixes >> working/words.$level.tmp fi if [ $level -lt 80 ] then if [ -n "$add_possessive" ] then #echo "Adding possessive" cat $add_possessive | src/filter | cap possessive src/add-affixes just-possessive >> working/words.$level.tmp fi else #echo "Adding possessive" cat working/words.$level.tmp \ | cap possessive src/add-affixes use-some just-possessive \ > working/words.$level.tmp2 mv working/words.$level.tmp2 working/words.$level.tmp fi echo -n '' > working/exclude.$level for l in `cat l/levels-list`; do if [ $l -ge $level -a -e r/special/exclude.$l ]; then cat r/special/exclude.$l >> working/exclude.$level fi done sort -u working/exclude.$level -o working/exclude.$level cat working/words.$level.tmp \ | cap other-spellings-1 src/add-other-spellings \ | cap other-forms src/add-other-forms \ | cap other-spellings-2 src/add-other-spellings \ | sort -u \ | comm -23 - working/exclude.$level \ | comm -12 - working/words.`src/get-level next $level` \ > working/words.$level #rm working/words.$level.tmp else if [ -d debug/ ]; then cp working/all.lst debug/$level.everything fi cat working/all.lst \ | cap possessive src/add-affixes use-all just-possessive \ | cap other-spellings src/add-other-spellings \ | sort -u \ > working/words.$level fi