Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void print_prelude(FILE *output);
- int main(int argc, char **argv) {
- FILE *src = NULL;
- FILE *output;
- if (argc != 2) return -1;
- char op;
- src = fopen(argv[1], "r");
- output = fopen("out.c", "w");
- print_prelude(output);
- while (!feof(src)) {
- op = fgetc(src);
- switch(op) {
- case '>': fputs("++ptr;\n", output); break;
- case '<': fputs("--ptr;\n", output); break;
- case '+': fputs("++*ptr;\n", output); break;
- case '-': fputs("--*ptr;\n", output); break;
- case '.': fputs("putchar(*ptr);\n", output); break;
- case ',': fputs("*ptr = getchar();\n", output); break;
- case '[': fputs("while (*ptr) {\n", output); break;
- case ']': fputs("}\n", output); break;
- }
- }
- fputs("return 0;\n}", output);
- fclose(src);
- fclose(output);
- return 0;
- }
- void print_prelude(FILE *output) {
- fputs(
- "#include <stdio.h>\n"
- "int main(void) {\n"
- "\tchar array[30000] = {0};\n"
- "\tchar *ptr = array;\n"
- "\n",
- output
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement