<? header("Content-type: text/html; charset=utf-8"); if($_GET["source"] == 42) { echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n\n"; show_source(__FILE__); exit; } ?>
<?="<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>TokigunStudio3.page | Online Befunge Visualizer</title>
<link rel="stylesheet" media="screen" href="http://pandora.sapzil.info/common/css/common.css" type="text/css" />
</head>
<body>
<h1>TokigunStudio Online Befunge Visualizer</h1>
<p><strong>version 0.711 (2005.4.3)</strong></p>
<p>이 프로그램은 <a href="http://www.frox25.no-ip.org/~mtve/code/eso/bef/bef_vis/">펄 버전의 Befunge Visualizer</a>를 php로 바꿔서 온라인으로 제공하는 서비스입니다.</p>
<h2>기능</h2>
<p>이 프로그램은 Befunge 소스를 받아서 프로그램의 흐름을 알기 쉽게 표시해 주는 기능을 가지고 있습니다. 간단한 소개는 다음과 같습니다:</p>
<ul>
<li>Befunge-93의 모든 명령을 지원합니다.</li>
<li>Funge-98의 h, l, m, j, x 명령을 제외한 대부분의 명령을 지원합니다. (단 A-Z 명령은 z 또는 r의 역할만 한다고 가정합니다)</li>
<li>행/열 번호 표시 기능이 있습니다.</li>
</ul>
<p>이 프로그램이 지원하지 않는 것은 다음과 같습니다.</p>
<ul>
<li>기계적인 명령 인식만 가능하며, 지능적인 흐름 탐색을 지원하지 않습니다. 예를 들어서 3j와 같은 당연한 경우도 처리하지 못 합니다.</li>
<li>자기 자신을 바꾸는 프로그램에 대한 처리가 되어 있지 않습니다.</li>
</ul>
<h2>소스 코드</h2>
<p>모든 코드는 <a href="http://www.gnu.org/licenses/lgpl.html">GNU LGPL</a>에 따라 배포됩니다.</p>
<ul>
<li><a href="index.php?source=42">index.php</a></li>
<li><a href="vis.php?source=42">vis.php</a></li>
</ul>
<hr />
<? if($contents = $_POST["contents"]) {
if(get_magic_quotes_gpc()) $contents = stripslashes($contents);
$_contents = $contents;
$contents = str_replace("\r", "\n", str_replace("\r\n", "\n", $contents));
$contents = rtrim(preg_replace("/[ \t]+\n/", "\n", $contents."\n"), "\n");
$c = str_replace("\r", "", str_replace("\n", "", base64_encode($contents)));
if($_POST["bf93"] == "yeah!") $q = "&bf93=yeah!"; else $q = "";
if($_POST["number"] == 42) $q .= "&number=42";
?>
<p><a href="vis.php?contents=<?=$c?><?=$q?>"><img src="vis.php?contents=<?=$c?><?=$q?>" width="" height="" alt=".result image" style="border:0px;" /></a></p>
<hr />
<? } ?>
<form method="post" action="index.php">
<p>아래에 코드를 입력해 주세요. (출력되는 이미지는 referer 체크를 하므로, 반드시 저장해서 사용해 주세요)</p>
<p><textarea rows="25" cols="80" name="contents"><?=htmlspecialchars($_contents)?></textarea></p>
<p>
<input type="checkbox" name="bf93" value="yeah!"<?=(!$_POST["contents"] || $_POST["bf93"]=="yeah!" ? " checked=\"checked\"" : "")?>><label for="bf93">Befunge-93 호환 모드로 동작합니다. (80 x 25 이하의 코드만 사용 가능)</label><br />
<input type="checkbox" name="number" value="42"<?=($_POST["number"]==42 ? " checked=\"checked\"" : "")?>><label for="number">줄 번호를 보여 줍니다.</label>
</p>
<p><input type="submit" value="보기" /></p>
</form>
<address>Copyright © 2004-2005, Kang Seonghoon (Tokigun).</address>
</body>
</html>