| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | # ##################################################################### Otakar Smrz, 2003/08/05 | 
| 2 |  |  |  |  |  |  | # | 
| 3 |  |  |  |  |  |  | # Encoding of Arabic: ArabTeX Notation by Klaus Lagally, ZDMG ################################# | 
| 4 |  |  |  |  |  |  |  | 
| 5 |  |  |  |  |  |  | package Encode::Arabic::ArabTeX::ZDMG; | 
| 6 |  |  |  |  |  |  |  | 
| 7 |  |  |  |  |  |  | our $VERSION = '14.1'; | 
| 8 |  |  |  |  |  |  |  | 
| 9 | 2 |  |  | 2 |  | 16131 | use 5.008; | 
|  | 2 |  |  |  |  | 6 |  | 
|  | 2 |  |  |  |  | 84 |  | 
| 10 |  |  |  |  |  |  |  | 
| 11 | 2 |  |  | 2 |  | 11 | use strict; | 
|  | 2 |  |  |  |  | 7 |  | 
|  | 2 |  |  |  |  | 74 |  | 
| 12 | 2 |  |  | 2 |  | 9 | use warnings; | 
|  | 2 |  |  |  |  | 3 |  | 
|  | 2 |  |  |  |  | 67 |  | 
| 13 |  |  |  |  |  |  |  | 
| 14 | 2 |  |  | 2 |  | 11 | use Carp; | 
|  | 2 |  |  |  |  | 2 |  | 
|  | 2 |  |  |  |  | 165 |  | 
| 15 |  |  |  |  |  |  |  | 
| 16 | 2 |  |  | 2 |  | 774 | use Encode::Arabic::ArabTeX (); | 
|  | 2 |  |  |  |  | 4 |  | 
|  | 2 |  |  |  |  | 69 |  | 
| 17 | 2 |  |  | 2 |  | 13 | use base 'Encode::Arabic::ArabTeX'; | 
|  | 2 |  |  |  |  | 4 |  | 
|  | 2 |  |  |  |  | 259 |  | 
| 18 |  |  |  |  |  |  |  | 
| 19 |  |  |  |  |  |  |  | 
| 20 | 2 |  |  | 2 |  | 16 | use Encode::Encoding; | 
|  | 2 |  |  |  |  | 9 |  | 
|  | 2 |  |  |  |  | 87 |  | 
| 21 | 2 |  |  | 2 |  | 14 | use base 'Encode::Encoding'; | 
|  | 2 |  |  |  |  | 3 |  | 
|  | 2 |  |  |  |  | 127 |  | 
| 22 |  |  |  |  |  |  |  | 
| 23 |  |  |  |  |  |  | __PACKAGE__->Define('ZDMG', 'ArabTeX-ZDMG'); | 
| 24 |  |  |  |  |  |  |  | 
| 25 |  |  |  |  |  |  |  | 
| 26 | 2 |  |  | 2 |  | 19 | use Encode::Mapper ':others', ':silent', ':join'; | 
|  | 2 |  |  |  |  | 4 |  | 
|  | 2 |  |  |  |  | 17 |  | 
| 27 |  |  |  |  |  |  |  | 
| 28 |  |  |  |  |  |  |  | 
| 29 |  |  |  |  |  |  | our %options;               # records of options per package .. global register | 
| 30 |  |  |  |  |  |  | our %option;                # options of the caller package .. used with local | 
| 31 |  |  |  |  |  |  |  | 
| 32 |  |  |  |  |  |  |  | 
| 33 |  |  |  |  |  |  | sub import {            # perform import as if Encode were used one level before this module | 
| 34 |  |  |  |  |  |  |  | 
| 35 | 2 | 100 | 66 | 2 |  | 27 | if (defined $_[1] and $_[1] eq ':xml') {    # interfere little with possible Encode's options | 
| 36 |  |  |  |  |  |  |  | 
| 37 | 254 |  |  |  |  | 313 | Encode::Mapper->options ( | 
| 38 |  |  |  |  |  |  |  | 
| 39 |  |  |  |  |  |  | 'override' => [             # override rules of these LHS .. no other tricks ^^ | 
| 40 |  |  |  |  |  |  |  | 
| 41 |  |  |  |  |  |  | (                   # combinations of '<' and '>' with the other bytes | 
| 42 |  |  |  |  |  |  | map { | 
| 43 |  |  |  |  |  |  |  | 
| 44 | 1 |  |  |  |  | 6 | my $x = chr $_; | 
| 45 |  |  |  |  |  |  |  | 
| 46 | 254 |  |  |  |  | 1327 | "<" . $x, [ "<" . $x, ">" ],    # propagate the '>' sign implying .. | 
| 47 |  |  |  |  |  |  | ">" . $x, [ $x, ">" ],          # .. preservation of the bytes | 
| 48 |  |  |  |  |  |  |  | 
| 49 |  |  |  |  |  |  | } 0x00 .. 0x3B, 0x3D, 0x3F .. 0xFF | 
| 50 |  |  |  |  |  |  | ), | 
| 51 |  |  |  |  |  |  |  | 
| 52 |  |  |  |  |  |  | ">>",           ">",                # stop the whole process .. | 
| 53 |  |  |  |  |  |  | "<>",           "<>",               # .. do not even start it | 
| 54 |  |  |  |  |  |  |  | 
| 55 |  |  |  |  |  |  | "><",           [ "<", ">" ],       # rather than nested '<' and '>', .. | 
| 56 |  |  |  |  |  |  | "<<",           [ "<<", ">" ], | 
| 57 |  |  |  |  |  |  |  | 
| 58 |  |  |  |  |  |  | ">\\<",         [ "<", ">" ],       # .. prefer these escape sequences | 
| 59 |  |  |  |  |  |  | ">\\\\",        [ "\\", ">" ], | 
| 60 |  |  |  |  |  |  | ">\\>",         [ ">", ">" ], | 
| 61 |  |  |  |  |  |  |  | 
| 62 |  |  |  |  |  |  | ">",            ">",                # singular symbols may migrate right .. | 
| 63 |  |  |  |  |  |  | "<",            "<",                # .. or preserve the rest of the data | 
| 64 |  |  |  |  |  |  | ] | 
| 65 |  |  |  |  |  |  |  | 
| 66 |  |  |  |  |  |  | ); | 
| 67 |  |  |  |  |  |  |  | 
| 68 | 1 |  |  |  |  | 118 | splice @_, 1, 1; | 
| 69 |  |  |  |  |  |  | } | 
| 70 |  |  |  |  |  |  |  | 
| 71 | 2 | 50 | 33 |  |  | 11 | if (defined $_[1] and $_[1] eq ':describe') { | 
| 72 |  |  |  |  |  |  |  | 
| 73 | 0 |  |  |  |  | 0 | __PACKAGE__->options($_[1]); | 
| 74 | 0 |  |  |  |  | 0 | splice @_, 1, 1; | 
| 75 |  |  |  |  |  |  | } | 
| 76 |  |  |  |  |  |  |  | 
| 77 | 2 |  |  |  |  | 20 | require Encode; | 
| 78 |  |  |  |  |  |  |  | 
| 79 | 2 | 100 |  |  |  | 157 | push @Encode::ISA, 'Exporter' unless Encode->can('export_to_level'); | 
| 80 |  |  |  |  |  |  |  | 
| 81 | 2 |  |  |  |  | 285 | Encode->export_to_level(1, @_); | 
| 82 |  |  |  |  |  |  | } | 
| 83 |  |  |  |  |  |  |  | 
| 84 |  |  |  |  |  |  |  | 
| 85 |  |  |  |  |  |  | sub encoder ($;%) { | 
| 86 | 1 |  |  | 1 | 1 | 1339 | my ($cls, %opt) = @_; | 
| 87 |  |  |  |  |  |  |  | 
| 88 | 1 |  |  |  |  | 2 | my $encoder = []; | 
| 89 |  |  |  |  |  |  |  | 
| 90 |  |  |  |  |  |  |  | 
| 91 | 1 |  |  |  |  | 30 | $encoder->[0] = Encode::Mapper->compile ( | 
| 92 |  |  |  |  |  |  |  | 
| 93 |  |  |  |  |  |  | [ | 
| 94 |  |  |  |  |  |  | 'silent' => 0, | 
| 95 |  |  |  |  |  |  | ], | 
| 96 |  |  |  |  |  |  |  | 
| 97 |  |  |  |  |  |  | "\x{0054}",         "\\cap t",          "\x{0074}",         "t", | 
| 98 |  |  |  |  |  |  |  | 
| 99 |  |  |  |  |  |  | "\x{1E6E}",         "\\cap _t",         "\x{1E6F}",         "_t", | 
| 100 |  |  |  |  |  |  | "\x{0054}\x{0331}", "\\cap _t",         "\x{0074}\x{0331}", "_t", | 
| 101 |  |  |  |  |  |  |  | 
| 102 |  |  |  |  |  |  | "\x{0044}",         "\\cap d",          "\x{0064}",         "d", | 
| 103 |  |  |  |  |  |  |  | 
| 104 |  |  |  |  |  |  | "\x{1E0E}",         "\\cap _d",         "\x{1E0F}",         "_d", | 
| 105 |  |  |  |  |  |  | "\x{0044}\x{0331}", "\\cap _d",         "\x{0064}\x{0331}", "_d", | 
| 106 |  |  |  |  |  |  |  | 
| 107 |  |  |  |  |  |  | "\x{0052}",         "\\cap r",          "\x{0072}",         "r", | 
| 108 |  |  |  |  |  |  |  | 
| 109 |  |  |  |  |  |  | "\x{005A}",         "\\cap z",          "\x{007A}",         "z", | 
| 110 |  |  |  |  |  |  |  | 
| 111 |  |  |  |  |  |  | "\x{0053}",         "\\cap s",          "\x{0073}",         "s", | 
| 112 |  |  |  |  |  |  |  | 
| 113 |  |  |  |  |  |  | "\x{0160}",         "\\cap ^s",         "\x{0161}",         "^s", | 
| 114 |  |  |  |  |  |  | "\x{0053}\x{030C}", "\\cap ^s",         "\x{0073}\x{030C}", "^s", | 
| 115 |  |  |  |  |  |  |  | 
| 116 |  |  |  |  |  |  | "\x{1E62}",         "\\cap .s",         "\x{1E63}",         ".s", | 
| 117 |  |  |  |  |  |  | "\x{0053}\x{0323}", "\\cap .s",         "\x{0073}\x{0323}", ".s", | 
| 118 |  |  |  |  |  |  |  | 
| 119 |  |  |  |  |  |  | "\x{1E0C}",         "\\cap .d",         "\x{1E0D}",         ".d", | 
| 120 |  |  |  |  |  |  | "\x{0044}\x{0323}", "\\cap .d",         "\x{0064}\x{0323}", ".d", | 
| 121 |  |  |  |  |  |  |  | 
| 122 |  |  |  |  |  |  | "\x{1E6C}",         "\\cap .t",         "\x{1E6D}",         ".t", | 
| 123 |  |  |  |  |  |  | "\x{0054}\x{0323}", "\\cap .t",         "\x{0074}\x{0323}", ".t", | 
| 124 |  |  |  |  |  |  |  | 
| 125 |  |  |  |  |  |  | "\x{1E92}",         "\\cap .z",         "\x{1E93}",         ".z", | 
| 126 |  |  |  |  |  |  | "\x{005A}\x{0323}", "\\cap .z",         "\x{007A}\x{0323}", ".z", | 
| 127 |  |  |  |  |  |  |  | 
| 128 |  |  |  |  |  |  | "\x{004C}",         "\\cap l",          "\x{006C}",         "l", | 
| 129 |  |  |  |  |  |  |  | 
| 130 |  |  |  |  |  |  | "\x{004E}",         "\\cap n",          "\x{006E}",         "n", | 
| 131 |  |  |  |  |  |  |  | 
| 132 |  |  |  |  |  |  | # "\x{0054}",         "\\cap T",          "\x{0074}",         "T", | 
| 133 |  |  |  |  |  |  | # "\x{004E}",         "\\cap N",          "\x{006E}",         "N", | 
| 134 |  |  |  |  |  |  | # "\x{0057}",         "\\cap W",          "\x{0077}",         "W", | 
| 135 |  |  |  |  |  |  |  | 
| 136 |  |  |  |  |  |  | "\x{0041}",         "\\cap a",          "\x{0061}",         "a", | 
| 137 |  |  |  |  |  |  |  | 
| 138 |  |  |  |  |  |  | "\x{0045}",         "\\cap e",          "\x{0065}",         "e", | 
| 139 |  |  |  |  |  |  |  | 
| 140 |  |  |  |  |  |  | "\x{0049}",         "\\cap i",          "\x{0069}",         "i", | 
| 141 |  |  |  |  |  |  |  | 
| 142 |  |  |  |  |  |  | "\x{004F}",         "\\cap o",          "\x{006F}",         "o", | 
| 143 |  |  |  |  |  |  |  | 
| 144 |  |  |  |  |  |  | "\x{0055}",         "\\cap u",          "\x{0075}",         "u", | 
| 145 |  |  |  |  |  |  |  | 
| 146 |  |  |  |  |  |  | "\x{0100}",         "\\cap A",          "\x{0101}",         "A", | 
| 147 |  |  |  |  |  |  | "\x{0041}\x{0304}", "\\cap A",          "\x{0061}\x{0304}", "A", | 
| 148 |  |  |  |  |  |  |  | 
| 149 |  |  |  |  |  |  | "\x{0112}",         "\\cap E",          "\x{0113}",         "E", | 
| 150 |  |  |  |  |  |  | "\x{0045}\x{0304}", "\\cap E",          "\x{0065}\x{0304}", "E", | 
| 151 |  |  |  |  |  |  |  | 
| 152 |  |  |  |  |  |  | "\x{012A}",         "\\cap I",          "\x{012B}",         "I", | 
| 153 |  |  |  |  |  |  | "\x{0049}\x{0304}", "\\cap I",          "\x{0069}\x{0304}", "I", | 
| 154 |  |  |  |  |  |  |  | 
| 155 |  |  |  |  |  |  | "\x{014C}",         "\\cap O",          "\x{014D}",         "O", | 
| 156 |  |  |  |  |  |  | "\x{004F}\x{0304}", "\\cap O",          "\x{006F}\x{0304}", "O", | 
| 157 |  |  |  |  |  |  |  | 
| 158 |  |  |  |  |  |  | "\x{016A}",         "\\cap U",          "\x{016B}",         "U", | 
| 159 |  |  |  |  |  |  | "\x{0055}\x{0304}", "\\cap U",          "\x{0075}\x{0304}", "U", | 
| 160 |  |  |  |  |  |  |  | 
| 161 |  |  |  |  |  |  | "\x{02BC}",         "\"", | 
| 162 |  |  |  |  |  |  | "\x{02BE}",         "'", | 
| 163 |  |  |  |  |  |  | "\x{02BF}",         "`", | 
| 164 |  |  |  |  |  |  |  | 
| 165 |  |  |  |  |  |  | "\x{0042}",         "\\cap b",          "\x{0062}",         "b", | 
| 166 |  |  |  |  |  |  |  | 
| 167 |  |  |  |  |  |  | "\x{01E6}",         "\\cap ^g",         "\x{01E7}",         "^g", | 
| 168 |  |  |  |  |  |  | "\x{0047}\x{030C}", "\\cap ^g",         "\x{0067}\x{030C}", "^g", | 
| 169 |  |  |  |  |  |  |  | 
| 170 |  |  |  |  |  |  | "\x{1E24}",         "\\cap .h",         "\x{1E25}",         ".h", | 
| 171 |  |  |  |  |  |  | "\x{0048}\x{0323}", "\\cap .h",         "\x{0068}\x{0323}", ".h", | 
| 172 |  |  |  |  |  |  |  | 
| 173 |  |  |  |  |  |  | "\x{1E2A}",         "\\cap _h",         "\x{1E2B}",         "_h", | 
| 174 |  |  |  |  |  |  | "\x{0048}\x{032E}", "\\cap _h",         "\x{0068}\x{032E}", "_h", | 
| 175 |  |  |  |  |  |  |  | 
| 176 |  |  |  |  |  |  | "\x{0120}",         "\\cap .g",         "\x{0121}",         ".g", | 
| 177 |  |  |  |  |  |  | "\x{0047}\x{0307}", "\\cap .g",         "\x{0067}\x{0307}", ".g", | 
| 178 |  |  |  |  |  |  |  | 
| 179 |  |  |  |  |  |  | "\x{0046}",         "\\cap f",          "\x{0066}",         "f", | 
| 180 |  |  |  |  |  |  |  | 
| 181 |  |  |  |  |  |  | "\x{0051}",         "\\cap q",          "\x{0071}",         "q", | 
| 182 |  |  |  |  |  |  |  | 
| 183 |  |  |  |  |  |  | "\x{004B}",         "\\cap k",          "\x{006B}",         "k", | 
| 184 |  |  |  |  |  |  |  | 
| 185 |  |  |  |  |  |  | "\x{004D}",         "\\cap m",          "\x{006D}",         "m", | 
| 186 |  |  |  |  |  |  |  | 
| 187 |  |  |  |  |  |  | "\x{0048}",         "\\cap h",          "\x{0068}",         "h", | 
| 188 |  |  |  |  |  |  |  | 
| 189 |  |  |  |  |  |  | "\x{0057}",         "\\cap w",          "\x{0077}",         "w", | 
| 190 |  |  |  |  |  |  |  | 
| 191 |  |  |  |  |  |  | "\x{0059}",         "\\cap y",          "\x{0079}",         "y", | 
| 192 |  |  |  |  |  |  |  | 
| 193 |  |  |  |  |  |  |  | 
| 194 |  |  |  |  |  |  | "\x{0050}",         "\\cap p",          "\x{0070}",         "p", | 
| 195 |  |  |  |  |  |  |  | 
| 196 |  |  |  |  |  |  | "\x{0056}",         "\\cap v",          "\x{0076}",         "v", | 
| 197 |  |  |  |  |  |  |  | 
| 198 |  |  |  |  |  |  | "\x{0047}",         "\\cap g",          "\x{0067}",         "g", | 
| 199 |  |  |  |  |  |  |  | 
| 200 |  |  |  |  |  |  |  | 
| 201 |  |  |  |  |  |  | "\x{0043}",         "\\cap c",          "\x{0063}",         "c", | 
| 202 |  |  |  |  |  |  |  | 
| 203 |  |  |  |  |  |  | "\x{010C}",         "\\cap ^c",         "\x{010D}",         "^c", | 
| 204 |  |  |  |  |  |  | "\x{0043}\x{030C}", "\\cap ^c",         "\x{0063}\x{030C}", "^c", | 
| 205 |  |  |  |  |  |  |  | 
| 206 |  |  |  |  |  |  | "\x{0106}",         "\\cap ,c",         "\x{0107}",         ",c", | 
| 207 |  |  |  |  |  |  | "\x{0043}\x{0301}", "\\cap ,c",         "\x{0063}\x{0301}", ",c", | 
| 208 |  |  |  |  |  |  |  | 
| 209 |  |  |  |  |  |  | "\x{017D}",         "\\cap ^z",         "\x{017E}",         "^z", | 
| 210 |  |  |  |  |  |  | "\x{005A}\x{030C}", "\\cap ^z",         "\x{007A}\x{030C}", "^z", | 
| 211 |  |  |  |  |  |  |  | 
| 212 |  |  |  |  |  |  | "\x{00D1}",         "\\cap ^n",         "\x{00F1}",         "^n", | 
| 213 |  |  |  |  |  |  | "\x{004E}\x{0303}", "\\cap ^n",         "\x{006E}\x{0303}", "^n", | 
| 214 |  |  |  |  |  |  |  | 
| 215 |  |  |  |  |  |  | "\x{004C}\x{0303}", "\\cap ^l",         "\x{006C}\x{0303}", "^l", | 
| 216 |  |  |  |  |  |  |  | 
| 217 |  |  |  |  |  |  | "\x{0052}\x{0307}", "\\cap .r",         "\x{0072}\x{0307}", ".r", | 
| 218 |  |  |  |  |  |  |  | 
| 219 |  |  |  |  |  |  | ); | 
| 220 |  |  |  |  |  |  |  | 
| 221 |  |  |  |  |  |  |  | 
| 222 | 2 |  |  | 2 |  | 14 | no strict 'refs'; | 
|  | 2 |  |  |  |  | 4 |  | 
|  | 2 |  |  |  |  | 6020 |  | 
| 223 |  |  |  |  |  |  |  | 
| 224 | 1 |  |  |  |  | 3 | ${ $cls . '::encoder' } = $encoder; | 
|  | 1 |  |  |  |  | 5 |  | 
| 225 |  |  |  |  |  |  |  | 
| 226 | 1 | 50 |  |  |  | 4 | if ($option{'describe'}) { | 
| 227 |  |  |  |  |  |  |  | 
| 228 | 0 |  |  |  |  | 0 | $_->describe('') foreach @{${ $cls . '::encoder' }}; | 
|  | 0 |  |  |  |  | 0 |  | 
|  | 0 |  |  |  |  | 0 |  | 
| 229 |  |  |  |  |  |  | } | 
| 230 |  |  |  |  |  |  |  | 
| 231 | 1 |  |  |  |  | 1 | return ${ $cls . '::encoder' }; | 
|  | 1 |  |  |  |  | 5 |  | 
| 232 |  |  |  |  |  |  | } | 
| 233 |  |  |  |  |  |  |  | 
| 234 |  |  |  |  |  |  |  | 
| 235 |  |  |  |  |  |  | sub decoder ($;$$) { | 
| 236 | 1 |  |  | 1 | 1 | 8 | my ($cls, undef, undef) = @_; | 
| 237 |  |  |  |  |  |  |  | 
| 238 | 1 |  |  |  |  | 2 | my $decoder = []; | 
| 239 |  |  |  |  |  |  |  | 
| 240 |  |  |  |  |  |  |  | 
| 241 | 1 |  |  |  |  | 23 | my @sunny = ( | 
| 242 |  |  |  |  |  |  | [   "t",        "\x{0074}"          ], | 
| 243 |  |  |  |  |  |  | [   "_t",       "\x{0074}\x{0331}"  ],  #   "\x{1E6F}" | 
| 244 |  |  |  |  |  |  | [   "d",        "\x{0064}"          ], | 
| 245 |  |  |  |  |  |  | [   "_d",       "\x{0064}\x{0331}"  ],  #   "\x{1E0F}" | 
| 246 |  |  |  |  |  |  | [   "r",        "\x{0072}"          ], | 
| 247 |  |  |  |  |  |  | [   "z",        "\x{007A}"          ], | 
| 248 |  |  |  |  |  |  | [   "s",        "\x{0073}"          ], | 
| 249 |  |  |  |  |  |  | [   "^s",       "\x{0073}\x{030C}"  ],  #   "\x{0161}" | 
| 250 |  |  |  |  |  |  | [   ".s",       "\x{0073}\x{0323}"  ],  #   "\x{1E63}" | 
| 251 |  |  |  |  |  |  | [   ".d",       "\x{0064}\x{0323}"  ],  #   "\x{1E0D}" | 
| 252 |  |  |  |  |  |  | [   ".t",       "\x{0074}\x{0323}"  ],  #   "\x{1E6D}" | 
| 253 |  |  |  |  |  |  | [   ".z",       "\x{007A}\x{0323}"  ],  #   "\x{1E93}" | 
| 254 |  |  |  |  |  |  | [   "l",        "\x{006C}"          ], | 
| 255 |  |  |  |  |  |  | [   "n",        "\x{006E}"          ], | 
| 256 |  |  |  |  |  |  | ); | 
| 257 |  |  |  |  |  |  |  | 
| 258 |  |  |  |  |  |  |  | 
| 259 | 1 |  |  |  |  | 6 | my @extra = ( | 
| 260 |  |  |  |  |  |  | [   "T",        "\x{0074}"          ], | 
| 261 |  |  |  |  |  |  | [   "H",        "\x{0068}"          ],  #   "" | 
| 262 |  |  |  |  |  |  | [   "N",        "\x{006E}"          ], | 
| 263 |  |  |  |  |  |  | [   "W",        "\x{0077}"          ],  #   "" | 
| 264 |  |  |  |  |  |  | ); | 
| 265 |  |  |  |  |  |  |  | 
| 266 |  |  |  |  |  |  |  | 
| 267 | 1 |  |  |  |  | 17 | my @vowel = ( | 
| 268 |  |  |  |  |  |  | [   "a",        "\x{0061}"          ], | 
| 269 |  |  |  |  |  |  | [   "_a",       "\x{0061}\x{0304}"  ],  #   "\x{0101}" | 
| 270 |  |  |  |  |  |  | [   "_aA",      "\x{0061}\x{0304}"  ],  #   "\x{0101}" | 
| 271 |  |  |  |  |  |  | [   "_aY",      "\x{0061}\x{0304}"  ],  #   "\x{0101}" | 
| 272 |  |  |  |  |  |  | [   "_aU",      "\x{0061}\x{0304}"  ],  #   "\x{0101}" | 
| 273 |  |  |  |  |  |  | [   "_aI",      "\x{0061}\x{0304}"  ],  #   "\x{0101}" | 
| 274 |  |  |  |  |  |  | [   "A",        "\x{0061}\x{0304}"  ],  #   "\x{0101}" | 
| 275 |  |  |  |  |  |  | [   "^A",       "\x{0061}\x{0304}"  ],  #   "\x{0101}" | 
| 276 |  |  |  |  |  |  | [   "_A",       "\x{0061}\x{0304}"  ],  #   "\x{0101}" | 
| 277 |  |  |  |  |  |  | [   "e",        "\x{0065}"          ], | 
| 278 |  |  |  |  |  |  | [   "E",        "\x{0065}\x{0304}"  ],  #   "\x{0113}" | 
| 279 |  |  |  |  |  |  | [   "i",        "\x{0069}"          ], | 
| 280 |  |  |  |  |  |  | [   "_i",       "\x{0069}\x{0304}"  ],  #   "\x{012B}" | 
| 281 |  |  |  |  |  |  | [   "I",        "\x{0069}\x{0304}"  ],  #   "\x{012B}" | 
| 282 |  |  |  |  |  |  | [   "^I",       "\x{0069}\x{0304}"  ],  #   "\x{012B}" | 
| 283 |  |  |  |  |  |  | [   "_I",       "\x{0069}"          ], | 
| 284 |  |  |  |  |  |  | [   "o",        "\x{006F}"          ], | 
| 285 |  |  |  |  |  |  | [   "O",        "\x{006F}\x{0304}"  ],  #   "\x{014D}" | 
| 286 |  |  |  |  |  |  | [   "u",        "\x{0075}"          ], | 
| 287 |  |  |  |  |  |  | [   "_u",       "\x{0075}\x{0304}"  ],  #   "\x{016B}" | 
| 288 |  |  |  |  |  |  | [   "U",        "\x{0075}\x{0304}"  ],  #   "\x{016B}" | 
| 289 |  |  |  |  |  |  | [   "^U",       "\x{0075}\x{0304}"  ],  #   "\x{016B}" | 
| 290 |  |  |  |  |  |  | [   "_U",       "\x{0075}"          ], | 
| 291 |  |  |  |  |  |  | [   "Y",        "\x{0061}\x{0304}"  ],  #   "\x{0101}" | 
| 292 |  |  |  |  |  |  | ); | 
| 293 |  |  |  |  |  |  |  | 
| 294 |  |  |  |  |  |  |  | 
| 295 | 1 |  |  |  |  | 4 | my @minor = ( | 
| 296 |  |  |  |  |  |  | [   "'",        "\x{02BE}"          ],  #   "\x{02BC}" | 
| 297 |  |  |  |  |  |  | [   "`",        "\x{02BF}"          ],  #   "\x{02BB}" | 
| 298 |  |  |  |  |  |  | ); | 
| 299 |  |  |  |  |  |  |  | 
| 300 |  |  |  |  |  |  |  | 
| 301 | 1 |  |  |  |  | 5 | my @empty = ( | 
| 302 |  |  |  |  |  |  | [   "\"",       "",                 ],  #   "\x{02BC}" | 
| 303 |  |  |  |  |  |  | [   "|",        "",                 ], | 
| 304 |  |  |  |  |  |  | [   "B",        "",                 ], | 
| 305 |  |  |  |  |  |  | ); | 
| 306 |  |  |  |  |  |  |  | 
| 307 |  |  |  |  |  |  |  | 
| 308 | 1 |  |  |  |  | 16 | my @moony = ( | 
| 309 |  |  |  |  |  |  | [   "b",        "\x{0062}"          ], | 
| 310 |  |  |  |  |  |  | [   "^g",       "\x{0067}\x{030C}"  ],  #   "\x{01E7}" | 
| 311 |  |  |  |  |  |  | [   ".h",       "\x{0068}\x{0323}"  ],  #   "\x{1E25}" | 
| 312 |  |  |  |  |  |  | [   "_h",       "\x{0068}\x{032E}"  ],  #   "\x{1E2B}" | 
| 313 |  |  |  |  |  |  | [   ".g",       "\x{0067}\x{0307}"  ],  #   "\x{0121}" | 
| 314 |  |  |  |  |  |  | [   "f",        "\x{0066}"          ], | 
| 315 |  |  |  |  |  |  | [   "q",        "\x{0071}"          ], | 
| 316 |  |  |  |  |  |  | [   "k",        "\x{006B}"          ], | 
| 317 |  |  |  |  |  |  | [   "m",        "\x{006D}"          ], | 
| 318 |  |  |  |  |  |  | [   "h",        "\x{0068}"          ], | 
| 319 |  |  |  |  |  |  | [   "w",        "\x{0077}"          ], | 
| 320 |  |  |  |  |  |  | [   "y",        "\x{0079}"          ], | 
| 321 |  |  |  |  |  |  |  | 
| 322 |  |  |  |  |  |  | [   "p",        "\x{0070}"          ], | 
| 323 |  |  |  |  |  |  | [   "v",        "\x{0076}"          ], | 
| 324 |  |  |  |  |  |  | [   "g",        "\x{0067}"          ], | 
| 325 |  |  |  |  |  |  |  | 
| 326 |  |  |  |  |  |  | [   "c",        "\x{0063}"          ], | 
| 327 |  |  |  |  |  |  | [   "^c",       "\x{0063}\x{030C}"  ],  #   "\x{010D}" | 
| 328 |  |  |  |  |  |  | [   ",c",       "\x{0063}\x{0301}"  ],  #   "\x{0107}" | 
| 329 |  |  |  |  |  |  | [   "^z",       "\x{007A}\x{030C}"  ],  #   "\x{017E}" | 
| 330 |  |  |  |  |  |  | [   "^n",       "\x{006E}\x{0303}"  ],  #   "\x{00F1}" | 
| 331 |  |  |  |  |  |  | [   "^l",       "\x{006C}\x{0303}"  ], | 
| 332 |  |  |  |  |  |  | [   ".r",       "\x{0072}\x{0307}"  ], | 
| 333 |  |  |  |  |  |  | ); | 
| 334 |  |  |  |  |  |  |  | 
| 335 |  |  |  |  |  |  |  | 
| 336 | 36 |  |  |  |  | 64 | $decoder->[0] = Encode::Mapper->compile ( | 
| 337 |  |  |  |  |  |  |  | 
| 338 |  |  |  |  |  |  | [ | 
| 339 |  |  |  |  |  |  | 'silent' => 0, | 
| 340 |  |  |  |  |  |  | ], | 
| 341 |  |  |  |  |  |  |  | 
| 342 |  |  |  |  |  |  | # definite article assimilation .. non-linguistic | 
| 343 |  |  |  |  |  |  | ( | 
| 344 |  |  |  |  |  |  | map { | 
| 345 |  |  |  |  |  |  |  | 
| 346 | 24 |  |  |  |  | 23 | "l-" . $_->[0] x 2, [ "", $_->[0] . "-" . $_->[0] ], | 
| 347 |  |  |  |  |  |  |  | 
| 348 |  |  |  |  |  |  | } @sunny, @moony | 
| 349 |  |  |  |  |  |  | ), | 
| 350 |  |  |  |  |  |  |  | 
| 351 |  |  |  |  |  |  | # initial vowel tying | 
| 352 |  |  |  |  |  |  | ( | 
| 353 |  |  |  |  |  |  | map { | 
| 354 |  |  |  |  |  |  |  | 
| 355 | 67 |  |  |  |  | 235 | my $x = $_; | 
| 356 |  |  |  |  |  |  |  | 
| 357 | 120 |  |  |  |  | 81 | map { | 
| 358 |  |  |  |  |  |  |  | 
| 359 | 24 |  |  |  |  | 23 | my $y = $_; | 
| 360 |  |  |  |  |  |  |  | 
| 361 | 1080 |  |  |  |  | 5767 | map { | 
| 362 |  |  |  |  |  |  |  | 
| 363 | 120 |  |  |  |  | 105 | $x->[0] . $_ . $y, $x->[1] . $_ . "\x{02BC}",  # "\x{02C8}" | 
| 364 |  |  |  |  |  |  |  | 
| 365 |  |  |  |  |  |  | "\\cap\x09" . $x->[0] . $_ . $y, ucfirst $x->[1] . $_ . "\x{02BC}",  # "\x{02C8}" | 
| 366 |  |  |  |  |  |  | "\\cap\x0A" . $x->[0] . $_ . $y, ucfirst $x->[1] . $_ . "\x{02BC}",  # "\x{02C8}" | 
| 367 |  |  |  |  |  |  | "\\cap\x0D" . $x->[0] . $_ . $y, ucfirst $x->[1] . $_ . "\x{02BC}",  # "\x{02C8}" | 
| 368 |  |  |  |  |  |  | "\\cap\x20" . $x->[0] . $_ . $y, ucfirst $x->[1] . $_ . "\x{02BC}",  # "\x{02C8}" | 
| 369 |  |  |  |  |  |  |  | 
| 370 |  |  |  |  |  |  | } "-", "\x09", "\x0A", "\x0D", "\x20", "\x0D\x0A", | 
| 371 |  |  |  |  |  |  | "\x20\x20", "\x20\x20\x20", "\x20\x20\x20\x20" | 
| 372 |  |  |  |  |  |  |  | 
| 373 |  |  |  |  |  |  | } "a", "e", "i", "o", "u" | 
| 374 |  |  |  |  |  |  |  | 
| 375 |  |  |  |  |  |  | } @vowel | 
| 376 |  |  |  |  |  |  | ), | 
| 377 |  |  |  |  |  |  |  | 
| 378 |  |  |  |  |  |  | # silence the silent | 
| 379 |  |  |  |  |  |  |  | 
| 380 |  |  |  |  |  |  | "_W",           "", | 
| 381 |  |  |  |  |  |  |  | 
| 382 |  |  |  |  |  |  | "WA",           [ "", "W" ], | 
| 383 |  |  |  |  |  |  |  | 
| 384 |  |  |  |  |  |  | "UW",           [ "", "U" ], | 
| 385 |  |  |  |  |  |  | "UA",           [ "", "U" ], | 
| 386 |  |  |  |  |  |  |  | 
| 387 |  |  |  |  |  |  | "NA",           [ "", "N" ], | 
| 388 |  |  |  |  |  |  | "NY",           [ "", "N" ], | 
| 389 |  |  |  |  |  |  | "NU",           [ "", "N" ], | 
| 390 |  |  |  |  |  |  | "N_A",          [ "", "N" ], | 
| 391 |  |  |  |  |  |  |  | 
| 392 |  |  |  |  |  |  | # regular capitalization | 
| 393 |  |  |  |  |  |  | ( | 
| 394 |  |  |  |  |  |  | map { | 
| 395 |  |  |  |  |  |  |  | 
| 396 | 39 |  |  |  |  | 410 | $_->[0], $_->[1], | 
| 397 |  |  |  |  |  |  |  | 
| 398 |  |  |  |  |  |  | "\\cap\x09" . $_->[0], ucfirst $_->[1], | 
| 399 |  |  |  |  |  |  | "\\cap\x0A" . $_->[0], ucfirst $_->[1], | 
| 400 |  |  |  |  |  |  | "\\cap\x0D" . $_->[0], ucfirst $_->[1], | 
| 401 |  |  |  |  |  |  | "\\cap\x20" . $_->[0], ucfirst $_->[1], | 
| 402 |  |  |  |  |  |  |  | 
| 403 |  |  |  |  |  |  | } @sunny, @moony, @empty, @vowel, @extra | 
| 404 |  |  |  |  |  |  | ), | 
| 405 |  |  |  |  |  |  |  | 
| 406 |  |  |  |  |  |  | ( | 
| 407 |  |  |  |  |  |  | map { | 
| 408 |  |  |  |  |  |  |  | 
| 409 | 39 |  |  |  |  | 34 | $_->[0] . "i", $_->[1] . "i", | 
| 410 |  |  |  |  |  |  | $_->[0] . "u", $_->[1] . "u", | 
| 411 |  |  |  |  |  |  |  | 
| 412 |  |  |  |  |  |  | "\\cap\x09" . $_->[0] . "i", ucfirst $_->[1] . "i", | 
| 413 |  |  |  |  |  |  | "\\cap\x0A" . $_->[0] . "i", ucfirst $_->[1] . "i", | 
| 414 |  |  |  |  |  |  | "\\cap\x0D" . $_->[0] . "i", ucfirst $_->[1] . "i", | 
| 415 |  |  |  |  |  |  | "\\cap\x20" . $_->[0] . "i", ucfirst $_->[1] . "i", | 
| 416 |  |  |  |  |  |  |  | 
| 417 |  |  |  |  |  |  | "\\cap\x09" . $_->[0] . "u", ucfirst $_->[1] . "u", | 
| 418 |  |  |  |  |  |  | "\\cap\x0A" . $_->[0] . "u", ucfirst $_->[1] . "u", | 
| 419 |  |  |  |  |  |  | "\\cap\x0D" . $_->[0] . "u", ucfirst $_->[1] . "u", | 
| 420 |  |  |  |  |  |  | "\\cap\x20" . $_->[0] . "u", ucfirst $_->[1] . "u", | 
| 421 |  |  |  |  |  |  |  | 
| 422 |  |  |  |  |  |  | } @sunny, @moony, @empty | 
| 423 |  |  |  |  |  |  | ), | 
| 424 |  |  |  |  |  |  |  | 
| 425 |  |  |  |  |  |  | ( | 
| 426 |  |  |  |  |  |  | map { | 
| 427 |  |  |  |  |  |  |  | 
| 428 | 2 |  |  |  |  | 4 | my $x = $_; | 
| 429 |  |  |  |  |  |  |  | 
| 430 | 195 |  |  |  |  | 2154 | map { | 
| 431 |  |  |  |  |  |  |  | 
| 432 | 39 |  |  |  |  | 38 | $x->[0] . "i" . $_, [ $x->[1], "i" . $_ ], | 
| 433 |  |  |  |  |  |  | $x->[0] . "u" . $_, [ $x->[1], "u" . $_ ], | 
| 434 |  |  |  |  |  |  |  | 
| 435 |  |  |  |  |  |  | "\\cap\x09" . $x->[0] . "i" . $_, [ ucfirst $x->[1], "i" . $_ ], | 
| 436 |  |  |  |  |  |  | "\\cap\x0A" . $x->[0] . "i" . $_, [ ucfirst $x->[1], "i" . $_ ], | 
| 437 |  |  |  |  |  |  | "\\cap\x0D" . $x->[0] . "i" . $_, [ ucfirst $x->[1], "i" . $_ ], | 
| 438 |  |  |  |  |  |  | "\\cap\x20" . $x->[0] . "i" . $_, [ ucfirst $x->[1], "i" . $_ ], | 
| 439 |  |  |  |  |  |  |  | 
| 440 |  |  |  |  |  |  | "\\cap\x09" . $x->[0] . "u" . $_, [ ucfirst $x->[1], "u" . $_ ], | 
| 441 |  |  |  |  |  |  | "\\cap\x0A" . $x->[0] . "u" . $_, [ ucfirst $x->[1], "u" . $_ ], | 
| 442 |  |  |  |  |  |  | "\\cap\x0D" . $x->[0] . "u" . $_, [ ucfirst $x->[1], "u" . $_ ], | 
| 443 |  |  |  |  |  |  | "\\cap\x20" . $x->[0] . "u" . $_, [ ucfirst $x->[1], "u" . $_ ], | 
| 444 |  |  |  |  |  |  |  | 
| 445 |  |  |  |  |  |  | }   "-", "\x09", "\x0A", "\x0D", "\x20" | 
| 446 |  |  |  |  |  |  |  | 
| 447 |  |  |  |  |  |  | } @sunny, @moony, @empty | 
| 448 |  |  |  |  |  |  | ), | 
| 449 |  |  |  |  |  |  |  | 
| 450 |  |  |  |  |  |  | # initial vowel assimilation | 
| 451 |  |  |  |  |  |  | ( | 
| 452 |  |  |  |  |  |  | map { | 
| 453 |  |  |  |  |  |  |  | 
| 454 | 2 |  |  |  |  | 39 | my $fix = $_; | 
| 455 |  |  |  |  |  |  |  | 
| 456 | 50 |  |  |  |  | 571 | "i" . $_, [ "", "I" ], | 
| 457 |  |  |  |  |  |  | "u" . $_, [ "", "U" ], | 
| 458 |  |  |  |  |  |  |  | 
| 459 |  |  |  |  |  |  | "\\cap\x09" . "i" . $_, [ "", "\\cap\x09" . "I" ], | 
| 460 |  |  |  |  |  |  | "\\cap\x0A" . "i" . $_, [ "", "\\cap\x0A" . "I" ], | 
| 461 |  |  |  |  |  |  | "\\cap\x0D" . "i" . $_, [ "", "\\cap\x0D" . "I" ], | 
| 462 |  |  |  |  |  |  | "\\cap\x20" . "i" . $_, [ "", "\\cap\x20" . "I" ], | 
| 463 |  |  |  |  |  |  |  | 
| 464 |  |  |  |  |  |  | "\\cap\x09" . "u" . $_, [ "", "\\cap\x09" . "U" ], | 
| 465 |  |  |  |  |  |  | "\\cap\x0A" . "u" . $_, [ "", "\\cap\x0A" . "U" ], | 
| 466 |  |  |  |  |  |  | "\\cap\x0D" . "u" . $_, [ "", "\\cap\x0D" . "U" ], | 
| 467 |  |  |  |  |  |  | "\\cap\x20" . "u" . $_, [ "", "\\cap\x20" . "U" ], | 
| 468 |  |  |  |  |  |  |  | 
| 469 |  |  |  |  |  |  | map { | 
| 470 |  |  |  |  |  |  |  | 
| 471 | 2 |  |  |  |  | 17 | "i" . $fix . $_->[0], [ "i", $fix . $_->[0] ], | 
| 472 |  |  |  |  |  |  | "u" . $fix . $_->[0], [ "u", $fix . $_->[0] ], | 
| 473 |  |  |  |  |  |  |  | 
| 474 |  |  |  |  |  |  | "\\cap\x09" . "i" . $fix . $_->[0], [ "I", $fix . $_->[0] ], | 
| 475 |  |  |  |  |  |  | "\\cap\x0A" . "i" . $fix . $_->[0], [ "I", $fix . $_->[0] ], | 
| 476 |  |  |  |  |  |  | "\\cap\x0D" . "i" . $fix . $_->[0], [ "I", $fix . $_->[0] ], | 
| 477 |  |  |  |  |  |  | "\\cap\x20" . "i" . $fix . $_->[0], [ "I", $fix . $_->[0] ], | 
| 478 |  |  |  |  |  |  |  | 
| 479 |  |  |  |  |  |  | "\\cap\x09" . "u" . $fix . $_->[0], [ "U", $fix . $_->[0] ], | 
| 480 |  |  |  |  |  |  | "\\cap\x0A" . "u" . $fix . $_->[0], [ "U", $fix . $_->[0] ], | 
| 481 |  |  |  |  |  |  | "\\cap\x0D" . "u" . $fix . $_->[0], [ "U", $fix . $_->[0] ], | 
| 482 |  |  |  |  |  |  | "\\cap\x20" . "u" . $fix . $_->[0], [ "U", $fix . $_->[0] ], | 
| 483 |  |  |  |  |  |  |  | 
| 484 |  |  |  |  |  |  | } @vowel, $empty[0] | 
| 485 |  |  |  |  |  |  |  | 
| 486 |  |  |  |  |  |  | } "y", "w"  # "'" | 
| 487 |  |  |  |  |  |  | ), | 
| 488 |  |  |  |  |  |  |  | 
| 489 |  |  |  |  |  |  | # capitalization of minors | 
| 490 |  |  |  |  |  |  | ( | 
| 491 |  |  |  |  |  |  | map { | 
| 492 |  |  |  |  |  |  |  | 
| 493 | 2 |  |  |  |  | 3 | $_->[0], $_->[1], | 
| 494 |  |  |  |  |  |  |  | 
| 495 |  |  |  |  |  |  | $_->[0] . "i", $_->[1] . "i", | 
| 496 |  |  |  |  |  |  | $_->[0] . "u", $_->[1] . "u", | 
| 497 |  |  |  |  |  |  |  | 
| 498 |  |  |  |  |  |  | "\\cap\x09" . $_->[0], [ $_->[1], "\\cap " ], | 
| 499 |  |  |  |  |  |  | "\\cap\x0A" . $_->[0], [ $_->[1], "\\cap " ], | 
| 500 |  |  |  |  |  |  | "\\cap\x0D" . $_->[0], [ $_->[1], "\\cap " ], | 
| 501 |  |  |  |  |  |  | "\\cap\x20" . $_->[0], [ $_->[1], "\\cap " ], | 
| 502 |  |  |  |  |  |  |  | 
| 503 |  |  |  |  |  |  | "\\cap\x09" . $_->[0] . "i", $_->[1] . ucfirst "i", | 
| 504 |  |  |  |  |  |  | "\\cap\x0A" . $_->[0] . "i", $_->[1] . ucfirst "i", | 
| 505 |  |  |  |  |  |  | "\\cap\x0D" . $_->[0] . "i", $_->[1] . ucfirst "i", | 
| 506 |  |  |  |  |  |  | "\\cap\x20" . $_->[0] . "i", $_->[1] . ucfirst "i", | 
| 507 |  |  |  |  |  |  |  | 
| 508 |  |  |  |  |  |  | "\\cap\x09" . $_->[0] . "u", $_->[1] . ucfirst "u", | 
| 509 |  |  |  |  |  |  | "\\cap\x0A" . $_->[0] . "u", $_->[1] . ucfirst "u", | 
| 510 |  |  |  |  |  |  | "\\cap\x0D" . $_->[0] . "u", $_->[1] . ucfirst "u", | 
| 511 |  |  |  |  |  |  | "\\cap\x20" . $_->[0] . "u", $_->[1] . ucfirst "u", | 
| 512 |  |  |  |  |  |  |  | 
| 513 |  |  |  |  |  |  | } @minor | 
| 514 |  |  |  |  |  |  | ), | 
| 515 |  |  |  |  |  |  |  | 
| 516 |  |  |  |  |  |  | ( | 
| 517 |  |  |  |  |  |  | map { | 
| 518 |  |  |  |  |  |  |  | 
| 519 | 4 |  |  |  |  | 201 | my $x = $_; | 
| 520 |  |  |  |  |  |  |  | 
| 521 | 10 |  |  |  |  | 95 | map { | 
| 522 |  |  |  |  |  |  |  | 
| 523 | 2 |  |  |  |  | 4 | $x->[0] . "i" . $_, [ $x->[1], "i" . $_ ], | 
| 524 |  |  |  |  |  |  | $x->[0] . "u" . $_, [ $x->[1], "u" . $_ ], | 
| 525 |  |  |  |  |  |  |  | 
| 526 |  |  |  |  |  |  | "\\cap\x09" . $x->[0] . "i" . $_, [ $x->[1], "\\cap i" . $_ ], | 
| 527 |  |  |  |  |  |  | "\\cap\x0A" . $x->[0] . "i" . $_, [ $x->[1], "\\cap i" . $_ ], | 
| 528 |  |  |  |  |  |  | "\\cap\x0D" . $x->[0] . "i" . $_, [ $x->[1], "\\cap i" . $_ ], | 
| 529 |  |  |  |  |  |  | "\\cap\x20" . $x->[0] . "i" . $_, [ $x->[1], "\\cap i" . $_ ], | 
| 530 |  |  |  |  |  |  |  | 
| 531 |  |  |  |  |  |  | "\\cap\x09" . $x->[0] . "u" . $_, [ $x->[1], "\\cap u" . $_ ], | 
| 532 |  |  |  |  |  |  | "\\cap\x0A" . $x->[0] . "u" . $_, [ $x->[1], "\\cap u" . $_ ], | 
| 533 |  |  |  |  |  |  | "\\cap\x0D" . $x->[0] . "u" . $_, [ $x->[1], "\\cap u" . $_ ], | 
| 534 |  |  |  |  |  |  | "\\cap\x20" . $x->[0] . "u" . $_, [ $x->[1], "\\cap u" . $_ ], | 
| 535 |  |  |  |  |  |  |  | 
| 536 |  |  |  |  |  |  | }   "-", "\x09", "\x0A", "\x0D", "\x20" | 
| 537 |  |  |  |  |  |  |  | 
| 538 |  |  |  |  |  |  | } @minor | 
| 539 |  |  |  |  |  |  | ), | 
| 540 |  |  |  |  |  |  |  | 
| 541 |  |  |  |  |  |  | # white-space collapsing | 
| 542 |  |  |  |  |  |  | ( | 
| 543 |  |  |  |  |  |  | map { | 
| 544 |  |  |  |  |  |  |  | 
| 545 | 1 |  |  |  |  | 4 | "\\cap\x09" . $_, [ "", "\\cap " ], | 
| 546 |  |  |  |  |  |  | "\\cap\x0A" . $_, [ "", "\\cap " ], | 
| 547 |  |  |  |  |  |  | "\\cap\x0D" . $_, [ "", "\\cap " ], | 
| 548 |  |  |  |  |  |  | "\\cap\x20" . $_, [ "", "\\cap " ], | 
| 549 |  |  |  |  |  |  |  | 
| 550 |  |  |  |  |  |  | } "\x09", "\x0A", "\x0D", "\x20" | 
| 551 |  |  |  |  |  |  | ), | 
| 552 |  |  |  |  |  |  |  | 
| 553 |  |  |  |  |  |  | ); | 
| 554 |  |  |  |  |  |  |  | 
| 555 |  |  |  |  |  |  |  | 
| 556 | 2 |  |  | 2 |  | 17 | no strict 'refs'; | 
|  | 2 |  |  |  |  | 5 |  | 
|  | 2 |  |  |  |  | 494 |  | 
| 557 |  |  |  |  |  |  |  | 
| 558 | 1 |  |  |  |  | 1421 | ${ $cls . '::decoder' } = $decoder; | 
|  | 1 |  |  |  |  | 10 |  | 
| 559 |  |  |  |  |  |  |  | 
| 560 | 1 | 50 |  |  |  | 6 | if ($option{'describe'}) { | 
| 561 |  |  |  |  |  |  |  | 
| 562 | 0 |  |  |  |  | 0 | $_->describe('') foreach @{${ $cls . '::decoder' }}; | 
|  | 0 |  |  |  |  | 0 |  | 
|  | 0 |  |  |  |  | 0 |  | 
| 563 |  |  |  |  |  |  | } | 
| 564 |  |  |  |  |  |  |  | 
| 565 | 1 |  |  |  |  | 1 | return ${ $cls . '::decoder' }; | 
|  | 1 |  |  |  |  | 23 |  | 
| 566 |  |  |  |  |  |  | } | 
| 567 |  |  |  |  |  |  |  | 
| 568 |  |  |  |  |  |  |  | 
| 569 |  |  |  |  |  |  | 1; | 
| 570 |  |  |  |  |  |  |  | 
| 571 |  |  |  |  |  |  | __END__ |