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.

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)