flufflepuff icon indicating copy to clipboard operation
flufflepuff copied to clipboard

Reference implementation fails "Hello World!"

Open rdebath opened this issue 7 years ago • 0 comments

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);

rdebath avatar Sep 17 '18 21:09 rdebath