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","."]
code: def parse_dict(self) -> nodes.Dict:
      token = self.stream.expect("lbrace")
      items: t.List[nodes.Pair] = []
      while self.stream.current.type != "rbrace":
          if items:
              self.stream.expect("comma")
          if self.stream.current.type == "rbrace":
              break
          key = self.parse_expression()
          self.stream.expect("colon")
          value = self.parse_expression()
          items.append(nodes.Pair(key, value, lineno=key.lineno))
      self.stream.expect("rbrace")
      return nodes.Dict(items, lineno=token.lineno)
  
imports: import typing
  import typing
  from .None import nodes
  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 43 for calling the Parser obj's underlying member method code with example usage: obj.parse_dict() and returns: nodes