Execute Brain****/D: Difference between revisions

Updated D entry
(Updated third D entry)
(Updated D entry)
Line 101:
===Version 2===
Simpler and faster:
<lang d>import core.stdc.stdio, core.stdc.stdlib, std.conv;
 
void brainfuckRun(in string code) nothrow {
static int[int] matchBraces(in string code) pure nothrow
out(result) {
foreach (immutable k, immutable v; result) {
assert(k >=0 && k < code.length);
assert(v >=0 && v < code.length);
Line 115:
int[] loopStack;
 
foreach (immutable i, immutable instruction; code) {
if (instruction == '[')
loopStack ~= i;
Line 135:
int cell, index;
 
while (index < cast(int)code.length.signed) {
immutable int instruction = code[index];
 
Line 145:
case '.': putchar(tape[cell]); break;
case ',':
immutable int c = getchar();
if (c == EOF)
exit(1);