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="";
59 $opt_map="<=".$opt_mapfrom;
61 $opt_map="=>".$opt_mapto;
65 if(&get_db($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 if(&get_reverse_db($opt_rev_map)){
76 foreach $char (sort keys %{$reverse_chardb{$opt_rev_map}}){
77 if($reverse_chardb{$opt_rev_map}->{$char}){
78 print $char,"\t",$reverse_chardb{$opt_rev_map}->{$char},"\n";
82 print STDERR "No map for $opt_rev_map.\n";
86 foreach $atr (sort keys %db){
87 if($value=&get_char_attribute($char,$atr)){
88 print " ",$atr,":",$value,"\n";
93 print " ",$opt_atr,":",&get_char_attribute($char,$opt_atr),"\n";
96 foreach $atr (sort keys %db){
99 # print "In reverse DB\n";
100 # foreach $atr (sort keys %reverse_db){
101 # print " ",$atr,"\n";
105 print join "\n",&get_chars_for($query),"\n";