forked from: Shorten Brainf*ck Interpreter

by amine2010 forked from Shorten Brainf*ck Interpreter (diff: 2)
♥0 | Line 13 | Modified 2010-07-23 07:36:30 | MIT License
play

ActionScript3 source code

/**
 * Copyright amine2010 ( http://wonderfl.net/user/amine2010 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/A2CR
 */

// forked from Susisu's Shorten Brainf*ck Interpreter
package{
    import flash.display.Sprite;
    import flash.text.TextField;
    public class BrainfuckInterpreter extends Sprite{
        public function BrainfuckInterpreter(){
            var code:String="++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.";
            var result:TextField=new TextField();
            result.text=b(code);
            addChild(result);
        }
        //Please shorten this!
        private function b(c:String):String{var a:Vector.<int>=new Vector.<int>(99),r:String="",p:int,t:int,d:Array=c.split(""),l:int=d.length,i:int,j:int;for(;i<l;i++){var n:String=d[i];if(n=="+")a[p]++;if(n=="-")a[p]--;if(n==">")p++;if(n=="<")p--;if(n==".")r+=String.fromCharCode(a[p]);if(n=="["){if(a[p]==0){t=0;for(j=i+1;j<l;j++){if(d[j]=="[")t++;if(d[j]=="]"){if(t>0)t--;else{i=j;break;}}}}}if(n=="]"){if(a[p]!=0){t=0;for(j=i-1;j>=0;j--){if(d[j]=="]")t++;if(d[j]=="["){if(t>0)t--;else{i=j;break;}}}}}}return r;}
    }
}