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: Convenience method that raises `exc` with the message, passed
  line number or last line number as well as the current name and
  filename.
code: def fail(
      self,
      msg: str,
      lineno: t.Optional[int] = None,
      exc: t.Type[TemplateSyntaxError] = TemplateSyntaxError,
  ) -> "te.NoReturn":
      """Convenience method that raises `exc` with the message, passed
      line number or last line number as well as the current name and
      filename.
      """
      if lineno is None:
          lineno = self.stream.current.lineno
      raise exc(msg, lineno, self.name, self.filename)
  
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 2 for calling the Parser obj's underlying member method code with example usage: obj.fail(msg, lineno, exc) without return types