docs
[mirrors/Programs.git] / php / skripty / php_brainfuck.php
1 <?php
2
3 $code = "++++++++[>+++++++++<-]>.<+++++[>++++++<-]>-.+++++++..+++.<++++++++[>>++++<<-]>>.<<++++[>------<-]>.<++++[>++++++<-]>.+++.------.--------.>+.";
4
5 $buffer = "";
6 $pos = 0;
7 $while = array(); // array($i, ...)
8 for ($i=0; $i < strlen($code); $i++) {
9 switch ($code{$i}) {
10 case '>': $pos++; break;
11 case '<': $pos--; break;
12 case '+': $buffer{$pos} = chr(ord($buffer{$pos}) + 1); break;
13 case '-': $buffer{$pos} = chr(ord($buffer{$pos}) - 1); break;
14 case '.': echo $buffer{$pos}; break;
15 case ',': $buffer{$pos} = fgetc(STDIN); break;
16 case '[': if (ord($buffer{$pos})) $while[] = $i; else for ($depth=1; $depth; $i++) {
17 if ($code{$i+1} == '[') $depth++;
18 elseif ($code{$i+1} == ']') $depth--;
19 }
20 break;
21 case ']': $i = array_pop($while) - 1; break;
22 default: echo "Unrecognized character.\n"; exit(1);
23 }
24 }
25
26 echo("\n\n");
27
28 ?>
This page took 0.512274 seconds and 4 git commands to generate.