Execute Brain****: Difference between revisions
Content added Content deleted
Line 202: | Line 202: | ||
string ctbf(string code) { |
string ctbf(string code) { |
||
string r |
string r; |
||
⚫ | |||
⚫ | |||
foreach (c; code) |
|||
switch (c) { |
|||
case '>': r ~= "i++; assert(i < m.length);"; break; |
|||
case '<': r ~= "i--; assert(i >= 0);"; break; |
|||
case '+': r ~= "m[i]++;"; break; |
|||
case '-': r ~= "m[i]--;"; break; |
|||
case '[': r ~= "while (m[i]) {"; break; |
|||
case ']': r ~= "}"; break; |
|||
case '.': r ~= "putchar(m[i]);"; break; |
|||
case ',': |
|||
r ~= "int d = getc(stdin); |
|||
if (d == EOF) exit(1); |
|||
⚫ | |||
break; |
break; |
||
default: break; |
default: break; |
||
Line 226: | Line 225: | ||
void main() { |
void main() { |
||
enum char empty = '\0'; |
|||
⚫ | |||
⚫ | |||
⚫ | |||
size_t i; |
|||
⚫ | |||
⚫ | |||
}</lang> |
}</lang> |
||