vendor/emmet.js
function(regexp, fn, options) {
			if (_.isString(regexp))
				regexp = new RegExp(regexp);
			
			generators.add(function(node, syntax) {
				var m;
				if ((m = regexp.exec(node.name()))) {
					return fn(m, node, syntax);
				}
				
				return null;
			}, options);
		}
function(regexp, fn, options) {
			if (_.isString(regexp))
				regexp = new RegExp(regexp);
			
			generators.add(function(node, syntax) {
				var m;
				if ((m = regexp.exec(node.name()))) {
					return fn(m, node, syntax);
				}
				
				return null;
			}, options);
		}
Add generator. A generator function <code>fn</code> will be called
only if current abbreviation matches <code>regexp</code> regular
expression and this function should return <code>null</code> if
abbreviation cannot be resolved
@param {RegExp} regexp Regular expression for abbreviation element name
@param {Function} fn Resolver function
@param {Object} options Options list as described in
{@link HandlerList#add()} method