(function (tree) {
tree.Element = function (combinator, value, index) {
this.combinator = combinator instanceof tree.Combinator ? combinator : new(tree.Combinator)(combinator); if (typeof(value) === 'string') { this.value = value.trim(); } else if (value) { this.value = value; } else { this.value = ""; } this.index = index;
}; tree.Element.prototype.eval = function (env) {
return new(tree.Element)(this.combinator, this.value.eval ? this.value.eval(env) : this.value, this.index);
}; tree.Element.prototype.toCSS = function (env) {
return this.combinator.toCSS(env || {}) + (this.value.toCSS ? this.value.toCSS(env) : this.value);
};
tree.Combinator = function (value) {
if (value === ' ') { this.value = ' '; } else if (value === '& ') { this.value = '& '; } else { this.value = value ? value.trim() : ""; }
}; tree.Combinator.prototype.toCSS = function (env) {
return { '' : '', ' ' : ' ', '&' : '', '& ' : ' ', ':' : ' :', '+' : env.compress ? '+' : ' + ', '~' : env.compress ? '~' : ' ~ ', '>' : env.compress ? '>' : ' > ' }[this.value];
};
})(require('../tree'));