public void decompile() {
    	
    	String code = ide.codeText.getText();
    	
    	init();
    	
        for (char c : code.toCharArray()) {
            switch (c) {
            case '<':
                flushVariableIncrementIfRequired();
                flushVariableDecrementIfRequired();

                decrementPointer();
                break;
            case '>':
                flushVariableIncrementIfRequired();
                flushVariableDecrementIfRequired();

                incrementPointer();
                break;
            case '+':
                flushVariableDecrementIfRequired();

                incrementCount++;
                break;
            case '-':
                flushVariableIncrementIfRequired();

                decrementCount++;
                break;
            case ',':
                createVariableIfNotExists();

                readValue();
                break;
            case '.':
                flushVariableIncrementIfRequired();
                flushVariableDecrementIfRequired();

                writeValue();
                break;
            case '[':
                flushVariableIncrementIfRequired();
                flushVariableDecrementIfRequired();

                beginWhileLoop();
                break;
            case ']':
                flushVariableIncrementIfRequired();
                flushVariableDecrementIfRequired();

                endWhileLoop();
                break;
            }
        }
        
 
        CompilerAPI compiler = new CompilerAPI(ide);
        compiler.doCompilation(TEMPLATE.replace("{}", BFDecompilator.decompiledCode));

    }