def preterminals(self):
        """
        Return the list of preterminals (i.e. lexical grammar-entities).
        """
        nodes = []
        for dtr in self.daughters:
            if isinstance(dtr, UdfTerminal):
                nodes.append(self)
            else:
                nodes.extend(dtr.preterminals())
        return nodes