#! /bin/perl
# -*- coding:utf-8 -*-
# makefiledoc.pl
use strict;
# ==================================================
# 追加修正可能な出力処理部
# ==================================================
# 1行出力コールバック関数
#
# コールバック関数への引数
# 第1引数 -- 直前の行の種類
# 第2引数 -- 現在の行の種類
# 次のどれかが渡される
# * 'none' -- なし
# * 'title' -- タイトルの行
# * 'var' -- 変数の説明の行
# * 'target' -- ターゲットの説明の行
# 第3引数 -- 行の種類、名前、説明文字列からなる配列への参照
# タイトルのときは名前は空
#
# 第2引数と第3引数の第1要素が同じで冗長だが、気にしないように。
sub OutHtml($$$) {
my ($prev, $cur, $refData) = @_;
my $name = $refData->[1];
my $desc = $refData->[2];
print "
\n"
if ($cur eq 'var' || $cur eq 'target') && ($prev eq 'none' || $prev eq 'title');
print "
\n"
if ($cur eq 'title' || $cur eq 'none') && ($prev eq 'var' || $prev eq 'target');
print "$desc
\n" if $cur eq 'title';
print "$name | $desc |
\n"
if $cur eq 'var';
print "
$name : | $desc |
\n"
if $cur eq 'target';
}
sub OutText($$$) {
my ($prev, $cur, $refData) = @_;
my $name = $refData->[1];
my $desc = $refData->[2];
print " * $name -- $desc\n" if $cur eq 'var';
print " * $name : -- $desc\n" if $cur eq 'target';
print "\n$desc\n\n" if $cur eq 'title';
}
sub OutMake($$$) {
my ($prev, $cur, $refData) = @_;
my $name = $refData->[1];
my $desc = $refData->[2];
print "\t\@echo \"$name='\$($name)'\"\n" if $cur eq 'var';
}
# 出力スタイル登録簿
my %Styles = (
# HTML style
html => {
begin => <
Makefile Documentation
Makefile Documentation
EOS
end => <