Lines Matching refs:node
255 node = result = nodes.If(lineno=self.stream.expect("name:if").lineno)
257 node.test = self.parse_tuple(with_condexpr=False)
258 node.body = self.parse_statements(("name:elif", "name:else", "name:endif"))
259 node.elif_ = []
260 node.else_ = []
263 node = nodes.If(lineno=self.stream.current.lineno)
264 result.elif_.append(node)
272 node = nodes.With(lineno=next(self.stream).lineno)
283 node.targets = targets
284 node.values = values
285 node.body = self.parse_statements(("name:endwith",), drop_needle=True)
286 return node
289 node = nodes.ScopedEvalContextModifier(lineno=next(self.stream).lineno)
290 node.options = [nodes.Keyword("autoescape", self.parse_expression())]
291 node.body = self.parse_statements(("name:endautoescape",), drop_needle=True)
292 return nodes.Scope([node])
295 node = nodes.Block(lineno=next(self.stream).lineno)
296 node.name = self.stream.expect("name").value
297 node.scoped = self.stream.skip_if("name:scoped")
298 node.required = self.stream.skip_if("name:required")
309 node.body = self.parse_statements(("name:endblock",), drop_needle=True)
314 if node.required:
315 for body_node in node.body:
323 self.stream.skip_if("name:" + node.name)
324 return node
327 node = nodes.Extends(lineno=next(self.stream).lineno)
328 node.template = self.parse_expression()
329 return node
332 self, node: _ImportInclude, default: bool
337 node.with_context = next(self.stream).value == "with"
340 node.with_context = default
341 return node
344 node = nodes.Include(lineno=next(self.stream).lineno)
345 node.template = self.parse_expression()
349 node.ignore_missing = True
352 node.ignore_missing = False
353 return self.parse_import_context(node, True)
356 node = nodes.Import(lineno=next(self.stream).lineno)
357 node.template = self.parse_expression()
359 node.target = self.parse_assign_target(name_only=True).name
360 return self.parse_import_context(node, False)
363 node = nodes.FromImport(lineno=next(self.stream).lineno)
364 node.template = self.parse_expression()
366 node.names = []
373 node.with_context = next(self.stream).value == "with"
379 if node.names:
393 node.names.append((target.name, alias.name))
395 node.names.append(target.name)
400 if not hasattr(node, "with_context"):
401 node.with_context = False
402 return node
404 def parse_signature(self, node: _MacroCall) -> None:
405 args = node.args = []
406 defaults = node.defaults = []
421 node = nodes.CallBlock(lineno=next(self.stream).lineno)
423 self.parse_signature(node)
425 node.args = []
426 node.defaults = []
430 self.fail("expected call", node.lineno)
431 node.call = call_node
432 node.body = self.parse_statements(("name:endcall",), drop_needle=True)
433 return node
436 node = nodes.FilterBlock(lineno=next(self.stream).lineno)
437 node.filter = self.parse_filter(None, start_inline=True) # type: ignore
438 node.body = self.parse_statements(("name:endfilter",), drop_needle=True)
439 return node
442 node = nodes.Macro(lineno=next(self.stream).lineno)
443 node.name = self.parse_assign_target(name_only=True).name
444 self.parse_signature(node)
445 node.body = self.parse_statements(("name:endmacro",), drop_needle=True)
446 return node
449 node = nodes.Output(lineno=next(self.stream).lineno)
450 node.nodes = []
452 if node.nodes:
454 node.nodes.append(self.parse_expression())
455 return node
631 node: nodes.Expr
635 node = nodes.Neg(self.parse_unary(False), lineno=lineno)
638 node = nodes.Pos(self.parse_unary(False), lineno=lineno)
640 node = self.parse_primary()
641 node = self.parse_postfix(node)
643 node = self.parse_filter_expr(node)
644 return node
648 node: nodes.Expr
651 node = nodes.Const(token.value in ("true", "True"), lineno=token.lineno)
653 node = nodes.Const(None, lineno=token.lineno)
655 node = nodes.Name(token.value, "load", lineno=token.lineno)
664 node = nodes.Const("".join(buf), lineno=lineno)
667 node = nodes.Const(token.value, lineno=token.lineno)
670 node = self.parse_tuple(explicit_parentheses=True)
673 node = self.parse_list()
675 node = self.parse_dict()
678 return node
688 delimited by a comma a :class:`~jinja2.nodes.Tuple` node is created.
773 def parse_postfix(self, node: nodes.Expr) -> nodes.Expr:
777 node = self.parse_subscript(node)
781 node = self.parse_call(node)
784 return node
786 def parse_filter_expr(self, node: nodes.Expr) -> nodes.Expr:
790 node = self.parse_filter(node) # type: ignore
792 node = self.parse_test(node)
796 node = self.parse_call(node)
799 return node
802 self, node: nodes.Expr
812 node, attr_token.value, "load", lineno=token.lineno
817 return nodes.Getitem(node, arg, "load", lineno=token.lineno)
829 return nodes.Getitem(node, arg, "load", lineno=token.lineno)
840 node = self.parse_expression()
842 return node
844 args = [node]
913 def parse_call(self, node: nodes.Expr) -> nodes.Call:
918 return nodes.Call(node, args, kwargs, dyn_args, dyn_kwargs, lineno=token.lineno)
921 self, node: t.Optional[nodes.Expr], start_inline: bool = False
937 node = nodes.Filter(
938 node, name, args, kwargs, dyn_args, dyn_kwargs, lineno=token.lineno
941 return node
943 def parse_test(self, node: nodes.Expr) -> nodes.Expr:
974 node = nodes.Test(
975 node, name, args, kwargs, dyn_args, dyn_kwargs, lineno=token.lineno
978 node = nodes.Not(node, lineno=token.lineno)
979 return node
1031 """Parse the whole template into a `Template` node."""