docs: function(directive, directiveName, currentFile, variables) {
  			if (this._inConditional()) {
  				if (!this._isConditional(directiveName)) {
  					this.currentConditional.addDirective(directive);
  					return {output: ""};
  				}
  			}
  
  			var attributes = this._parseAttributes(directive);
  
  			function interpolate() {
  				for (var i = 0; i < attributes.length; i++) {
  					var attribute = attributes[i];
  					attribute.name = this._interpolate(attribute.name, variables, false);
  					attribute.value = this._interpolate(attribute.value, variables, false);
  				}
  			}
  
  			switch (directiveName) {
  				case "if":
  					interpolate.apply(this);
  					return this._handleIf(attributes);
  				case "elif":
  					interpolate.apply(this);
  					return this._handleElseIf(attributes);
  				case "else":
  					interpolate.apply(this);
  					return this._handleElse();
  				case "endif":
  					interpolate.apply(this);
  					return this._handleEndIf(currentFile, variables);
  				case "set":
  					interpolate.apply(this);
  					return this._handleSet(attributes);
  				case "echo":
  					interpolate.apply(this);
  					return this._handleEcho(attributes, variables);
  				case "include":
  					interpolate.apply(this);
  					return this._handleInclude(attributes, currentFile, variables);
  			}
  
  			return {error: "Could not find parse directive #" + directiveName};
  		}