class_docstr: This is the central parsing class Jinja uses.  It's passed to
  extensions and can be used to parse expressions or statements.
class_docstr_tok: ["This","is","the","central","parsing","class","Jinja","uses",".","It","'s","passed","to","extensions","and","can","be","used","to","parse","expressions","or","statements","."]
docstr: Parse an assign statement.
docstr_tok: ["Parse","an","assign","statement","."]
code: def parse_set(self):
      """Parse an assign statement."""
      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)
  
imports: from .None import nodes
  from ._compat import imap
  from .exceptions import TemplateAssertionError
  from .exceptions import TemplateSyntaxError
  from .lexer import describe_token
  from .lexer import describe_token_expr
label_desc: Use image node_id 10 for calling the Parser obj's underlying member method code with example usage: obj.parse_set() and returns: nodes, nodes