| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | <!doctype html><title>CodeMirror: Brainfuck mode</title><meta charset="utf-8"/><link rel=stylesheet href="../../doc/docs.css"><link rel="stylesheet" href="../../lib/codemirror.css"><script src="../../lib/codemirror.js"></script><script src="../../addon/edit/matchbrackets.js"></script><script src="./brainfuck.js"></script><style>	.CodeMirror { border: 2px inset #dee; }    </style><div id=nav>  <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>  <ul>    <li><a href="../../index.html">Home</a>    <li><a href="../../doc/manual.html">Manual</a>    <li><a href="https://github.com/codemirror/codemirror">Code</a>  </ul>  <ul>    <li><a href="../index.html">Language modes</a>    <li><a class=active href="#"></a>  </ul></div><article><h2>Brainfuck mode</h2><form><textarea id="code" name="code">[ This program prints "Hello World!" and a newline to the screen, its  length is 106 active command characters [it is not the shortest.]  This loop is a "comment loop", it's a simple way of adding a comment  to a BF program such that you don't have to worry about any command  characters. Any ".", ",", "+", "-", "<" and ">" characters are simply  ignored, the "[" and "]" characters just have to be balanced.]+++++ +++               Set Cell #0 to 8[    >++++               Add 4 to Cell #1; this will always set Cell #1 to 4    [                   as the cell will be cleared by the loop        >++             Add 2 to Cell #2        >+++            Add 3 to Cell #3        >+++            Add 3 to Cell #4        >+              Add 1 to Cell #5        <<<<-           Decrement the loop counter in Cell #1    ]                   Loop till Cell #1 is zero; number of iterations is 4    >+                  Add 1 to Cell #2    >+                  Add 1 to Cell #3    >-                  Subtract 1 from Cell #4    >>+                 Add 1 to Cell #6    [<]                 Move back to the first zero cell you find; this will                        be Cell #1 which was cleared by the previous loop    <-                  Decrement the loop Counter in Cell #0]                       Loop till Cell #0 is zero; number of iterations is 8The result of this is:Cell No :   0   1   2   3   4   5   6Contents:   0   0  72 104  88  32   8Pointer :   ^>>.                     Cell #2 has value 72 which is 'H'>---.                   Subtract 3 from Cell #3 to get 101 which is 'e'+++++++..+++.           Likewise for 'llo' from Cell #3>>.                     Cell #5 is 32 for the space<-.                     Subtract 1 from Cell #4 for 87 to give a 'W'<.                      Cell #3 was set to 'o' from the end of 'Hello'+++.------.--------.    Cell #3 for 'rl' and 'd'>>+.                    Add 1 to Cell #5 gives us an exclamation point>++.                    And finally a newline from Cell #6</textarea></form>    <script>      var editor = CodeMirror.fromTextArea(document.getElementById("code"), {        lineNumbers: true,        matchBrackets: true,        mode: "text/x-brainfuck"      });    </script>    <p>A mode for Brainfuck</p>    <p><strong>MIME types defined:</strong> <code>text/x-brainfuck</code></p>  </article>
 |