function stackSymbolRecognizer(data, startSymbol, endSymbol, ignoreString = true) {
    return new Promise(resolve => {
        if (!data) {
            return resolve(data);
        }

        const origData = data;
        try {
            let stack = 1;
            let ignore = false;
            let strSymbol = null;
            data = data
                .split('')
                .filter((c, idx) => {
                    if (ignoreString && (c == "'" || c == '"' || c == '`') && !strSymbol) {
                        strSymbol = c;
                        ignore = true;
                    } else if (ignoreString && strSymbol == c && data[idx - 1] != '\\') {
                        strSymbol = null;
                        ignore = false;
                    }
                    if (stack <= 0) return false;
                    if (c == startSymbol && !ignore) {
                        stack += 1;
                    }
                    if (c == endSymbol && !ignore) {
                        stack -= 1;
                    }
                    return true;
                })
                .join('');
            return resolve(data);
        } catch (err) {
            return resolve(origData);
        }
    });
}
Get first substring between two characters (startSymbol and endSymbol).
This method return remove the first character (startSymbol)
@param {string} data file content.
@param {string} startSymbol
@param {string} endSymbol