@Override
        public DataTypes visitBinOP(BinOP binOP) {
            String op = binOP.getOperation();
            if(stringOperations.contains(op)){
                return DataTypes.STRING;
            }
            if(numberOperations.contains(op)){
                DataTypes typeL = (DataTypes)binOP.getChild().get(0).visit(this);
                DataTypes typeR = (DataTypes)binOP.getChild().get(1).visit(this);
                if(typeL==DataTypes.DOUBLE || typeR==DataTypes.DOUBLE)
                    return DataTypes.DOUBLE;
                if(typeL!=DataTypes.NONE){
                    return typeL;
                }
                if(typeR!=DataTypes.NONE){
                    return typeR;
                }
                return DataTypes.NONE;
            }
            if(logicOperations.contains(op)){
                return DataTypes.BOOLEAN;
            }
            return null;
        }