diff options
| author | Volker Weißmann <volker.weissmann@gmx.de> | 2025-03-12 20:42:34 +0100 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-05-29 09:20:27 -0700 |
| commit | b80e7030c766f0561adaa90776f90745bb007d31 (patch) | |
| tree | e8d987797c19150393d224b299ca3b46ffe2bfad | |
| parent | 4bbbd33d641e8761244342dc850e1b0ff97002b7 (diff) | |
| download | meson-b80e7030c766f0561adaa90776f90745bb007d31.tar.gz | |
Add AstInterpreter.nesting
The AstInterpreter now stores how deep into if/elif/else we are.
This is currently dead code, but it will be read in future commits.
| -rw-r--r-- | mesonbuild/ast/interpreter.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mesonbuild/ast/interpreter.py b/mesonbuild/ast/interpreter.py index b18bb5882..f3ed7eb55 100644 --- a/mesonbuild/ast/interpreter.py +++ b/mesonbuild/ast/interpreter.py @@ -96,6 +96,7 @@ class AstInterpreter(InterpreterBase): def __init__(self, source_root: str, subdir: str, subproject: SubProject, subproject_dir: str, env: environment.Environment, visitors: T.Optional[T.List[AstVisitor]] = None): super().__init__(source_root, subdir, subproject, subproject_dir, env) self.visitors = visitors if visitors is not None else [] + self.nesting: T.List[int] = [] self.assignments: T.Dict[str, BaseNode] = {} self.assign_vals: T.Dict[str, T.Any] = {} self.reverse_assignment: T.Dict[str, BaseNode] = {} @@ -283,10 +284,13 @@ class AstInterpreter(InterpreterBase): pass def evaluate_if(self, node: IfClauseNode) -> None: + self.nesting.append(0) for i in node.ifs: self.evaluate_codeblock(i.block) + self.nesting[-1] += 1 if not isinstance(node.elseblock, EmptyNode): self.evaluate_codeblock(node.elseblock.block) + self.nesting.pop() def get_variable(self, varname: str) -> int: return 0 |
