docs: def parse_tunnel(self, node):
          """
          Parses <Tunnel>
  
          @param node: Node containing the <Tunnel> element
          @type node: xml.etree.Element
  
          @raise ParseError: Raised when the Tunnel does not have a name.
          """
  
          try:
              name = node.lattrib['name']
          except:
              self.raise_error('<Tunnel> must specify a name')
          try:
              end_a = node.lattrib['enda']
          except:
              self.raise_error('<Tunnel> must specify: endA')
          try:
              end_b = node.lattrib['enda']
          except:
              self.raise_error('<Tunnel> must specify: endB')
          try:
              component_a = node.lattrib['componenta']
          except:
              self.raise_error('<Tunnel> must specify: componentA')
          try:
              component_b = node.lattrib['componentb']
          except:
              self.raise_error('<Tunnel> must specify: componentB')
  
  
          tunnel = Tunnel(name, end_a, end_b, component_a, component_b)
  
          self.current_structure.add_tunnel(tunnel)