Example #1
0
 def visit_If(self, node: If):
     cond = self.visit(node.condition)
     if cond.kind == ExprKind.FIELD:
         return gtir.FieldIfStmt(
             cond=cond,
             true_branch=gtir.BlockStmt(body=self.visit(node.main_body)),
             false_branch=gtir.BlockStmt(body=self.visit(node.else_body))
             if node.else_body else None,
         )
     else:
         return gtir.ScalarIfStmt(
             cond=cond,
             true_branch=gtir.BlockStmt(body=self.visit(node.main_body)),
             false_branch=gtir.BlockStmt(body=self.visit(node.else_body))
             if node.else_body else None,
         )
Example #2
0
 def visit_If(self, node: If) -> Union[gtir.FieldIfStmt, gtir.ScalarIfStmt]:
     cond = self.visit(node.condition)
     if cond.kind == ExprKind.FIELD:
         return gtir.FieldIfStmt(
             cond=cond,
             true_branch=gtir.BlockStmt(body=self.visit(node.main_body)),
             false_branch=gtir.BlockStmt(body=self.visit(node.else_body))
             if node.else_body else None,
             loc=location_to_source_location(node.loc),
         )
     else:
         return gtir.ScalarIfStmt(
             cond=cond,
             true_branch=gtir.BlockStmt(body=self.visit(node.main_body)),
             false_branch=gtir.BlockStmt(body=self.visit(node.else_body))
             if node.else_body else None,
             loc=location_to_source_location(node.loc),
         )