private AFParser recursiveAFNEGenerate(RegularExpresionNode node) {
        AFParser result = null;
        if(node instanceof ConcatNode){
            RegularExpresionNode left = ((ConcatNode)node).leftOperandNode;
            RegularExpresionNode right = ((ConcatNode)node).rightOperandNode;
            result = this.concatenateAutomatas(this.recursiveAFNEGenerate(left), this.recursiveAFNEGenerate(right));
        }else if(node instanceof OrNode){
            RegularExpresionNode left = ((OrNode)node).leftOperandNode;
            RegularExpresionNode right = ((OrNode)node).rightOperandNode;
            result = this.orAutomatas(this.recursiveAFNEGenerate(left), this.recursiveAFNEGenerate(right));
        }else if(node instanceof CycleNode){
            RegularExpresionNode unique = ((CycleNode)node).OperandNode;
            result = this.asteriscAutomata(this.recursiveAFNEGenerate(unique));
        }else if(node instanceof SymbolNode){
            String value = "" + ((SymbolNode)node).Value;
            result = this.generateLeafAutomata(value);
        }
        return result;
    }