| YaK:: Brainfuck Compiler in Tcl | [Changes] [Calendar] [Search] [Index] [PhotoTags] |
Try it on this program : http://www.muppetlabs.com/~breadbox/bf/factor.b.txt
e.g. save the following code as "bfc.tcl"; then do tclsh bfc.tcl <factor.b.txt >factor.c ; gcc factor.c ; echo 111 | ./a.out
puts "
#include <stdio.h>
unsigned char mem\[99999];
main()
\{
unsigned char* p= mem+50000;
\{
"
while {[gets stdin b]>=0} {
set b [string trim $b]
regsub -all {[^]\055+<>,.[]} $b { } b
puts [string map [
list < {--p;} > {++p;} + {++*p;} - {--*p;} . {putchar(*p);} , {*p=getchar();} \[ "while(*p)\{" \] "\}"
] $b]
}
puts " \}\} "
|
See also: http://www.muppetlabs.com/~breadbox/bf/
Warning: Unchecked buffer. Only use with brainfuck programs that don't move the pointer more than the maximum allowed 30000 positions.
| (last modified 2004-11-05) [Login] |