Talk:ThaM

Commented BF Interpreter
1 |Get input, null terminated| [I^B] [  |If the commands ascii value minus 43 doesn't equal 0(so the number isn't 43), add 43 back and check the next chr the same way| 43-(43+  44-(44+   45-(45+   46-(46+   60-(60+   91-(91+   |If its not a BF operator pop it, if it is chr 33, pop it still and end the loop| 93-(B!B) |If it is one of the chrs matched above, put it onto the source stack "s" as a num from 1-7| (7^s))  (6^s)) (5^s))  (4^s)) (3^s))  (2^s)) (1^s) ] |Take the first command off of the source stack "s"| s^B [  |Check which command it is| 1-(1+  2-(2+   3-(3+   4-(4+   5-(5+   6-(6+   |If it isn't ']', there was a bug in the interpreter, so output "wtf?" and end the loop by putting 0 on the source stack "s"| 7-(0,063,102,116,119[B^O]0B^s)(    |If it is ] and the current bf cell is not 0 then...|     c^B1+B^cr^B^B( |Get the last executed command from the stack e|      e^B [        |If the last executed command isn't a '[', just push it back on the source stack "s"| 6-(6+B^s)(          |If it is a [, check if its the matching one to our open bracket, if it is end this loop, else continue looking|           o^B1-B^B^oc^B^BB^c-(6B^e0)(6B^s)         ) ]    )))   |If the command is a '[', increase the [ count|   (o^B1+B^o6^e)) |If the command is '>', move the data from the left data stack "l" to the right data stack "r", making the top of the right data stack the current BF cell| (l^r5^e))  |If the command is '.', output the chr on the top of right data stack "r"|   (r^BO4^e)) |If the command is '-', decrease the top of right data stack "r"| (r^B1-B^r3^e))  |If the command is ',', get a chr from input and replace the top of right data stack "r"|   (I^Br^B!B^r2^e)) |If the command is '+', increase the top of the right data stack "r"| (r^B1+B^r1^e) |Get the next command from source stack "s"| s^B ]= poiuy_qwert 19:22, 9 Sep 2006 (UTC)


 * Modified to match updated spec. --MizardX 02:14, 29 November 2008 (UTC)