function sectionNodes( ast, name ) {
	var scope;
	var nodes;
	var FLG;

	scope = null;
	nodes = [];

	visit( ast, replacer );

	/**
	* Replaces AST by the nodes of the specified section.
	*
	* @private
	* @param {Node} node - reference node
	* @param {number} index - position of `node` in `parent`
	* @param {Node} parent - parent of `node`
	* @returns {void}
	*/
	function replacer( node, index, parent ) {
		var type;
		if ( FLG ) {
			return;
		}
		type = isSectionTag( node, name );
		if ( scope && parent === scope ) {
			if ( type === 'end' ) {
				// Replace scope by nodes belonging to the given section...
				scope.children.splice( 0, scope.children.length, {
					'type': 'root',
					'children': nodes
				});

				// Set a flag indicating that we have processed a section having the specified name:
				FLG = true;

				scope = null;
				nodes = [];
			} else {
				// Add elements to keep...
				nodes.push( node );
			}
		}
		if ( !scope && type === 'start' ) {
			scope = parent;
		}
	}
}
Retrieves all nodes of the section with the specified name and replaces the AST.

@private
@param {Node} ast - root node
@param {string} name - section name