code: def parse_set(self):
          
          lineno = next(self.stream).lineno
          target = self.parse_assign_target(with_namespace=True)
          if self.stream.skip_if('assign'):
              expr = self.parse_tuple()
              return nodes.Assign(target, expr, lineno=lineno)
          filter_node = self.parse_filter(None)
          body = self.parse_statements(('name:endset',),
                                       drop_needle=True)
          return nodes.AssignBlock(target, filter_node, body, lineno=lineno)
docs: Parse an assign statement.