code: function addInvisibles(grammar) {
  		if (!grammar || grammar['tab']) {
  			return;
  		}
  
  		// assign invisibles here to "mark" the grammar in case of self references
  		for (var name in invisibles) {
  			if (invisibles.hasOwnProperty(name)) {
  				grammar[name] = invisibles[name];
  			}
  		}
  
  		for (var name in grammar) {
  			if (grammar.hasOwnProperty(name) && !invisibles[name]) {
  				if (name === 'rest') {
  					addInvisibles(grammar['rest']);
  				} else {
  					handleToken(grammar, name);
  				}
  			}
  		}
  	}
docs: Recursively adds patterns to match invisible characters to the given grammar (if not added already).
  
  @param {Object} grammar