package ShiftJIS::Regexp::Equiv;
use strict;
use Carp;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
$VERSION = '1.03';
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw();
@EXPORT_OK = qw(%Eq);
use vars qw(%Eq);
my $Open = 5.005 > $] ? '(?:' : '(?-i:';
my $Close = ')';
foreach(
['!', 'I'],
['#', ''],
['$', ''],
['%', ''],
['&', ''],
['(', 'i'],
[')', 'j'],
['*', ''],
['+', '{'],
[',', 'C'],
['.', 'D'],
['/', '^'],
['0', 'O'],
['1', 'P'],
['2', 'Q'],
['3', 'R'],
['4', 'S'],
['5', 'T'],
['6', 'U'],
['7', 'V'],
['8', 'W'],
['9', 'X'],
[':', 'F'],
[';', 'G'],
['<', ''],
['=', ''],
['>', ''],
['?', 'H'],
['@', ''],
['[', 'm'],
['\\',''],
[']', 'n'],
['^', 'O'],
['_', 'Q'],
['`', 'M'],
['{', 'o'],
['|', 'b'],
['}', 'p'],
['~', 'P'],
['B', '¡'],
['u', '¢'],
['v', '£'],
['A', '¤'],
['E', '¥'],
['[', '°'],
['a', '', 'A', '`'],
['b', '', 'B', 'a'],
['c', '', 'C', 'b'],
['d', '', 'D', 'c'],
['e', '
', 'E', 'd'],
['f', '', 'F', 'e'],
['g', '', 'G', 'f'],
['h', '', 'H', 'g'],
['i', '', 'I', 'h'],
['j', '', 'J', 'i'],
['k', '', 'K', 'j'],
['l', '', 'L', 'k'],
['m', '', 'M', 'l'],
['n', '', 'N', 'm'],
['o', '', 'O', 'n'],
['p', '', 'P', 'o'],
['q', '', 'Q', 'p'],
['r', '', 'R', 'q'],
['s', '', 'S', 'r'],
['t', '', 'T', 's'],
['u', '', 'U', 't'],
['v', '', 'V', 'u'],
['w', '', 'W', 'v'],
['x', '', 'X', 'w'],
['y', '', 'Y', 'x'],
['z', '', 'Z', 'y'],
[qw/ @ § A ± /],
[qw/¡ B ¨ ¢ C ² /],
[qw/£ D © ¤ E ³Þ ³ /],
[qw/¥ F ª ¦ G ´ /],
[qw/§ H « ¨ I µ /],
[qw/ª K ¶Þ © J ¶ /],
[qw/¬ M ·Þ « L · /],
[qw/® O ¸Þ N ¸ /],
[qw/° Q ¹Þ ¯ P ¹ /],
[qw/² S ºÞ ± R º /],
[qw/´ U »Þ ³ T » /],
[qw/¶ W ¼Þ µ V ¼ /],
[qw/¸ Y ½Þ · X ½ /],
[qw/º [ ¾Þ ¹ Z ¾ /],
[qw/¼ ] ¿Þ » \ ¿ /],
[qw/¾ _ ÀÞ ½ ^ À /],
[qw/À a ÁÞ ¿ ` Á /],
[qw/à d ÂÞ Â c  Á b ¯/],
[qw/Å f ÃÞ Ä e à /],
[qw/Ç h ÄÞ Æ g Ä /],
[qw/È i Å /],
[qw/É j Æ /],
[qw/Ê k Ç /],
[qw/Ë l È /],
[qw/Ì m É /],
[qw/Î o ÊÞ Ï p Êß Í n Ê /],
[qw/Ñ r ËÞ Ò s Ëß Ð q Ë /],
[qw/Ô u ÌÞ Õ v Ìß Ó t Ì /],
[qw/× x ÍÞ Ø y Íß Ö w Í /],
[qw/Ú { ÎÞ Û | Îß Ù z Î /],
[qw/Ü } Ï /],
[qw/Ý ~ Ð /],
[qw/Þ Ñ /],
[qw/ß Ò /],
[qw/à Ó /],
[qw/á ¬ â Ô /],
[qw/ã
ä Õ /],
[qw/å ® æ Ö /],
[qw/ç × /],
[qw/è Ø /],
[qw/é Ù /],
[qw/ê Ú /],
[qw/ë Û /],
[qw/í Ü ì /],
[qw/î /],
[qw/ï /],
[qw/ð ¦ /],
[qw/ñ Ý /],
[qw/T R U S /],
[qw/J K Þ ß /],
) {
my $arr = $_;
my $re = $Open.join('|', map {
length($_) == 1
? sprintf('\x%02x', ord $_)
: sprintf('\x%02x\x%02x', unpack 'C2', $_)
} @$arr) .$Close;
@Eq{@$arr} = ($re) x @$arr;
}
1;
__END__