JSFiddle - React, Tailwind, and code Playground

JavaScript

var w=function(s){document.write(s);};
var wl=function(s){document.writeln(s+'<br />');};
var wa=function(a){w('['+a.join(',')+']');};
w('<pre>');

// sample machine
var m0 =
    "ab \n"+
    "\\_A\n"+
    " C ";

// full adder
var m =
    '1 a  \n'+
    '\\_/ b\n'+
    '  \\_/\n'+
    ' \\/  \n'+
    ' /\\  \n'+
    '_ __/\n'+
    ' \\_/ \n'+
    '  \\/c\n'+
    ' \\\\_/\n'+
    '  _S1\n'+
    '\\  \\/\n'+
    ' __/ \n'+
    '  /  \n'+
    ' _   \n'+
    '\\__  \n'+
    ' C   ';

// a-z = 97-122   [C>'`']

// \ = 92
// / = 47

// 1 = 49
// {space}  = 32

// A-Z = 65-90
// _ = 95

l=m.split(q='\n');o='';for(r=Array(z=l[i=0].length);i<l.length;i++){L=l[i];n=Array(z);for (c=0;c<z;n[c]=N,r[c++]=R){C=L[c];N=~~n[c];R=~~r[c];if(C>'`'){N+=x=~~prompt(C);R+=x;o+=C+': '+x+q}else if(C=='\\'||C=='/'){for(d=c+(g=C=='/'?-1:1);L[d]=='_';r[d]+=R,d+=g);if(L[d]>'@'&L[d]<'[')r[d]+=r[c];n[d]=~~n[d]+R}else if(C<'2')N+=R+=~~C;else if(C!='_')o+=C+': '+R+q}for(c=0;c<z;c++)if(L[c]=='_')n[c]+=(r[c]%2)?0:r[c]>0;r=n}alert(o)

/*
GOLFED SOURCE (see history for clearer source)
l=m.split(q='\n');o='';
for (r=Array(z=l[i=0].length);i<l.length;i++)
{
    L=l[i];
    n=Array(z);
    for (c=0;c<z;n[c]=N,r[c++]=R)
    {
        C=L[c];N=~~n[c];R=~~r[c];
        if (C>'`') {
            N+=x=~~prompt(C);
            R+=x;
            o+=C+': '+x+q;
        } else if (C=='\\'||C=='/') {
            for(d=c+(g=C=='/'?-1:1);L[d]=='_';r[d]+=R,d+=g);
            if(L[d]>'@'&L[d]<'[')r[d]+=r[c];
            n[d]=~~n[d]+R;
        } else if (C<'2')
            N+=R+=~~C;
        else if (C!='_')
            o+=C+': '+R+q;
    }
    for (c=0;c<z;c++)
        if (L[c]=='_')
            n[c]+=(r[c]%2)?0:r[c]>0;
    r=n;
}
alert(o);
*/

w('</pre>');