1 ################################################################################
3 # Wiki¥Õ¥©¡¼¥Þ¥Ã¥È¤Îʸ»úÎó¤ò¥Ñ¡¼¥¹¤·¡¢½ñ¼°¤ËÂбþ¤·¤¿¥Õ¥Ã¥¯¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¤¤Þ¤¹¡£
4 # Wiki::Parser¤ò·Ñ¾µ¤·¡¢¤³¤ì¤é¤Î¥Õ¥Ã¥¯¥á¥½¥Ã¥É¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤¹¤ë¤³¤È¤ÇǤ°Õ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤ÎÊÑ´¹¤¬²Äǽ¤Ç¤¹¡£
6 ################################################################################
12 $Wiki::Parser::keyword = undef;
13 $Wiki::Parser::interwiki = undef;
15 #===============================================================================
20 # my $parser = Wiki::HTMLParser->new($wiki);
22 #===============================================================================
28 $self->{wiki} = $wiki;
30 # Keyword¤ÈInterWiki¤Ï¹â®²½¤Î¤¿¤á¥â¥¸¥å¡¼¥ëÊÑ¿ô¤È¤·¤ÆÊÝ»ý¤¹¤ë
31 #¡Ê¤¿¤À¤·mod_perl+Farm¤Î¾ì¹ç¤Ï¥À¥á¤Ê¤Î¤ÇËè²ónew¤¹¤ë¡Ë
32 if(exists $ENV{MOD_PERL}){
33 $self->{interwiki} = Wiki::InterWiki->new($wiki);
34 $self->{keyword} = Wiki::Keyword->new($wiki,$self->{interwiki});
36 unless(defined($Wiki::Parser::keyword)){
37 $Wiki::Parser::interwiki = Wiki::InterWiki->new($wiki);
38 $Wiki::Parser::keyword = Wiki::Keyword->new($wiki,$Wiki::Parser::interwiki);
40 $self->{interwiki} = $Wiki::Parser::interwiki;
41 $self->{keyword} = $Wiki::Parser::keyword;
48 return bless $self,$class;
51 #===============================================================================
53 # ¥Ñ¡¼¥¹½èÍý¤ò³«»Ï¤·¤Þ¤¹¡£
56 # $parser->parse($source);
58 #===============================================================================
66 my @lines = split(/\n/,$source);
68 foreach my $line (@lines){
72 $self->multi_explanation($line);
74 my $word1 = substr($line,0,1);
75 my $word2 = substr($line,0,2);
76 my $word3 = substr($line,0,3);
79 if($line eq "" && !$self->{block}){
84 # ¥Ñ¥é¥°¥é¥Õ¥×¥é¥°¥¤¥ó
85 if($line =~ /^{{(.+}})$/){
87 my $plugin = $self->{wiki}->parse_inline_plugin($1);
88 my $info = $self->{wiki}->get_plugin_info($plugin->{command});
89 if($info->{TYPE} eq "paragraph"){
90 $self->l_plugin($plugin);
92 my @obj = $self->parse_line($line);
97 } elsif($line =~ /^{{(.+)$/){
99 $self->{block}->{level}++;
100 $self->{block}->{args}->[0] .= $line."\n";
103 my $plugin = $self->{wiki}->parse_inline_plugin($1);
104 my $info = $self->{wiki}->get_plugin_info($plugin->{command});
105 if($info->{TYPE} eq "block"){
106 unshift(@{$plugin->{args}}, "");
107 $self->{block} = $plugin;
108 $self->{block}->{level} = 0;
110 my @obj = $self->parse_line($line);
111 $self->l_text(\@obj);
117 if ($self->{block}->{level} > 0) {
118 $self->{block}->{level}--;
119 $self->{block}->{args}->[0] .= $line."\n";
122 my $plugin = $self->{block};
123 delete($self->{block});
124 $self->l_plugin($plugin);
126 $self->{block}->{args}->[0] .= $line."\n";
132 if($word1 eq " " || $word1 eq "\t"){
133 $self->l_verbatim($line);
136 } elsif($word3 eq "!!!"){
137 my @obj = $self->parse_line(substr($line,3));
138 $self->l_headline(1,\@obj);
140 } elsif($word2 eq "!!"){
141 my @obj = $self->parse_line(substr($line,2));
142 $self->l_headline(2,\@obj);
144 } elsif($word1 eq "!"){
145 my @obj = $self->parse_line(substr($line,1));
146 $self->l_headline(3,\@obj);
149 } elsif($word3 eq "***"){
150 my @obj = $self->parse_line(substr($line,3));
151 $self->l_list(3,\@obj);
153 } elsif($word2 eq "**"){
154 my @obj = $self->parse_line(substr($line,2));
155 $self->l_list(2,\@obj);
157 } elsif($word1 eq "*"){
158 my @obj = $self->parse_line(substr($line,1));
159 $self->l_list(1,\@obj);
162 } elsif($word3 eq "+++"){
163 my @obj = $self->parse_line(substr($line,3));
164 $self->l_numlist(3,\@obj);
166 } elsif($word2 eq "++"){
167 my @obj = $self->parse_line(substr($line,2));
168 $self->l_numlist(2,\@obj);
170 } elsif($word1 eq "+"){
171 my @obj = $self->parse_line(substr($line,1));
172 $self->l_numlist(1,\@obj);
175 } elsif($line eq "----"){
179 } elsif($word2 eq '""'){
180 my @obj = $self->parse_line(substr($line,2));
181 $self->l_quotation(\@obj);
184 } elsif(index($line,":")==0 && index($line,":",1)!=-1){
185 if(index($line,":::")==0){
186 $self->{dd} .= substr($line,3);
189 if(index($line,"::")==0){
190 if($self->{dt} ne "" || $self->{dd} ne ""){
191 $self->multi_explanation;
193 $self->{dt} = substr($line,2);
194 $self->{dl_flag} = 1;
197 my $dt = substr($line,1,index($line,":",1)-1);
198 my $dd = substr($line,index($line,":",1)+1);
199 my @obj1 = $self->parse_line($dt);
200 my @obj2 = $self->parse_line($dd);
201 $self->l_explanation(\@obj1,\@obj2);
204 } elsif($word1 eq ","){
208 my @spl = map {/^"(.*)"$/ ? scalar($_ = $1, s/\"\"/\"/g, $_) : $_}
209 ($line =~ /,\s*(\"[^\"]*(?:\"\"[^\"]*)*\"|[^,]*)/g);
211 foreach my $value (@spl){
212 my @cell = $self->parse_line($value);
215 $self->l_table(\@array);
218 } elsif($word2 eq "//"){
222 my @obj = $self->parse_line($line);
223 $self->l_text(\@obj);
228 $self->multi_explanation;
230 # ¥Ñ¡¼¥¹Ãæ¤Î¥Ö¥í¥Ã¥¯¥×¥é¥°¥¤¥ó¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¤È¤ê¤¢¤¨¤ºÉ¾²Á¤·¤Æ¤ª¤¯¡©
232 $self->l_plugin($self->{block});
233 delete($self->{block});
239 #===============================================================================
241 # Ê£¿ô¹Ô¤ÎÀâÌÀʸ¤ò½èÍý¤·¤Þ¤¹¡£
243 #===============================================================================
244 sub multi_explanation {
247 if($self->{dl_flag}==1 && (index($line,":")!=0 || !defined($line))){
248 my @obj1 = $self->parse_line($self->{dt});
249 my @obj2 = $self->parse_line($self->{dd});
250 $self->l_explanation(\@obj1,\@obj2);
251 $self->{dl_flag} = 0;
257 #===============================================================================
259 # £±¹Ôʬ¤ò¥Ñ¡¼¥¹¤·¤Þ¤¹¡£parse¥á¥½¥Ã¥É¤ÎÃ椫¤éɬÍפ˱þ¤¸¤Æ¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
261 #===============================================================================
263 my ($self, $source) = @_;
265 return () if (not defined $source);
271 # $source ¤¬¶õ¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£
273 while ($source ne q{}) {
275 # ¤É¤Î¥¤¥ó¥é¥¤¥ó Wiki ½ñ¼°¤ÎÀèƬ¤Ë¤â match ¤·¤Ê¤¤¤Ê¤é¡¢
277 =~ /^(.*?)((?:{{|\[\[?|https?:|mailto:|f(?:tp:|ile:)|'''?|==|__|<<).*)$/
281 # ¥¡¼¥ï¡¼¥É¸¡º÷¡¦ÃÖ´¹½èÍý¤Î¤ß¼Â»Ü¤·¤Æ½ªÎ»¡£
282 push @array, $self->_parse_line_keyword($pre . $source);
286 $pre .= $1; # match ¤·¤Ê¤«¤Ã¤¿ÀèƬÉôʬ¤Ïί¤á¤Æ¤ª¤¤¤Æ¸å¤Ç½èÍý
287 $source = $2; # match Éôʬ¡£¤³¤Î¸å¡¢¾ÜºÙ match ¤ò»î¤ß¤ë¡£
291 if ($source =~ /^{{/) {
293 # ¤â¤· $pre ¤¬Î¯¤Þ¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¥¡¼¥ï¡¼¥É¤Î½èÍý¤ò¼Â»Ü¡£
294 push @array, $self->_parse_line_keyword($pre) if ($pre ne q{});
296 # ¥ª¥ê¥¸¥Ê¥ë¤Î Wiki::Parser::parse_line() ¤Ë½èÍý¤ò¤ªÇ¤¤»¡£
297 # (¥×¥é¥°¥¤¥ó¤Î½èÍý¤Ï¡¢¥ª¥ê¥¸¥Ê¥ë¤Ç¤âºÇÍ¥Àè¤Î½èÍý¤Ê¤Î¤Ç²Äǽ)
298 push @array, $self->SUPER::parse_line($source);
300 # $self->orig_parse_line() ¤Ç $source ¤ÏÁ´¤Æ½èÍýºÑ¤Ê¤Î¤Ç½ªÎ»
305 elsif ($self->{interwiki}->exists_interwiki($source)) {
306 my $label = $self->{interwiki}->{g_label};
307 my $url = $self->{interwiki}->{g_url};
308 $source = $self->{interwiki}->{g_post};
309 $parsed = $self->url_anchor($url, $label);
313 elsif ($source =~ /^\[\[([^\[]+?)\|([^\|\[]+?)\]\]/) {
316 $source = substr($source, $+[0]); # as $'
317 $parsed = $self->wiki_anchor($page, $label);
322 =~ /^\[([^\[]+?)\|((?:http|https|ftp|mailto):[a-zA-Z0-9\.,%~^_+\-%\/\?\(\)!&=:;\*#\@'\$]*)\]/
323 || $source =~ /^\[([^\[]+?)\|(file:[^\[\]]*)\]/
325 =~ /^\[([^\[]+?)\|((?:\/|\.\/|\.\.\/)+[a-zA-Z0-9\.,%~^_+\-%\/\?\(\)!&=:;\*#\@'\$]*)\]/
330 $source = substr($source, $+[0]); # as $'
331 if ( index($url, q{"}) >= 0
332 || index($url, '><') >= 0
333 || index($url, 'javascript:') >= 0)
335 $parsed = $self->parse_line('<<ÉÔÀµ¤Ê¥ê¥ó¥¯¤Ç¤¹¡£>>');
338 $parsed = $self->url_anchor($url, $label);
344 =~ /^(?:https?|ftp|mailto):[a-zA-Z0-9\.,%~^_+\-%\/\?\(\)!&=:;\*#\@'\$]*/
345 || $source =~ /^file:[^\[\]]*/)
347 my $url = substr($source, $-[0], $+[0] - $-[0]); # as $&
348 $source = substr($source, $+[0]); # as $'
349 if ( index($url, q{"}) >= 0
350 || index($url, '><') >= 0
351 || index($url, 'javascript:') >= 0)
353 $parsed = $self->parse_line('<<ÉÔÀµ¤Ê¥ê¥ó¥¯¤Ç¤¹¡£>>');
356 $parsed = $self->url_anchor($url);
361 elsif ($source =~ /^\[\[([^\|]+?)\]\]/) {
363 $source = substr($source, $+[0]); # as $'
364 $parsed = $self->wiki_anchor($page);
368 elsif ($source =~ /^\[([^\[]+?)\|(.+?)\]/) {
371 $source = substr($source, $+[0]); # as $'
372 if ( index($url, q{"}) >= 0
373 || index($url, '><') >= 0
374 || index($url, 'javascript:') >= 0)
376 $parsed = $self->parse_line('<<ÉÔÀµ¤Ê¥ê¥ó¥¯¤Ç¤¹¡£>>');
381 my $wiki = $self->{wiki};
382 my $uri = $wiki->config('server_host');
384 $uri = $wiki->get_CGI()->url(-path_info => 1);
389 . $wiki->get_CGI->url(-absolute => 1)
390 . $wiki->get_CGI()->path_info();
392 $parsed = $self->url_anchor($uri . '/../' . $url, $label);
396 # ¥Ü¡¼¥ë¥É¡¢¥¤¥¿¥ê¥Ã¥¯¡¢¼è¤ê¾Ã¤·Àþ¡¢²¼Àþ
397 elsif ($source =~ /^('''?|==|__)(.+?)\1/) {
400 $source = substr($source, $+[0]); # as $'
401 if ($type eq q{'''}) {
402 $parsed = $self->bold($label);
404 elsif ($type eq q{__}) {
405 $parsed = $self->underline($label);
407 elsif ($type eq q{''}) {
408 $parsed = $self->italic($label);
410 else { ## elsif ($type eq q{==}) {
411 $parsed = $self->denialline($label);
416 elsif ($source =~ /^<<(.+?)>>/) {
418 $source = substr($source, $+[0]); # as $'
419 $parsed = $self->error($label);
422 # ¥¤¥ó¥é¥¤¥ó Wiki ½ñ¼°Á´ÂÎ¤Ë¤Ï macth ¤·¤Ê¤«¤Ã¤¿¤È¤
426 $pre .= substr($source, 0, 1);
427 $source = substr($source, 1);
429 # parse ·ë²Ì¤ò @array ¤ËÊݸ¤¹¤ë½èÍý¤òÈô¤Ð¤·¤Æ·«¤êÊÖ¤·¡£
433 # ¥¤¥ó¥é¥¤¥ó Wiki ½ñ¼°Á´ÂÎ¤Ë macth ¤·¤¿¸å¤Î
434 # parse ·ë²Ì¤ò @array ¤ËÊݸ¤¹¤ë½èÍý¡£
436 # ¤â¤· $pre ¤¬Î¯¤Þ¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¥¡¼¥ï¡¼¥É¤Î½èÍý¤ò¼Â»Ü¡£
438 push @array, $self->_parse_line_keyword($pre);
442 push @array, $parsed;
445 # ¤â¤· $pre ¤¬Î¯¤Þ¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¥¡¼¥ï¡¼¥É¤Î½èÍý¤ò¼Â»Ü¡£
446 push @array, $self->_parse_line_keyword($pre) if ($pre ne q{});
451 #========================================================================
453 # parse_line() ¤«¤é¸Æ¤Ó½Ð¤µ¤ì¡¢¥¡¼¥ï¡¼¥É¤Î¸¡º÷¡¦ÃÖ´¹½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£
455 #========================================================================
456 sub _parse_line_keyword {
460 return () if (not defined $source);
464 # $source ¤¬¶õ¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£
465 while ($source ne q{}) {
468 if ($self->{keyword}->exists_keyword($source)) {
469 my $pre = $self->{keyword}->{g_pre};
470 my $label = $self->{keyword}->{g_label};
471 my $url = $self->{keyword}->{g_url};
472 my $page = $self->{keyword}->{g_page};
473 $source = $self->{keyword}->{g_post};
475 push @array, $self->_parse_line_keyword($pre);
477 if (defined($url) && $url ne q{}) {
478 push @array, $self->url_anchor($url, $label);
481 push @array, $self->wiki_anchor($page, $label);
487 elsif ($self->{wiki}->config('wikiname') == 1
488 && $source =~ /[A-Z]+?[a-z]+?(?:[A-Z]+?[a-z]+)+/)
490 my $pre = substr($source, 0, $-[0]); # as $`
491 my $page = substr($source, $-[0], $+[0] - $-[0]); # as $&
492 $source = substr($source, $+[0]); # as $'
494 push @array, $self->_parse_line_keyword($pre);
496 push @array, $self->wiki_anchor($page);
499 # ¥¡¼¥ï¡¼¥É¤â WikiName ¤â¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤È¤
501 push @array, $self->text($source);
508 #===============================================================================
510 # ¥Ñ¡¼¥¹¤ò³«»ÏÁ°¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
511 # ¥µ¥Ö¥¯¥é¥¹¤ÇɬÍפʽèÍý¤¬¤¢¤ë¾ì¹ç¤Ï¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Æ¤¯¤À¤µ¤¤¡£
513 #===============================================================================
516 #===============================================================================
518 # ¥Ñ¡¼¥¹½ªÎ»¸å¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
519 # ¥µ¥Ö¥¯¥é¥¹¤ÇɬÍפʽèÍý¤¬¤¢¤ë¾ì¹ç¤Ï¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Æ¤¯¤À¤µ¤¤¡£
521 #===============================================================================
524 #===============================================================================
526 # URL¥¢¥ó¥«¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
527 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
529 #===============================================================================
532 #===============================================================================
534 # ¥Ú¡¼¥¸Ì¾¥¢¥ó¥«¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
535 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
537 #===============================================================================
540 #===============================================================================
542 # ¥¤¥¿¥ê¥Ã¥¯¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
543 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
545 #===============================================================================
548 #===============================================================================
550 # ¥Ü¡¼¥ë¥É¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
551 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
553 #===============================================================================
556 #===============================================================================
558 # ²¼Àþ¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
559 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
561 #===============================================================================
564 #===============================================================================
566 # ÂǤÁ¾Ã¤·Àþ¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
567 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
569 #===============================================================================
572 #===============================================================================
574 # ¥×¥é¥°¥¤¥ó¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
575 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
577 #===============================================================================
580 #===============================================================================
582 # ¥Æ¥¥¹¥È¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
583 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
585 #===============================================================================
588 #===============================================================================
590 # ¹àÌܤ˥ޥåÁ¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
591 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
593 #===============================================================================
596 #===============================================================================
598 # ÈÖ¹æÉÕ¤¹àÌܤ˥ޥåÁ¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
599 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
601 #===============================================================================
604 #===============================================================================
606 # ¸«½Ð¤·¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
607 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
609 #===============================================================================
612 #===============================================================================
614 # PRE¥¿¥°¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
615 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
617 #===============================================================================
620 #===============================================================================
622 # ¿åÊ¿Àþ¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
623 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
625 #===============================================================================
628 #===============================================================================
630 # Æäˤʤˤâ¤Ê¤¤¹Ô¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
631 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
633 #===============================================================================
636 #===============================================================================
638 # ÀâÌÀ¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
639 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
641 #===============================================================================
644 #===============================================================================
646 # °úÍѤ˥ޥåÁ¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
647 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
649 #===============================================================================
652 #===============================================================================
654 # ¥Ñ¥é¥°¥é¥Õ¤Î¶èÀÚ¤ê¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
655 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
657 #===============================================================================
660 #===============================================================================
662 # ¥Æ¡¼¥Ö¥ë¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
663 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
665 #===============================================================================
668 #===============================================================================
670 # ¥Ñ¥é¥°¥é¥Õ¥×¥é¥°¥¤¥ó¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
671 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
673 #===============================================================================
676 #===============================================================================
678 # ²èÁü¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
679 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
681 #===============================================================================
684 #===============================================================================
686 # ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
687 # ¥µ¥Ö¥¯¥é¥¹¤Ë¤Æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
689 #===============================================================================