code: function declaration() {
  		var m = match(/^<\?xml\s*/);
  		if (!m) return;
  
  		// tag
  		var node = {
  			attributes: {},
  		};
  
  		// attributes
  		while (!(eos() || is('?>'))) {
  			var attr = attribute();
  			if (!attr) return node;
  			node.attributes[attr.name] = attr.value;
  		}
  
  		match(/\?>\s*/);
  
  		return node;
  	}
docs: Declaration.