public override Expr VisitIdentifierExpr(IdentifierExpr node) { var mapsTo = Store.Get(new StoreLhs(node.Decl)); if (mapsTo == null) { return(node); } else { return(VisitExpr(mapsTo)); } }
public static Expr Resolve(Variable var, SymbolicStore store) { if (var == null || store == null) { return(null); } var resolver = new ExprResolver(store); var duper = new Duplicator(); var ret = store.Get(new StoreLhs(var)); if (ret == null) { Log.Out(Log.Error, "Could not find " + var.Name + " in symbolic store!"); return(null); } ret = resolver.VisitExpr(ret); ret = duper.VisitExpr(ret); return(ret); }