34 lines
645 B
Bash
Executable File
34 lines
645 B
Bash
Executable File
#!/bin/awk -f
|
|
# a brainfuck to C translator.
|
|
# Needs a recent version of gawk, if on OS X,
|
|
# try using Fink's version.
|
|
#
|
|
# steve jenson
|
|
|
|
BEGIN {
|
|
print "#include <stdio.h>\n";
|
|
print "int main() {";
|
|
print " int c = 0;";
|
|
print " static int b[30000];\n";
|
|
}
|
|
|
|
{
|
|
#Note: the order in which these are
|
|
#substituted is very important.
|
|
gsub(/\]/, " }\n");
|
|
gsub(/\[/, " while(b[c] != 0) {\n");
|
|
gsub(/\+/, " ++b[c];\n");
|
|
gsub(/\-/, " --b[c];\n");
|
|
gsub(/>/, " ++c;\n");
|
|
gsub(/</, " --c;\n");
|
|
gsub(/\./, " putchar(b[c]);\n");
|
|
gsub(/\,/, " b[c] = getchar();\n");
|
|
print $0
|
|
}
|
|
|
|
END {
|
|
print "\n return 0;";
|
|
print "}";
|
|
}
|
|
|