C實現Brainfuck編譯器
阿新 • • 發佈:2018-12-13
#include <stdio.h>
main(int a,char *v[])
{
char c;
FILE *p=fopen(v[1],"r");
freopen("a.c","w",stdout);
printf("#include <stdio.h>\n"
"char a[9999];\n"
"int c;\n"
"main()\n"
"{\n");
while((c=fgetc(p))!=EOF)
{
if(c==62)
{
printf("++c;\n");
}
else if(c==60)
{
printf ("--c;\n");
}
else if(c==43)
{
printf("++a[c];\n");
}
else if(c==45)
{
printf("--a[c];");
}
else if(c==46)
{
printf("putchar(a[c]);\n");
}
else if(c==44)
{
printf("a[c]=getchar();\n");
}
else if(c==91)
{
printf("while(a[c])\n"
"{\n");
}
else if(c== 93)
{
printf("}\n");
}
}
printf("}\n");
}
這樣使用:
compile.exe src.bf
然後,a.c就是編譯後的結果。