nodes: allow adding pseudo nodes to Expression
This commit is contained in:
parent
1fa3317d93
commit
3f84890b52
1 changed files with 6 additions and 5 deletions
|
|
@ -246,19 +246,20 @@ class Expression(Node):
|
||||||
def intermediate_representation(self) -> list[ir.IRItem]:
|
def intermediate_representation(self) -> list[ir.IRItem]:
|
||||||
return self.node.intermediate_representation()
|
return self.node.intermediate_representation()
|
||||||
|
|
||||||
def __init__(self, node: Node):
|
def __init__(self, node: Node, *, pseudo_nodes: list[PseudoNode] = None):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.node = node
|
self.node = node
|
||||||
|
self.pseudo_nodes = pseudo_nodes
|
||||||
|
|
||||||
def _values(self) -> list[Node | Any]:
|
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):
|
def semantic_analysis(self, context: semantic.Context):
|
||||||
return self.node.semantic_analysis(context)
|
return self.node.semantic_analysis(context)
|
||||||
|
|
||||||
def location(self) -> SourceLocation:
|
|
||||||
return self.node.location()
|
|
||||||
|
|
||||||
|
|
||||||
class Statement(Node):
|
class Statement(Node):
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue