docs: function normalize(acc, val) {
  	if (typeof val === 'string') {
  		var value = val.trim().replace(acc.refIgnoreRegExp, REF_MAGIC);
  		if (value.indexOf(acc.refLabel) === 0 && value.indexOf(acc.refLabel + acc.macroBegin) === -1) {
  			value = value.substring(acc.refLabel.length);
  			this.update(acc.get(value));
  		} else if (value.indexOf(acc.refLabel + 'disable') === 0) {
  			this.remove();
  		} else {
  			value = value.replace(acc.refRegExp, function replaceMacro(val, path) {
  				return acc.get(path);
  			});
  			this.update(value.replace(REF_MAGIC_REGEXP, acc.refLabel));
  		}
  	}
  	var key = this.key;
  	if (key && key.indexOf(acc.annotationLabel) === 0) {
  		normalizer = acc.normalizers[key.substring(acc.annotationLabel.length)];
  		if (normalizer) {
  			normalizer(acc, val, this);
  		}
  	}
  
  	return acc;
  }