#!/usr/bin/env perl # # $FML: show_rule_as_html.pl,v 1.2 2004/12/09 11:35:12 fukachan Exp $ # my $raw_mode = $ENV{ 'RAW_MODE' } ? 1 : 0; print "\n" unless $raw_mode; while (<>) { chomp; s/\s*$//; if (/^\.if\s*([A-Z]\S+)\s*.=\s*(.*)/) { $var_name = $1; $var_value = $2; $var_value = /\!=/o ? "!= $var_value" : $var_value; $saved_var_name = $var_name; $saved_var_value = $var_value; } elsif (/^\.if\s*([A-Z]\S+)/) { undef $condition; $var_name = $1; $var_value = undef; $saved_var_name = $var_name; $saved_var_value = $var_value; } if (/^\t\.if\s*([A-Z]\S+)\s*==\s*(.*)/) { $var_name = "$saved_var_name && $1"; $var_value = "$saved_var_value && $2"; } elsif (/^\t(.*)/) { my $x = _P($1); if (defined $var_value) { if ($raw_mode) { printf "%-40s %s\n", "$var_name ($var_value)", $x; } else { printf "\t\n\t\n\t
%s %s\n", "$var_name ($var_value)", $x; } } else { if ($raw_mode) { printf "%-40s %s\n", $var_name, $x; } else { printf "\t
%s %s\n", $var_name, $x; } } } } print "
\n" unless $raw_mode; exit 0; sub _P { my ($x) = @_; $x =~ s/\s*$//; $x =~ s/^\s*//; if ($raw_mode) { return $x;} # .fml8_default fml8 のデフォルトと同じ、気にするな # .not_yet_implemented まだ、実装されてない # .unavailable 対応するものがない、実装予定もない # .ignore 実装方式が違うので、無意味 if ($x eq '.fml8_default') { return 'OK。fml8 のデフォルトと同じ'; } elsif ($x =~ /\.auto/) { $x =~ s/\.auto/fml8 でよろしく頑張る(自動設定)/; return $x; } elsif ($x =~ /\.convert/) { $x =~ s/\.convert/fml8 の形式に変換して使う/; return $x; } elsif ($x =~ /\.use_fml4_value/) { $x =~ s/\.use_fml4_value/このまま fml4 の値を使う/; return $x; } elsif ($x =~ /\.use_fml8_value/) { $x =~ s/\.use_fml8_value/対応する fml8 の値を使う/; return $x; } elsif ($x eq '.ignore') { return '対応するものがない'; } elsif ($x eq '.unavailable') { return '実装予定なし'; } elsif ($x eq '.not_yet_configurable') { return 'まだ設定変更できない'; } elsif ($x eq '.not_yet_implemented') { return '未実装'; } else { if ($x =~ /^\s*\./) { print STDERR "INPUT{$x}\n"; use Carp; croak($x); } else { return $x; } } }