var parse = require('./parse');
var walk = require('./walk');
var stringify = require('./stringify');

function ValueParser(value) {
    if (this instanceof ValueParser) {
        this.nodes = parse(value);
        return this;
    }
    return new ValueParser(value);
}

ValueParser.prototype.toString = function () {
    return Array.isArray(this.nodes) ? stringify(this.nodes) : '';
};

ValueParser.prototype.walk = function (cb, bubble) {
    walk(this.nodes, cb, bubble);
    return this;
};

ValueParser.unit = require('./unit');

ValueParser.walk = walk;

ValueParser.stringify = stringify;

module.exports = ValueParser;
