⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makedoc.perl

📁 Amis - A maximum entropy estimator 一个最大熵模型统计工具
💻 PERL
📖 第 1 页 / 共 3 页
字号:
	}	if( $pass == 2 )	{		$out = "<H1><eng>Function </eng>$name<jpn> 娭悢</jpn>$overview</H1>\n";		$out = $out . "<H2><jpn>愰尵</jpn><eng>Declaration</eng></H2>\n"			. "<div><code>\n" . &makeref($decl, $name) . ";</code></div>\n";		$out = $out . "<H2><jpn>愢柧</jpn><eng>Description</eng></H2>\n$desc\n";		$out = $out . "<H2><jpn>堷悢</jpn><eng>Arguments</eng></H2>\n$args\n" if $args ne "";		$out = $out . "<H2><jpn>栠傝抣</jpn><eng>Return value</eng></H2>\n$retval\n" if $retval ne "";		$out = $out . "<H2><jpn>拲庍</jpn><eng>Remarks</eng></H2>\n$remark\n" if $remark ne "";		$out = $out . "<H2><jpn>嶲徠</jpn><eng>See also</eng></H2>\n$see\n" if $see ne "";# 嵟廔張棟		$out =~ s#\n\n\n+#\n\n#g;#		print $out;		&sendfile(&make_filename("$name.html"), "Function $name: $title", $out);	}	return "<li><ref>$name()</ref>$overview";}sub vardef{	return &convardef("var", @_);}sub constdef{	return &convardef("const", @_);}sub convardef{	local($convar, $str, $file, $title) = @_;	local($name, $desc, $see, $decl, $namespace);	if( $str =~ s#<name>(.*?)</name>##si )	{		$name = $1;		$name =~ s/\s//g;	}	else { die "no <name> in ${convar}def" };	if( $str =~ s#<desc>(.*?)</desc>##si )	{		$desc = $1;	}	else { $desc = "" };	if( $str =~ s#<remark>(.*?)</remark>##si ) { $remark = $1; }	else { $remark = "" };	if( $str =~ s#<overview>(.*?)</overview>##si ) { $overview = " - $1"; }	else { $overview = "" };	if( $str =~ s#<see>(.*?)</see>##si ) { $see = &makeref($1,$name); }		else { $see = "" };	if( $str =~ s#<decl>(.*?)</decl>##si ) { $decl = $1; }	else { $decl = "" };	if( $str =~ s#<namespace>(.*?)</namespace>##si ) { $namespace = $1; }	else { $namespace = "" };	if( $str =~ s#<body>(.*?)</body>##si )	{		$body = $1;		$body =~ s# -->\n<!-- #\n#g;		if( $decl eq "" )		{			($decl) = ($body =~ /<!--\s+(.*[^\s])\s+-->/);			$decl =~ s/\s*[=\(;].*//;		# cut off variable body			$decl = "#include \"<ref>" . $file . "</ref>\"<br><br>\n$decl";#			print $decl;		}	}	if( $pass == 1 )	{		$link{"$name"} = &make_filename("$name.html");	}	if( $pass == 2 )	{		if( $convar eq "var" )		{			$out = "<H1><eng>Variable </eng>$name<jpn> 曄悢</jpn>$overview</H1>\n";		}		else		{			$out = "<H1><eng>Constant </eng>$name<jpn> 掕悢</jpn>$overview</H1>\n";		}		$out = $out . "<H2><jpn>愰尵</jpn><eng>Declaration</eng></H2>\n"			. "<div><code>\n" . &makeref($decl, $name) . ";</code></div>\n";		$out = $out . "<H2><jpn>愢柧</jpn><eng>Description</eng></H2>\n$desc\n";		$out = $out . "<H2><jpn>堷悢</jpn><eng>Arguments</eng></H2>\n$args\n" if $args ne "";		$out = $out . "<H2><jpn>栠傝抣</jpn><eng>Return value</eng></H2>\n$retval\n" if $retval ne "";		$out = $out . "<H2><jpn>拲庍</jpn><eng>Remarks</eng></H2>\n$remark\n" if $remark ne "";		$out = $out . "<H2><jpn>嶲徠</jpn><eng>See also</eng></H2>\n$see\n" if $see ne "";# 嵟廔張棟		$out =~ s#\n\n\n+#\n\n#g;#		print $out;		&sendfile(&make_filename("$name.html"), "$convar $name: $title", $out);	}	return "<li><ref>$name</ref>$overview";}sub escape{	local($s) = @_;	$s =~ s#/\*([^\*]|\*[^/])+\*/##gs;	$s =~ s/"([^"\\]|\\.)+"/"..."/gs;	$s =~ s/'([^"\\]|\\.)+'/'.'/gs;	return $s;}sub encode{	local($s) = @_;	$s =~ s/&/&amp;/g;	$s =~ s/>/&gt;/g;	$s =~ s/</&lt;/g;	return $s;}sub decode{	local($s) = @_;	$s =~ s/&gt;/>/g;	$s =~ s/&lt;/</g;	$s =~ s/&amp;/&/g;	return $s;}sub make_filename{	local($s) = @_;	$s =~ s/ /_/g;	$s =~ s/\./_/g;	$s =~ s/&gt;/_gt_/g;	$s =~ s/&lt;/_lt_/g;	$s =~ s/&amp;/_amp_/g;	$s =~ s/[;:]/_/g;	$s =~ s/</_lt_/g;	$s =~ s/>/_gt_/g;	$s =~ s/&/_amp_/g;	$s =~ s/_html$/.html/g;	return $s;}sub makeref{	local($s, $x) = @_;	local($t) = &decode($s);	$t =~ s#<ref>.*?</ref>##sig;	local($i, $last);	local(@l) = split(/[^\w0-9\.]+/, $t);	@l = sort {length($b) <=> length($a)} @l;	$last = "";	foreach $i (@l)	{		if( defined $link{$i} && $i ne $x && $i ne $last) 		{			while( $s =~ s#^(([^<]|<([^Rr>]|[Rr]([^Re>]|[Ee]([^Ff>]|[Ff][^>])))[^>]*>|<[Rr][Ee][Ff]>.*</[Rr][Ee][Ff]>)*)\b$i\b#$1<ref>$i</ref>#sg )			{			}		}		$last = $i;	}	return $s;}sub makelink{	local($s, $loc) = @_;	return '<eng><a href="' . $link{$s} . '">' . $linkstr{$s} . '</a></eng>' . 	       '<jpn><a href="j-' . $link{$s} . '">' . $linkstr{$s} . '</a></jpn>' if defined $linkstr{$s};	return '<eng><a href="' . $link{$s} . '">' . $s . '</a></eng>' . 	       '<jpn><a href="j-' . $link{$s} . '">' . $s . '</a></jpn>'           if defined $link{$s};	warn "Undefined reference $s in $loc";	return $s;}sub sendfile{	local($name, $title, $out) = @_;	local($jname, $header, $footer, $jout, $oldout);	$jname = "j-" . $name;	$header = "<HTML>\n" .			  "<!-- This file is automatically generated by makedoc.perl. Do not edit -->\n" .			  "<HEAD><TITLE> $title </TITLE><LINK REL=stylesheet TYPE=\"text/css\" HREF=\"cssdef.css\"></HEAD><BODY>\n";	$footer = "\n\n<br><br><hr><eng><a href=\"$jname\">To Japanese</eng></a><jpn><a href=\"$name\">To English</a></jpn><br>\n" .			  "<script> <!--\n" .			  "xx = new Date(document.lastModified); yy = xx.getYear(); mm = xx.getMonth() + 1; dd = xx.getDate();\n" .			  "if (yy < 2000) { yy += 1900; } if (mm < 10) { mm = \"0\" + mm; } if (dd < 10) { dd = \"0\" + dd; }\n" .			  "document.write(\"Last Modified: \" + yy + \"/\" + mm + \"/\" + dd);\n" .			  "-->\n" .			  "</script>\n" .			  "</body></html>" ;	$out = $header . $out . $footer;	$out =~ s#<ref>(.*?)</ref>#&makelink($1,$name)#esig;	$jout  = $out;	$out =~ s#<jpn>(([^<]|<[^j]|<j[^p]|<jp[^n]|<jpn[^>]|<jpn>.*?</jpn>)*?)</jpn>##sig;	$out =~ s#</?eng>##sig;		$jout =~ s#<eng>(([^<]|<[^e]|<e[^n]|<en[^g]|<eng[^>]|<eng>.*?</eng>)*?)</eng>##sig;	$jout =~ s#</?jpn>##sig;	$oldout = "";	if( -r "$docdir$name" )	{		open (CMP, "<$docdir$name");		while(<CMP>) { $oldout = $oldout . $_; }		close(CMP);	}	if( $oldout ne $out )	{		open (OUT, ">$docdir$name");		print OUT $out;		close(OUT);	}	$oldout = "";	if( -r "$docdir$jname" )	{		open (CMP, "<$docdir$jname");		while(<CMP>) { $oldout = $oldout . $_; }		close(CMP);	}	if( $oldout ne $jout )	{		open (OUT, ">$docdir$jname");		print OUT $jout;		close(OUT);	}}sub parent_search{	local( $name, $imode, $parents ) = @_;	foreach $parent( @{$parents} )	{		($class, $mode) = ($parent =~ /^([^\&\(\)]*)[^\(\)]*\(.*\)$/);		if( $mode eq "" )		{			($class) = ($parent =~ /^([^\&\(\)\s]*)/);			$mode = "public";		}#		print "search $name -> $class, $mode <$parent>\n";		$mode =~ s/virtual\s+//g;		next if( $imode ne "root" && $mode eq "private" );		$mode = "protected" if $mode eq "public" && $imode eq "protected";		$mode = "private" if $imode eq "private";#		print "-- $name <- '$class'\n";		next if( ! defined $classmember{$class} );		foreach $fname ( keys %{$classmember{$class}} )		{#			print "??? $name <- $class : $fname\n";			if( ! defined $classmember{$name}{$fname} )			{#				print "--- $name <- $class : $fname\n";				$classmember{$name}{$fname} = $classmember{$class}{$fname};				foreach $membercount ( @{$classmember{$class}{$fname}} )				{					$fsect = $fsect{$membercount};					next if( $fsect =~ /private/ );					if( $mode ne "public" && $fsect=~ /public/ )					{						$fsect =~ s/public/$mode/;					}					elsif( $mode eq "private" && $fsect =~ /protected/ )					{						$fsect =~ s/protected/private/;					}					push(@{$func{$fsect}}, $membercount);                                                        #					print " *** $name, $fsect, $membercount, @{$func{$fsect}}\n";				}			}		}		if( defined $parent_class{$class} )		{#			print "parents defined for $class = " ;#			foreach $x (@{$parent_class{$class}}) { print "$x "; }#			print "\n";			&parent_search( $name, $mode, $parent_class{$class} );		}		else		{#			print "No parents defined for $class\n";		}	}}sub makesecname{	local($s) = @_;	$s =~ s#friend func#<eng>Friend function</eng><jpn>僼儗儞僪娭悢</jpn>#;	$s =~ s#public ##;	$s =~ s#private #<eng>Private </eng><jpn>僾儔僀儀乕僩 </jpn>#;	$s =~ s#protected #<eng>Protected </eng><jpn>曐岇</jpn>#;	$s =~ s#friend #<eng>Friend </eng><jpn>僼儗儞僪 </jpn>#;	$s =~ s#typedef#<eng>Typedefs</eng><jpn>typedef</jpn>#;	$s =~ s#subclass#<eng>inner class</eng><jpn>撪晹僋儔僗</jpn>#;	$s =~ s#enum#<eng>enum</eng><jpn>楍嫇宆</jpn>#;	$s =~ s#const#<eng>constant</eng><jpn>掕悢</jpn>#;	$s =~ s#staticmember#<eng>static member variable</eng><jpn>惷揑儊儞僶曄悢</jpn>#;	$s =~ s#staticfunc#<eng>static member function</eng><jpn>惷揑儊儞僶娭悢</jpn>#;	$s =~ s#func#<eng>member function</eng><jpn>儊儞僶娭悢</jpn>#;	$s =~ s#member#<eng>member variable</eng><jpn>儊儞僶曄悢</jpn>#;	$s =~ s#ctor#<eng>constructor</eng><jpn>僐儞僗僩儔僋僞</jpn>#;	$s =~ s#dtor#<eng>destructor</eng><jpn>僨僗僩儔僋僞</jpn>#;	$s =~ s#operator#<eng>operator</eng><jpn>墘嶼巕</jpn>#;	$s =~ s#class#<eng>class</eng><jpn>僋儔僗</jpn>#;	return $s;}sub write_cssfile{	local($s) = @_;	open(OUT, ">$docdir$s");print OUT <<'__END__';/*********************************************************************//* This file is automatically generated by makedoc.perl. DO NOT EDIT *//*********************************************************************/body { background-color: rgb(255, 255, 224); }H1 { color: #7f0000; text-align: center; background-color: rgb(255,255,255); padding-left: 10%; padding-right: 10%; padding-top: 1ex; padding-bottom: 1ex; }H2 { color: #7f0000; background-color: rgb(224,224,255);}H3 { color: #7f0000; border-style: solid; border-width: 2px 0px 0px 0px; border-color: rgb(0,0,255); }H4 { margin-bottom: 0em; margin-left: 1em; border-style: solid; border-width: 1px 0px 0px 0px; border-color: rgb(0, 0, 255);}P { text-indent: 1em; margin-left: 5%; margin-right: 5%; line-height: 125%;}DL.member { margin-left: 3em; margin-top: 0em; }HR { color: rgb(192,192,192); height: 5px;}/*********************************************************************/__END__	close(OUT);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -