code: def handle_directive(self, words):
  		
  		refname = words[1]
  		logging.debug("Handling directive " + str(self.getdirective(words[0])))
  		logging.debug("First argument is " + str(words[1]))
  
  		if(self.getdirective(words[0]).isstatic()):
  			if(refname in self.static_refs):
  				raise ReferenceError("[line {}]:{} already defined here (word) {} (line) {}".format(self.line_count,
  							refname, self.static_refs[refname][0], self.static_refs[refname][1]))
  			self.static_refs[refname] = (self.word_count, self.line_count)
  		else:
  			if(refname in self.refs):
  				raise ReferenceError("[line {}]:{} already defined here (word) {} (line) {}".format(self.line_count,
  							refname, self.refs[refname][0], self.refs[refname][1]))
  			self.refs[refname] = (self.word_count, self.line_count)
  		directive = self.getdirective(words[0])
  		self.word_count += directive.get_word_count(words[2:])
  		logging.debug("Directive allocates {} words.".format(directive.get_word_count(words[2:])))
  		return (self.line_count, "data", directive, words[2:])
docs: handles directives: adds the reference and allocates space for the content