flufflepuff
flufflepuff copied to clipboard
Reference implementation fails "Hello World!"
This translation from BF should print "Hello World!"
pf*gasp*b*gasp*tbl*gasp**pomf*bpf*gasp*bpfpfpfb*gasp*pfpfpfpfpfpfpfpfpfpfpfb*pomf**gasp*b*pomf*bl*gasp*t*pomf*bbl*pomf**pomf*pfpfpfpfpfpfpfpfpfpft*pomf*bbbbbbblblblbl!ttpfpfpf!tbl!!pfpfpf!tbl!bbb!tt!pfpfpf!blblblblblbl!bbl!ttpf!t!
This implmentation does print "Hello World!" as does Lunar Fire
#!/usr/bin/ruby
h = {
'b' => 'p+=1;',
't' => 'p-=1;',
'pf' => 'm[p]+=1;',
'bl' => 'm[p]-=1;',
'!' => 'putc m[p];',
'?' => 'm[p]=STDIN.getbyte if !STDIN.eof;',
'*gasp*' => '(',
'*pomf*' => ')while((m[p]&=255)!=0);'
}
r = Regexp.union(Regexp.union(h.keys.sort{|a,b|b.length<=>a.length}),/./);
eval 'm=Hash.new(p=0);'+ARGF.read.gsub(/[\n\t ]+/," ").gsub(r,h);