def visit_unary(self, node: ast.UnaryOp): # print("visiting unary") op = None expr = None for name, child in node.children(): if name == "op": op = child elif name == "expr": expr = child try: e = self.visit(expr) if op is not None: if isinstance(e, ast.ID): e = self.lookupSymTables(e.getName()) if e == 'F': e = False elif e == 'T': e = True if op == '!': return (not e) elif op == '+': return e elif op == '-': return -e return e except Exception as e: raise Exception(e)
def visit_unary(self, node: ast.UnaryOp): print("unary") op = None expr = None for name, child in node.children(): if name == "op": op = child elif name == "expr": expr = child try: if op is not None: pass else: return self.visit(expr) except: pass