function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {
	var post = offset - 1
	var rule = offset === 0 ? rules : ['']
	var size = sizeof(rule)

	for (var i = 0, j = 0, k = 0; i < index; ++i)
		for (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)
			if (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\f/g, rule[x])))
				props[k++] = z

	return node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)
}
@param {string} value
@param {object} root
@param {object?} parent
@param {number} index
@param {number} offset
@param {string[]} rules
@param {number[]} points
@param {string} type
@param {string[]} props
@param {string[]} children
@param {number} length
@param {object[]} siblings
@return {object}