def _p_uid(self):
        self.uid_command = True
        self._p_simple_string(' ')

        # Basically we re-interpret a UID command as a regular command. The
        # 'uid_command' flag will tell the interpreter how to interpret the
        # command.
        #
        command = self._p_re(_atom_re).lower()
        if command not in uid_commands:
            raise BadSyntax("%s is not a valid UID command: %s" % \
                            (command, str(uid_commands)))
        self.command = command
        if not hasattr(self, '_p_%s' % self.command):
            raise UnknownCommand(value = self.command)
        getattr(self, '_p_%s' % self.command)()

    #
    # Here ends the list of supported commands
    #
    #######################################################################
    #######################################################################
    #
    # Here are all the utility parsing functions to parse various bits of the
    # IMAP message (and these are all called by the above functions.
    #
    # The one significant difference of these methods is that they return what
    # they have been asked to parse, or raise an exception. They swallow input
    # upon success.
    #

    #######################################################################
    #
uid ::= "UID" SPACE (copy / fetch / search / store / expunge)
dataset/ETHPy150Open scanner/asimap/asimap/parse.py/IMAPClientCommand._p_uid