_analyzedSource() {
        if (this._analysis) {
            return this._analysis;
        }

        const keys = {};
        const values = {};

        const lines = this.source.split('\n');
        const kvSeparator = /"\s*:\s*"/;
        lines.shift();
        lines.pop();

        // Since we shifted the array, start at 1
        let index = 1;
        for (const line of lines) {
            index += 1;
            const [keyMatch, valueMatch] = line.split(kvSeparator);
            if (!keyMatch || !valueMatch) {
                continue;
            }

            const key = keyMatch.split('"')[1];
            const value = valueMatch.split('"')[0];
            keys[key] = {line: index, column: line.indexOf(key)};
            values[value] = {line: index, column: line.indexOf(value, keyMatch.length + 1)};
        }

        this._analysis = {key: keys, value: values};
        return this._analysis;
    }
Returns a probabilistic location of keys and values in the file
Assumes the file contains one key/value pair per line
@private