rm chain.* echo "#include " >> chain.c echo "#include " >> chain.c echo "#include " >> chain.c echo "int main( int argc, char **argv ) {" >> chain.c echo " int fd[2];" >> chain.c echo " char msg[10];" >> chain.c echo " int i;" >> chain.c echo " FILE * f;" >> chain.c echo " if( argc == 1 ) {// no args, being called to get msg from perl" >> chain.c echo " i = read( 0, msg, 9 );" >> chain.c echo " msg[i] = '\\0';" >> chain.c echo " f = fopen( \"chain.html\", \"w\" );" >> chain.c echo " fprintf(f,\"\\n\");" >> chain.c echo " fclose(f);" >> chain.c echo " return(0); }" >> chain.c echo " // args, being called to handle code" >> chain.c echo " // use Python to figure out the BrainF*ck" >> chain.c echo " // by turning it in to good old Perl" >> chain.c echo " printf( \"f = open(\\'chain.pl\\',\\'w\\')\\n\" );" >> chain.c echo " printf( \"f.write(\\'\$ptr = 0;\\')\\n\" );" >> chain.c echo " printf( \"f.write(\\'\$res = \\\"\\\";\\')\\n\" );" >> chain.c echo " printf( \"f.write(\\'@arr = (0,0,0,0,0,0,0,0,0,0);\\')\\n\" );" >> chain.c echo " printf( \"bf = \\'%s\\'\\n\", argv[1] );" >> chain.c echo " printf( \"for i in range(len(bf)):\\n\");" >> chain.c echo " printf( \"\\tif( bf[i] == '+' ):\\n\");" >> chain.c echo " printf( \"\\t\\tf.write( \\'\$arr[\$ptr]++;\\' )\\n\" );" >> chain.c echo " printf( \"\\telif( bf[i] == '-' ):\\n\");" >> chain.c echo " printf( \"\\t\\tf.write( \\'\$arr[\$ptr]--;\\' )\\n\" );" >> chain.c echo " printf( \"\\telif( bf[i] == '<' ):\\n\");" >> chain.c echo " printf( \"\\t\\tf.write( \\'\$ptr--;\\' )\\n\");" >> chain.c echo " printf( \"\\telif( bf[i] == '>' ):\\n\");" >> chain.c echo " printf( \"\\t\\tf.write( \\'\$ptr++;\\' )\\n\");" >> chain.c echo " printf( \"\\telif( bf[i] == '.' ):\\n\");" >> chain.c echo " printf( \"\\t\\tf.write( \\'\$res = \$res . chr(\$arr[\$ptr]);\\' )\\n\");" >> chain.c echo " printf( \"\\telif( bf[i] == '[' ):\\n\");" >> chain.c echo " printf( \"\\t\\tf.write( \\'while( \$arr[\$ptr] != 0 ) {\\' )\\n\");" >> chain.c echo " printf( \"\\telif( bf[i] == ']' ):\\n\");" >> chain.c echo " printf( \"\\t\\tf.write( \\'}\\' )\\n\");" >> chain.c echo " printf( \"f.write(\\'print \$res;\\')\\n\" );" >> chain.c echo " printf( \"f.close()\\n\" );" >> chain.c echo " printf( \"\\n%c\", 0 ); } // quit python" >> chain.c gcc chain.c -o chain chain ++++++++[-\>++++++++\<]\>[-\>+\>+\>+\<\<\<]+++++[-\>++++\>++++\>+\<\<\<]\>+++\>\>+\<\<.\>.\>. | python perl chain.pl | chain firefox chain.html