5 use vars qw($atr $value $char
6 $opt_map $opt_rev_map $opt_mapfrom $opt_mapto
7 $opt_atr $opt_allatr $opt_showatr
11 use Chise_utils ':all';
14 Usage: perl $0 [-m <map> | --map <map> |
21 -a=<atribuite> <char> |
25 total-strokes==8 means
26 the attribute of total-strokes exactly matches to 8.
28 the attribute of ids-parts contains the string 矢.
29 total-strokes==8,ids-parts=~矢 means both at the same time.
30 -a get <attribute> of <char>
31 -aa get all attributes of <char>
34 &GetOptions("mapto=s"=>\$opt_mapto,
35 "mapfrom=s"=>\$opt_mapfrom,
40 "show-attribute"=>\$opt_showatr,
46 or !((($opt_map or $opt_rev_map or $opt_mapfrom or $opt_mapto) and @ARGV==0)
47 or($opt_showatr and @ARGV==0)
54 $char=shift or $char="";
58 $opt_map="<=".$opt_mapfrom;
60 $opt_map="=>".$opt_mapto;
65 if(defined(%{$chardb{$opt_map}})){
66 foreach $char (sort keys %{$chardb{$opt_map}}){
67 if($chardb{$opt_map}->{$char}){
68 print $char,"\t",$chardb{$opt_map}->{$char},"\n";
72 print STDERR "No map for $opt_map.\n";
75 &get_reverse_db($opt_rev_map);
76 if(defined(%{$reverse_chardb{$opt_rev_map}})){
77 foreach $char (sort keys %{$reverse_chardb{$opt_rev_map}}){
78 if($reverse_chardb{$opt_rev_map}->{$char}){
79 print $char,"\t",$reverse_chardb{$opt_rev_map}->{$char},"\n";
83 print STDERR "No map for $opt_rev_map.\n";
86 $char=&de_er($char) if($char=~/\d/);
88 foreach $atr (sort keys %db){
89 if($value=&get_char_attribute($char,$atr)){
90 print " ",$atr,":",$value,"\n";
94 $char=&de_er($char) if($char=~/\d/);
96 print " ",$opt_atr,":",&get_char_attribute($char,$opt_atr),"\n";
99 foreach $atr (sort keys %db){
102 # print "In reverse DB\n";
103 # foreach $atr (sort keys %reverse_db){
104 # print " ",$atr,"\n";
108 print join "\n",&get_chars_for($query),"\n";