# To be included in select-words
# Last edited on 2004-02-16 11:46:55 by stolfi

# Word selection and normalization for the consonant-only Quran in
# JSAR.

function reclassify(section, curSec, curLin, type, wd,   sura,nvs,rev)
{
  # Valid sections are "tot.1", "mec.1", "mad.1".
  
  # Take only verse text,
  # Exclude verse 0 ("bismillah" heading).
  if (curSec !~ /^{b}{s[0-9]+}{v[1-9][0-9]*}$/) { return "n"; }
  sura = gensub(/^{b}{s([0-9]+)}{v[0-9]+}$/, "\\1", "g", curSec) + 0; 
  nvs = sura_nvs[sura];
  rev = sura_rev[sura];
  
  # Select only largest suras of the correct section
  if (nvs < 50) { return "n"; }
  if ((section == "tot.1") || (section == rev))
    { return type; }
  else
    { return "n"; }
}

function normalize(section, type, wd)
{
  return wd;
}

function define_patterns()
{
  split("", sura_rev); 
  split("", sura_nvs);
  
  sura_nvs[   2 ] = 286 ; sura_rev[   2 ] = "mad.1";
  sura_nvs[   3 ] = 200 ; sura_rev[   3 ] = "mad.1";
  sura_nvs[   4 ] = 176 ; sura_rev[   4 ] = "mad.1";
  sura_nvs[   9 ] = 129 ; sura_rev[   9 ] = "mad.1";
  sura_nvs[   5 ] = 120 ; sura_rev[   5 ] = "mad.1";
  sura_nvs[  22 ] =  78 ; sura_rev[  22 ] = "mad.1";
  sura_nvs[  55 ] =  78 ; sura_rev[  55 ] = "mad.1";
  sura_nvs[   8 ] =  75 ; sura_rev[   8 ] = "mad.1";
  sura_nvs[  33 ] =  73 ; sura_rev[  33 ] = "mad.1";
  sura_nvs[  24 ] =  64 ; sura_rev[  24 ] = "mad.1";
  sura_nvs[  13 ] =  43 ; sura_rev[  13 ] = "mad.1";
  sura_nvs[  47 ] =  38 ; sura_rev[  47 ] = "mad.1";
  sura_nvs[  76 ] =  31 ; sura_rev[  76 ] = "mad.1";
  sura_nvs[  48 ] =  29 ; sura_rev[  48 ] = "mad.1";
  sura_nvs[  57 ] =  29 ; sura_rev[  57 ] = "mad.1";
  sura_nvs[  59 ] =  24 ; sura_rev[  59 ] = "mad.1";
  sura_nvs[  58 ] =  22 ; sura_rev[  58 ] = "mad.1";
  sura_nvs[  49 ] =  18 ; sura_rev[  49 ] = "mad.1";
  sura_nvs[  64 ] =  18 ; sura_rev[  64 ] = "mad.1";
  sura_nvs[  61 ] =  14 ; sura_rev[  61 ] = "mad.1";
  sura_nvs[  60 ] =  13 ; sura_rev[  60 ] = "mad.1";
  sura_nvs[  65 ] =  12 ; sura_rev[  65 ] = "mad.1";
  sura_nvs[  66 ] =  12 ; sura_rev[  66 ] = "mad.1";
  sura_nvs[  62 ] =  11 ; sura_rev[  62 ] = "mad.1";
  sura_nvs[  63 ] =  11 ; sura_rev[  63 ] = "mad.1";
  sura_nvs[  98 ] =   8 ; sura_rev[  98 ] = "mad.1";
  sura_nvs[  99 ] =   8 ; sura_rev[  99 ] = "mad.1";
  sura_nvs[ 110 ] =   3 ; sura_rev[ 110 ] = "mad.1";
  
  sura_nvs[  26 ] = 227 ; sura_rev[  26 ] = "mec.1";
  sura_nvs[   7 ] = 206 ; sura_rev[   7 ] = "mec.1";
  sura_nvs[  37 ] = 182 ; sura_rev[  37 ] = "mec.1";
  sura_nvs[   6 ] = 165 ; sura_rev[   6 ] = "mec.1";
  sura_nvs[  20 ] = 135 ; sura_rev[  20 ] = "mec.1";
  sura_nvs[  16 ] = 128 ; sura_rev[  16 ] = "mec.1";
  sura_nvs[  11 ] = 123 ; sura_rev[  11 ] = "mec.1";
  sura_nvs[  23 ] = 118 ; sura_rev[  23 ] = "mec.1";
  sura_nvs[  21 ] = 112 ; sura_rev[  21 ] = "mec.1";
  sura_nvs[  12 ] = 111 ; sura_rev[  12 ] = "mec.1";
  sura_nvs[  17 ] = 111 ; sura_rev[  17 ] = "mec.1";
  sura_nvs[  18 ] = 110 ; sura_rev[  18 ] = "mec.1";
  sura_nvs[  10 ] = 109 ; sura_rev[  10 ] = "mec.1";
  sura_nvs[  15 ] =  99 ; sura_rev[  15 ] = "mec.1";
  sura_nvs[  19 ] =  98 ; sura_rev[  19 ] = "mec.1";
  sura_nvs[  56 ] =  96 ; sura_rev[  56 ] = "mec.1";
  sura_nvs[  27 ] =  93 ; sura_rev[  27 ] = "mec.1";
  sura_nvs[  43 ] =  89 ; sura_rev[  43 ] = "mec.1";
  sura_nvs[  28 ] =  88 ; sura_rev[  28 ] = "mec.1";
  sura_nvs[  38 ] =  88 ; sura_rev[  38 ] = "mec.1";
  sura_nvs[  40 ] =  85 ; sura_rev[  40 ] = "mec.1";
  sura_nvs[  36 ] =  83 ; sura_rev[  36 ] = "mec.1";
  sura_nvs[  25 ] =  77 ; sura_rev[  25 ] = "mec.1";
  sura_nvs[  39 ] =  75 ; sura_rev[  39 ] = "mec.1";
  sura_nvs[  29 ] =  69 ; sura_rev[  29 ] = "mec.1";
  sura_nvs[  53 ] =  62 ; sura_rev[  53 ] = "mec.1";
  sura_nvs[ 104 ] =  62 ; sura_rev[ 104 ] = "mec.1";
  sura_nvs[  30 ] =  60 ; sura_rev[  30 ] = "mec.1";
  sura_nvs[  51 ] =  60 ; sura_rev[  51 ] = "mec.1";
  sura_nvs[  44 ] =  59 ; sura_rev[  44 ] = "mec.1";
  sura_nvs[  74 ] =  56 ; sura_rev[  74 ] = "mec.1";
  sura_nvs[  54 ] =  55 ; sura_rev[  54 ] = "mec.1";
  sura_nvs[  34 ] =  54 ; sura_rev[  34 ] = "mec.1";
  sura_nvs[  41 ] =  54 ; sura_rev[  41 ] = "mec.1";
  sura_nvs[  42 ] =  53 ; sura_rev[  42 ] = "mec.1";
  sura_nvs[  14 ] =  52 ; sura_rev[  14 ] = "mec.1";
  sura_nvs[  68 ] =  52 ; sura_rev[  68 ] = "mec.1";
  sura_nvs[  69 ] =  52 ; sura_rev[  69 ] = "mec.1";
  sura_nvs[  77 ] =  50 ; sura_rev[  77 ] = "mec.1";
  sura_nvs[  52 ] =  49 ; sura_rev[  52 ] = "mec.1";
  sura_nvs[  79 ] =  46 ; sura_rev[  79 ] = "mec.1";
  sura_nvs[  35 ] =  45 ; sura_rev[  35 ] = "mec.1";
  sura_nvs[  50 ] =  45 ; sura_rev[  50 ] = "mec.1";
  sura_nvs[  70 ] =  44 ; sura_rev[  70 ] = "mec.1";
  sura_nvs[  80 ] =  42 ; sura_rev[  80 ] = "mec.1";
  sura_nvs[  75 ] =  40 ; sura_rev[  75 ] = "mec.1";
  sura_nvs[  78 ] =  40 ; sura_rev[  78 ] = "mec.1";
  sura_nvs[  45 ] =  37 ; sura_rev[  45 ] = "mec.1";
  sura_nvs[  83 ] =  36 ; sura_rev[  83 ] = "mec.1";
  sura_nvs[  46 ] =  35 ; sura_rev[  46 ] = "mec.1";
  sura_nvs[  31 ] =  34 ; sura_rev[  31 ] = "mec.1";
  sura_nvs[  32 ] =  30 ; sura_rev[  32 ] = "mec.1";
  sura_nvs[  67 ] =  30 ; sura_rev[  67 ] = "mec.1";
  sura_nvs[  89 ] =  30 ; sura_rev[  89 ] = "mec.1";
  sura_nvs[  81 ] =  29 ; sura_rev[  81 ] = "mec.1";
  sura_nvs[  71 ] =  28 ; sura_rev[  71 ] = "mec.1";
  sura_nvs[  72 ] =  28 ; sura_rev[  72 ] = "mec.1";
  sura_nvs[  88 ] =  26 ; sura_rev[  88 ] = "mec.1";
  sura_nvs[  84 ] =  25 ; sura_rev[  84 ] = "mec.1";
  sura_nvs[  85 ] =  22 ; sura_rev[  85 ] = "mec.1";
  sura_nvs[  92 ] =  21 ; sura_rev[  92 ] = "mec.1";
  sura_nvs[  73 ] =  20 ; sura_rev[  73 ] = "mec.1";
  sura_nvs[  90 ] =  20 ; sura_rev[  90 ] = "mec.1";
  sura_nvs[  82 ] =  19 ; sura_rev[  82 ] = "mec.1";
  sura_nvs[  87 ] =  19 ; sura_rev[  87 ] = "mec.1";
  sura_nvs[  96 ] =  19 ; sura_rev[  96 ] = "mec.1";
  sura_nvs[  86 ] =  17 ; sura_rev[  86 ] = "mec.1";
  sura_nvs[  91 ] =  15 ; sura_rev[  91 ] = "mec.1";
  sura_nvs[  93 ] =  11 ; sura_rev[  93 ] = "mec.1";
  sura_nvs[ 100 ] =  11 ; sura_rev[ 100 ] = "mec.1";
  sura_nvs[ 101 ] =  11 ; sura_rev[ 101 ] = "mec.1";
  sura_nvs[  94 ] =   8 ; sura_rev[  94 ] = "mec.1";
  sura_nvs[  95 ] =   8 ; sura_rev[  95 ] = "mec.1";
  sura_nvs[ 102 ] =   8 ; sura_rev[ 102 ] = "mec.1";
  sura_nvs[   1 ] =   7 ; sura_rev[   1 ] = "mec.1";
  sura_nvs[ 107 ] =   7 ; sura_rev[ 107 ] = "mec.1";
  sura_nvs[ 109 ] =   6 ; sura_rev[ 109 ] = "mec.1";
  sura_nvs[ 114 ] =   6 ; sura_rev[ 114 ] = "mec.1";
  sura_nvs[  97 ] =   5 ; sura_rev[  97 ] = "mec.1";
  sura_nvs[ 105 ] =   5 ; sura_rev[ 105 ] = "mec.1";
  sura_nvs[ 111 ] =   5 ; sura_rev[ 111 ] = "mec.1";
  sura_nvs[ 113 ] =   5 ; sura_rev[ 113 ] = "mec.1";
  sura_nvs[ 106 ] =   4 ; sura_rev[ 106 ] = "mec.1";
  sura_nvs[ 112 ] =   4 ; sura_rev[ 112 ] = "mec.1";
  sura_nvs[ 103 ] =   3 ; sura_rev[ 103 ] = "mec.1";
  sura_nvs[ 108 ] =   3 ; sura_rev[ 108 ] = "mec.1";

}