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

Updated third D entry
(Version 3 D updated)
(Updated third D entry)
Line 177:
 
===Version 3===
Faster partially compile-time version, (code generated at compile-time, run at run -time):
<lang d>string ctbf(in string code) pure nothrow {
<lang d>import core.stdc.stdio, core.stdc.stdlib;
 
string ctbf(in string code) pure nothrow {
string r;
foreach (immutable c; code)
switch (c) {
case '>': r ~= "i++; assert(i < m.length);"; break;
Line 190 ⟶ 188:
case '[': r ~= "while (m[i]) {"; break;
case ']': r ~= "}"; break;
case '.': r ~= "putchar(m[i]).putchar;"; break;
case ',': r ~= "{ int d = getchar();
if (d == EOF) exit(1);
m[i] = cast(char)d; }"; break;
Line 200 ⟶ 198:
 
void main() {
<lang d> import core.stdc.stdio, core.stdc.stdlib;
 
char[30_000] m = '\0';
size_t i;