diff --git a/compiler/nodes.py b/compiler/nodes.py index 50c1f8b..d72ec67 100644 --- a/compiler/nodes.py +++ b/compiler/nodes.py @@ -246,19 +246,20 @@ class Expression(Node): def intermediate_representation(self) -> list[ir.IRItem]: return self.node.intermediate_representation() - def __init__(self, node: Node): + def __init__(self, node: Node, *, pseudo_nodes: list[PseudoNode] = None): super().__init__() self.node = node + self.pseudo_nodes = pseudo_nodes def _values(self) -> list[Node | Any]: - return [self.node] + result = [self.node] + if self.pseudo_nodes is not None: + result += self.pseudo_nodes + return result def semantic_analysis(self, context: semantic.Context): return self.node.semantic_analysis(context) - def location(self) -> SourceLocation: - return self.node.location() - class Statement(Node):