<!doctype html>
<html>
  <head>
    <link rel="stylesheet" href="lib/style.css">    
  </head>
  <body>
    <h1>asm2blueqat</h1>
    <textarea id="src" rows="10" cols="20">
make 4
in 0 1
out 2 3
and 0 1 3
xor 0 1 2
</textarea>
<input type="submit" value="run" onclick="run()"><br>
<textarea id="out" rows="10" cols="80">
</textarea>
    <script src="lib/script.js"></script>
  </body>
</html>
/* Add your styles here */



var src = document.getElementById("src");
var out = document.getElementById("out");
function run() {
  var in0 = "";
  var make0 = "";
  var u = "";
  var str = src.value;
  var codes = str.split("\n");  
  var len = codes.length;
  var i;
  for (i = 0; i < len; i++)
  {
    var code = codes[i].split(" ");
    switch (code[0])
    {
    case "out":
    break;
    case "wire":
    break;
    case "make":
      make0 = "Circuit(";
      var a = parseInt(code[1]);
      make0 += a + ")";
    break;
    case "in":
      in0 = "";
      var b = parseInt(code[2]);
      b++;
      in0 += ".h[ : " + b + "]";
    break;
    case "xor":  
      var a = parseInt(code[1]);
      var b = parseInt(code[2]);
      var c = parseInt(code[3]);
      u += ".ccx[" + a + ", " + b + ", " + c + "]";
    break;
    case "and":  
      var a = parseInt(code[1]);
      var b = parseInt(code[2]);
      var c = parseInt(code[3]);
      u += ".cx[" + a + ", " + c + "].cx[" + b + ", " + c + "]";
    break;
    case "or":  
      var a = parseInt(code[1]);
      var b = parseInt(code[2]);
      var c = parseInt(code[3]);
      u += ".ccx[" + a + ", " + b + ", " + c + "].cx[" + a + ", " + c + "].cx[" + b + ", " + c + "]";
    break;
    case "":
    break;
    default:
      alert(code[0]);
    break;
    }
  }
  out.value = "from blueqat import Circuit\n\nprint (" 
    + make0
    + in0 
    + u 
    + ".m[ : ].run(shots = 1000))\n";
}