code: def process_tag(self, tag):
          
          try:
              if not self._is_function(tag):
                  self._tag_type_processor[tag.data_type](tag)
          except KeyError as ex:
              raise Exception('Tag type {0} not recognized for tag {1}'
                              .format(
                                  tag.data_type,
                                  tag.name),
                              ex)
docs: Processes tag and detects which function to use