Lines Matching refs:nodes
1 """Compiles nodes from the parser into Python code."""
12 from . import nodes
19 from .nodes import EvalContext
45 self: "CodeGenerator", node: nodes.Expr, frame: "Frame", **kwargs: t.Any
59 def _make_binop(op: str) -> t.Callable[["CodeGenerator", nodes.BinExpr, "Frame"], None]:
61 def visitor(self: "CodeGenerator", node: nodes.BinExpr, frame: Frame) -> None:
83 ) -> t.Callable[["CodeGenerator", nodes.UnaryExpr, "Frame"], None]:
85 def visitor(self: "CodeGenerator", node: nodes.UnaryExpr, frame: Frame) -> None:
102 node: nodes.Template,
111 if not isinstance(node, nodes.Template):
112 raise TypeError("Can't compile non template nodes")
143 nodes: t.Iterable[nodes.Node], names: t.Iterable[str]
150 for node in nodes:
158 def __init__(self, node: t.Union[nodes.Macro, nodes.CallBlock]) -> None:
259 def visit_Filter(self, node: nodes.Filter) -> None:
263 def visit_Test(self, node: nodes.Test) -> None:
267 def visit_Block(self, node: nodes.Block) -> None:
281 def visit_Name(self, node: nodes.Name) -> None:
289 def visit_Block(self, node: nodes.Block) -> None:
328 self.blocks: t.Dict[str, nodes.Block] = {}
422 def start_write(self, frame: Frame, node: t.Optional[nodes.Node] = None) -> None:
435 self, s: str, frame: Frame, node: t.Optional[nodes.Node] = None
442 def blockvisit(self, nodes: t.Iterable[nodes.Node], frame: Frame) -> None:
443 """Visit a list of nodes as block in a frame. If the current frame
448 for node in nodes:
468 self, x: str, node: t.Optional[nodes.Node] = None, extra: int = 0
474 def newline(self, node: t.Optional[nodes.Node] = None, extra: int = 0) -> None:
483 node: t.Union[nodes.Call, nodes.Filter, nodes.Test],
538 def pull_dependencies(self, nodes: t.Iterable[nodes.Node]) -> None:
542 compiling the Filter and Test nodes. If the node is in an If or
546 Filters and tests in If and CondExpr nodes are checked at
551 for node in nodes:
612 self, node: t.Union[nodes.Macro, nodes.CallBlock], frame: Frame
706 def position(self, node: nodes.Node) -> str:
827 self, node: nodes.Template, frame: t.Optional[Frame] = None
847 have_extends = node.find(nodes.Extends) is not None
850 for block in node.find_all(nodes.Block):
856 for import_ in node.find_all(nodes.ImportedName):
944 def visit_Block(self, node: nodes.Block, frame: Frame) -> None:
987 def visit_Extends(self, node: nodes.Extends, frame: Frame) -> None:
1029 def visit_Include(self, node: nodes.Include, frame: Frame) -> None:
1036 if isinstance(node.template, nodes.Const):
1041 elif isinstance(node.template, (nodes.Tuple, nodes.List)):
1081 self, node: t.Union[nodes.Import, nodes.FromImport], frame: Frame
1095 def visit_Import(self, node: nodes.Import, frame: Frame) -> None:
1106 def visit_FromImport(self, node: nodes.FromImport, frame: Frame) -> None:
1156 def visit_For(self, node: nodes.For, frame: Frame) -> None:
1169 or any(block.scoped for block in node.find_all(nodes.Block))
1219 for name in node.find_all(nodes.Name):
1295 def visit_If(self, node: nodes.If, frame: Frame) -> None:
1316 def visit_Macro(self, node: nodes.Macro, frame: Frame) -> None:
1326 def visit_CallBlock(self, node: nodes.CallBlock, frame: Frame) -> None:
1334 def visit_FilterBlock(self, node: nodes.FilterBlock, frame: Frame) -> None:
1345 def visit_With(self, node: nodes.With, frame: Frame) -> None:
1357 def visit_ExprStmt(self, node: nodes.ExprStmt, frame: Frame) -> None:
1377 runtime. Cached so it's only created once for all output nodes.
1385 Source code to output around nodes to be evaluated at
1425 child nodes, produce a string to write to the template module
1431 self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo
1446 if isinstance(node, nodes.TemplateData):
1452 self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo
1468 self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo
1478 def visit_Output(self, node: nodes.Output, frame: Frame) -> None:
1489 body: t.List[t.Union[t.List[t.Any], nodes.Expr]] = []
1494 for child in node.nodes:
1502 or isinstance(child, nodes.TemplateData)
1504 raise nodes.Impossible()
1507 except (nodes.Impossible, Exception):
1557 def visit_Assign(self, node: nodes.Assign, frame: Frame) -> None:
1565 def visit_AssignBlock(self, node: nodes.AssignBlock, frame: Frame) -> None:
1589 def visit_Name(self, node: nodes.Name, frame: Frame) -> None:
1614 def visit_NSRef(self, node: nodes.NSRef, frame: Frame) -> None:
1628 def visit_Const(self, node: nodes.Const, frame: Frame) -> None:
1635 def visit_TemplateData(self, node: nodes.TemplateData, frame: Frame) -> None:
1638 except nodes.Impossible:
1643 def visit_Tuple(self, node: nodes.Tuple, frame: Frame) -> None:
1652 def visit_List(self, node: nodes.List, frame: Frame) -> None:
1660 def visit_Dict(self, node: nodes.Dict, frame: Frame) -> None:
1684 def visit_Concat(self, node: nodes.Concat, frame: Frame) -> None:
1692 for arg in node.nodes:
1698 def visit_Compare(self, node: nodes.Compare, frame: Frame) -> None:
1705 def visit_Operand(self, node: nodes.Operand, frame: Frame) -> None:
1710 def visit_Getattr(self, node: nodes.Getattr, frame: Frame) -> None:
1722 def visit_Getitem(self, node: nodes.Getitem, frame: Frame) -> None:
1724 if isinstance(node.arg, nodes.Slice):
1742 def visit_Slice(self, node: nodes.Slice, frame: Frame) -> None:
1754 self, node: t.Union[nodes.Filter, nodes.Test], frame: Frame, is_filter: bool
1795 def visit_Filter(self, node: nodes.Filter, frame: Frame) -> None:
1812 def visit_Test(self, node: nodes.Test, frame: Frame) -> None:
1817 def visit_CondExpr(self, node: nodes.CondExpr, frame: Frame) -> None:
1841 self, node: nodes.Call, frame: Frame, forward_caller: bool = False
1862 def visit_Keyword(self, node: nodes.Keyword, frame: Frame) -> None:
1866 # -- Unused nodes for extensions
1868 def visit_MarkSafe(self, node: nodes.MarkSafe, frame: Frame) -> None:
1874 self, node: nodes.MarkSafeIfAutoescape, frame: Frame
1881 self, node: nodes.EnvironmentAttribute, frame: Frame
1886 self, node: nodes.ExtensionAttribute, frame: Frame
1890 def visit_ImportedName(self, node: nodes.ImportedName, frame: Frame) -> None:
1893 def visit_InternalName(self, node: nodes.InternalName, frame: Frame) -> None:
1897 self, node: nodes.ContextReference, frame: Frame
1902 self, node: nodes.DerivedContextReference, frame: Frame
1906 def visit_Continue(self, node: nodes.Continue, frame: Frame) -> None:
1909 def visit_Break(self, node: nodes.Break, frame: Frame) -> None:
1912 def visit_Scope(self, node: nodes.Scope, frame: Frame) -> None:
1919 def visit_OverlayScope(self, node: nodes.OverlayScope, frame: Frame) -> None:
1934 self, node: nodes.EvalContextModifier, frame: Frame
1941 except nodes.Impossible:
1947 self, node: nodes.ScopedEvalContextModifier, frame: Frame