aboutsummaryrefslogtreecommitdiffstats
path: root/fuck.c
diff options
context:
space:
mode:
Diffstat (limited to 'fuck.c')
-rw-r--r--fuck.c85
1 files changed, 0 insertions, 85 deletions
diff --git a/fuck.c b/fuck.c
deleted file mode 100644
index 2ea57b5..0000000
--- a/fuck.c
+++ /dev/null
@@ -1,85 +0,0 @@
-// WARNING: THIS PROGRAM PRODUCES CODE THAT ALLOWS UNRESTRICTED MEMORY ACCESS.
-// USE AT YOUR OWN RISK!!!!!!!!!!!!
-// This program takes input from stdin and outputs on stdout and stderr (for errors)
-
-#include<stdio.h>
-
-#define rightAngle "++ptr;\n" // right angle bracket
-#define leftAngle "--ptr;\n" // left angle bracket
-#define plus "++*ptr;\n" // plus
-#define minus "--*ptr;\n" // minus
-#define period "putchar(*ptr);\n" // period
-#define comma "*ptr = getchar();\n" // comma
-#define leftSquare "while (*ptr) {\n" // left square bracket
-#define rightSquare "}\n" // right square bracket
-
-#define indent " "
-
-void autoIndent(int);
-
-int main( int argc, char *argv[] ) {
- int indentLevel = 1;
- printf("// Generated with TK's \"fuck\" brainfuck to C parser.\n");
- printf("#include<stdio.h>\n");
- printf("#include<stdlib.h>\n");
- printf("\n");
- printf("int main() {\n");
- printf(" char *ptrt;\n");
- printf(" ptrt = calloc(1000, sizeof(char));\n");
- printf(" char *ptr;\n");
- printf(" ptr = ptrt;\n");
- printf(" // The following is directly parsed\n");
-
- char c;
- while ( ( c = getchar() ) != EOF ) {
- switch (c) {
- case 62:
- autoIndent(indentLevel);
- printf(rightAngle);
- break;
- case 60:
- autoIndent(indentLevel);
- printf(leftAngle);
- break;
- case 43:
- autoIndent(indentLevel);
- printf(plus);
- break;
- case 45:
- autoIndent(indentLevel);
- printf(minus);
- break;
- case 46:
- autoIndent(indentLevel);
- printf(period);
- break;
- case 44:
- autoIndent(indentLevel);
- printf(comma);
- break;
- case 91:
- autoIndent(indentLevel);
- indentLevel++;
- printf(leftSquare);
- break;
- case 93:
- indentLevel--;
- autoIndent(indentLevel);
- printf(rightSquare);
- break;
- }
- }
- printf(" // Closing cleanup\n");
- printf(" free(ptrt);\n");
- printf(" putchar('\\n');\n");
- printf(" return 0;\n}\n");
- if (--indentLevel)
- fprintf( stderr, "Incorrect number of brackets. - Error parsing file.\n");
- return 0;
-}
-
-void autoIndent(int levels) {
- int i;
- for (i = 0; i < levels; i++)
- printf(indent);
-}