code: def __command(self, ttype, tvalue):
          
          if self.__cstate is None:
              if ttype == "right_cbracket":
                  self.__up()
                  self.__opened_blocks -= 1
                  self.__cstate = None
                  return True
  
              if ttype != "identifier":
                  return False
              command = get_command_instance(
                  tvalue.decode("ascii"), self.__curcommand)
              if command.get_type() == "test":
                  raise ParseError(
                      "%s may not appear as a first command" % command.name)
              if command.get_type() == "control" and command.accept_children \
                 and command.has_arguments():
                  self.__set_expected("identifier")
              if self.__curcommand is not None:
                  if not self.__curcommand.addchild(command):
                      raise ParseError("%s unexpected after a %s" %
                                       (tvalue, self.__curcommand.name))
              self.__curcommand = command
              self.__cstate = self.__arguments
  
              return True
  
          if self.__cstate(ttype, tvalue):
              return True
  
          if ttype == "left_cbracket":
              self.__opened_blocks += 1
              self.__cstate = None
              return True
  
          if ttype == "semicolon":
              self.__cstate = None
              if not self.__check_command_completion(testsemicolon=False):
                  return False
              self.__curcommand.complete_cb()
              self.__up()
              return True
          return False
docs: Command parsing method
  
          Entry point for command parsing. Here is expected behaviour:
           * Handle command beginning if detected,
           * Call the appropriate sub-method (specified by __cstate) to
             handle the body,
           * Handle command ending or block opening if detected.
  
          Syntax:
              identifier arguments (";" / block)
  
          :param ttype: current token type
          :param tvalue: current token value
          :return: False if an error is encountered, True otherwise