OSDN Git Service

55cd648138749a2cced7d1dc3d306cb8d2b71cad
[o-dic/o-dic.git] / script / oki2cha.pl
1 #!/usr/bin/perl
2 #
3 # oki2cha.pl - ²­Æì¼­½ñ¤Î¥Õ¥¡¥¤¥ë¤òÃã䥤ǻȤ¨¤ë·Á¼°¤Î¥Æ¥­¥¹¥È¤ËÊÑ´¹¤¹¤ë
4 #
5 #               $Id: oki2cha.pl,v 1.1 2003/04/21 18:20:45 void Exp $
6 #
7 # ¤³¤Î¥¹¥¯¥ê¥×¥È¤ò»È¤Ã¤Æ¡¢°Ê²¼¤Î¤è¤¦¤Ë¡Öokinawa.dic¡×¤òÀ¸À®¤·¤Æ¤¯¤À¤µ¤¤¡£
8 #     $ nkf -e *.dic | ./oki2cha.pl > okinawa.dic
9 #     $ /usr/local/libexec/chasen/makeint okinawa.dic > okinawa.txt
10 #     $ /usr/local/libexec/chasen/sortdic okinawa.txt > okinawa.int
11 #     $ /usr/local/libexec/chasen/pattool -F okinawa
12 #     $ rm okinawa.txt
13 require 5.6.0;
14 use strict;
15 our $phonate;
16 our $word;
17 our $class;
18
19 &header;
20 while (<>) {
21         s/#.*$//;               # `#'°Ü¹Ô¤ò¼è¤êµî¤ë
22         next if (/^\s*$/);      # ¤½¤Î·ë²Ì¶õ¹Ô¤Ë¤Ê¤Ã¤¿¹Ô¤ÏÆɤßÈô¤Ð¤¹¡£
23         if (/(\S+)\s+(\S+)\s+(\S+)/) {
24                 $phonate  = $1; # Æɤß
25                 $word = $2;     # Ã±¸ì
26                 $class = $3;    # ÉÊ»ì
27                 &check_phonate;
28                 &check_word;
29                 &convert_class;
30         }
31         else {
32                 print STDERR "Error: $.: too few field number `$_'\n";
33                 print  "$_";
34         }
35 }
36 &version;
37 exit 0;
38
39
40 sub check_phonate
41 {
42         if (length($phonate) > 40) {
43                 print STDERR "Warning: $.: too long phonate `$phonate'\n";
44         }
45         if ($phonate =~ /[^¤¢¤¤¤¦¤¨¤ª¤«¤­¤¯¤±¤³¤µ¤·¤¹¤»¤½¤¿¤Á¤Ä¤Æ¤È¤Ê¤Ë¤Ì¤Í¤Î¤Ï¤Ò¤Õ¤Ø¤Û¤Þ¤ß¤à¤á¤â¤é¤ê¤ë¤ì¤í¤¬¤®¤°¤²¤´¤¶¤¸¤º¤¼¤¾¤À¤Â¤Å¤Ç¤É¤Ð¤Ó¤Ö¤Ù¤Ü¤¡¤£¤¥¤§¤©¤Ã¤ç¤ã¤å¤î¤Ñ¤Ô¤×¤Ú¤Ý¤ä¤æ¤è¤ï¤ò¤ó¥ô¡¼]/) {
46                 print STDERR "Warning: $.: ilegal character in `$phonate'\n";
47         }
48 }
49
50
51 sub check_word
52 {
53         if (length($word) > 64) {
54                 print STDERR "Warning: $.: too long word `$word'\n";
55         }
56         if ($word =~ /[ \t",#]/) {
57                 print STDERR "Warning: $.: ilegal character in `$word'\n";
58         }
59 }
60
61
62 sub convert_class {
63         if ($class eq "ÉáÄÌ̾»ì") {
64                 print "(ÉÊ»ì (̾»ì °ìÈÌ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
65         }
66         elsif ($class eq "¥µÊÑ̾»ì") {
67                 print "(ÉÊ»ì (̾»ì ¥µÊÑÀܳ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
68         }
69         elsif ($class eq "·Áư̾»ì") {
70                 print "(ÉÊ»ì (̾»ì ·ÁÍÆÆ°»ì¸ì´´)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
71         }
72         elsif ($class eq "À«") {
73                 print "(ÉÊ»ì (̾»ì ¸Çͭ̾»ì ¿Í̾ À«)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
74         }
75         elsif ($class eq "̾") {
76                 print "(ÉÊ»ì (̾»ì ¸Çͭ̾»ì ¿Í̾ Ì¾)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
77         }
78         elsif ($class eq "¤½¤Î¾¤Î¿Í̾") {
79                 print "(ÉÊ»ì (̾»ì ¸Çͭ̾»ì ¿Í̾ °ìÈÌ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
80         }
81         elsif ($class eq "ñ½ãÃÏ̾") {
82                 print "(ÉÊ»ì (̾»ì ¸Çͭ̾»ì ÃÏ°è °ìÈÌ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
83         }
84         elsif ($class eq "ÀÜÈø¸ìÉÕ¤­ÃÏ̾") {
85                 print "(ÉÊ»ì (̾»ì ¸Çͭ̾»ì ÃÏ°è °ìÈÌ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
86         }
87         elsif ($class eq "ÁÈ¿¥Ì¾") {
88                 print "(ÉÊ»ì (̾»ì ¸Çͭ̾»ì ÁÈ¿¥)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
89         }
90         elsif ($class eq "¤½¤Î¾¸Çͭ̾»ì") {
91                 print "(ÉÊ»ì (̾»ì ¸Çͭ̾»ì °ìÈÌ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
92         }
93         elsif ($class eq "Éû»ì") {
94                 print "(ÉÊ»ì (Éû»ì °ìÈÌ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
95         }
96         elsif ($class eq "Àܳ»ì") {
97                 print "(ÉÊ»ì (Àܳ»ì)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
98         }
99         elsif ($class eq "´¶Æ°»ì") {
100                 print "(ÉÊ»ì (´¶Æ°»ì)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
101         }
102         elsif ($class eq "·ÁÍÆ»ì") {
103                 print "(ÉÊ»ì (·ÁÍƻ젼«Î©)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
104         }
105         elsif ($class eq "·ÁÍÆÆ°»ì") {
106                 print "(ÉÊ»ì (̾»ì ·ÁÍÆÆ°»ì¸ì´´)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
107         }
108         elsif ($class eq "ÀÜƬ¸ì") {                    # !!!
109                 print "(ÉÊ»ì (ÀÜƬ»ì Ì¾»ìÀܳ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
110         }
111         elsif ($class eq "¿ô»úÎóÀÜƬ¸ì") {
112                 print "(ÉÊ»ì (ÀÜƬ»ì ¿ôÀܳ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
113         }
114         elsif ($class eq "ÀÜÈø¸ì") {
115                 print "(ÉÊ»ì (̾»ì ÀÜÈø °ìÈÌ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
116         }
117         elsif ($class eq "¿Í̾ÀÜÈø¸ì") {
118                 print "(ÉÊ»ì (̾»ì ÀÜÈø ¿Í̾)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
119         }
120         elsif ($class eq "ÃÏ̾ÀÜÈø¸ì") {
121                 print "(ÉÊ»ì (̾»ì ÀÜÈø ÃÏ°è)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
122         }
123         elsif ($class eq "ÁÈ¿¥Ì¾ÀÜÈø¸ì") {
124                 print "(ÉÊ»ì (̾»ì ÀÜÈø °ìÈÌ)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
125         }
126         elsif ($class eq "¿ô»úÎóÀÜÈø¸ì") {
127                 print "(ÉÊ»ì (̾»ì ÀÜÈø ½õ¿ô»ì)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
128         }
129         elsif ($class eq "À®¶ç") {
130                 print "(ÉÊ»ì (̾»ì °úÍÑʸ»úÎó)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
131         }
132         elsif ($class eq "̵ÉÊ»ì") {
133                 print "(ÉÊ»ì (̾»ì °úÍÑʸ»úÎó)) ((¸«½Ð¤·¸ì ($word 2000)) (Æɤߠ$phonate))\n"; 
134         }
135         else {
136                 print STDERR "Error: $.: unknown class `$class': $phonate\t$word\n";
137                 print "$phonate,$word,$class\n";
138         }
139 }
140
141
142 sub header {
143 #       my($year, $mon, $mday);
144 #       my($hour, $min, $sec);
145
146 #       ($sec, $min, $hour, $mday, $mon, $year) = localtime(time());
147 #       $year += 1900;
148 #       $mon++;
149 #       print ",,\"Ŭ¹çµ¬³Ê=JIS X 4062:1998\"\n";
150 #       print ",,\"ɽÂê=²­Æì¼­½ñ\"\n";
151 #       print ",,\"ʬÌî=ΰµå¡¢²­Æì\"\n";
152 #       print ",,\"ÈÇ=Âè$year/$mon/$mdayÈÇ\"\n";
153 #       print ",,\"ÊÔ¼Ô=²­Æì¼­½ñ¥×¥í¥¸¥§¥¯¥È\"\n";
154 #       print ",,\"ºîÀ®Æü=$year-$mon-$mday\"\n";
155 }
156
157
158 sub version {
159         my $sec;
160         my $min;
161         my $hour;
162         my $mday;
163         my $mon;
164         my $year;
165
166         ($sec, $min, $hour, $mday, $mon, $year) = localtime(time());
167         $year += 1900;
168         $mon++;
169         print "(ÉÊ»ì (̾»ì °úÍÑʸ»úÎó)) ((¸«½Ð¤·¸ì ($year/$mon/$mday²­Æì¼­½ñ¤ÎÆüÉÕ¤± 2000)) (Æɤߠ¤ª¤­¤Ê¤ï¤¸¤·¤ç¤Î¤Ò¤Å¤±))\n"; 
170 }