ich hab mal aus langeweile nachts en brainfuck interpreter in php geschrieben
allerdings wird ',' aus offensichtlichen gründen nicht unterstützt
<?php
function brainfuck($code) {
$ret='';
$reg=array();
$index=0;
$loop=array();
$lvi=array();;
$lindex=0;
for($i=0;$i<strlen($code);$i++) {
switch($code{$i}) {
case '+':
$reg[$index]++;
break;
case '-':
$reg[$index]--;
break;
case '>':
$index++;
if(!isset($reg[$index])) $reg[$index]=0;
break;
case '<':
$index--;
break;
case '.':
$ret.=chr($reg[$index]);
break;
case '[':
$lindex++;
$lvi[$lindex]=$index;
$loop[$lindex]=$i;
break;
case ']':
if($reg[$lvi[$lindex]]!=1) {
$i=$loop[$lindex];
}
break;
}
}
return $ret;
}
echo brainfuck("+++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>."
?>
incl. hello world