js.bml[1] = 'BF->JS compiler'
#3981 のBookmarklet版。
投稿するつもりで書いたものの,長くなりすぎて見苦しいのでここへ。
javascript:s='',o={'>':'m[p+=1]|=0;','<':'m[p-=1]|=0;','+':'m[p]=m[p]+1&255;','-':'m[p]=m[p]-1&255;',',':'m[p]=get().charCodeAt()&255;','.':'put(c(m[p]));','[':'while(m[p]){',']':'}'},b=document.body;(b.innerText||b.textContent).replace(/>+|<+|\++|-+|[,.[\]]/g,function($){s+=(l=$.length)>1?o[$.charAt()].replace(1,l):o[$]});'<textarea id=X cols=50 rows=20>'+eval('0,function(get,put){var m=[0],p=0,c=String.fromCharCode;'+s+'return [m, p]}')+'</textarea><button onclick=\'x=X.value,X.value="",I=[],eval("0,"+x)(function(){while(!I[0])I=prompt("stdin",I.join("")).split("");return I.shift()},function($){X.value+=$})\'>Run</button>' // 07/11/20 修正: // * バイト列のエミュレーション (&255) // * 終了状態を返す (return [m, p])
body内をBFコードとみなしてコンパイルし,textareaに出力。buttonを押すと実行。
Firefoxだと生成したコードをちゃんと整形してくれるのが素晴らしい。