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_subscript(self, node):
      token = next(self.stream)
      if token.type == "dot":
          attr_token = self.stream.current
          next(self.stream)
          if attr_token.type == "name":
              return nodes.Getattr(
                  node, attr_token.value, "load", lineno=token.lineno
              )
          elif attr_token.type != "integer":
              self.fail("expected name or number", attr_token.lineno)
          arg = nodes.Const(attr_token.value, lineno=attr_token.lineno)
          return nodes.Getitem(node, arg, "load", lineno=token.lineno)
      if token.type == "lbracket":
          args = []
          while self.stream.current.type != "rbracket":
              if args:
                  self.stream.expect("comma")
              args.append(self.parse_subscribed())
          self.stream.expect("rbracket")
          if len(args) == 1:
              arg = args[0]
          else:
              arg = nodes.Tuple(args, "load", lineno=token.lineno)
          return nodes.Getitem(node, arg, "load", lineno=token.lineno)
      self.fail("expected subscript expression", token.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 44 for calling the Parser obj's underlying member method code with example usage: obj.parse_subscript(node) and returns: nodes, nodes, nodes