public void VisitFieldRef(FieldRef fieldRef) { var fd = fieldRef.FieldDesc; if (fd.IsStatic) { var cfd = fd as CILFieldDescriptor; if (cfd != null) { var pkg = _design.TypeLib.GetPackage(cfd.Field.DeclaringType); fd = pkg.Canonicalize(fd); CurComponent.AddDependency(pkg); } } else { fd = CurComponent.Canonicalize(fd); } _result = new FieldRef(fd); }
public Literal Lookup(Literal v) { Literal v_ = v; if (_rplMap.TryGetValue(v, out v_)) return v_; else return v; }
/// <summary> /// Adds a replacement rule. /// </summary> /// <param name="v">literal to replace</param> /// <param name="v_">replacement</param> public void AddReplacement(Literal v, Literal v_) { _rplMap[v] = v_; }
public void VisitArrayRef(ArrayRef arrayRef) { Resolve(arrayRef.ArrayExpr); foreach (var idx in arrayRef.Indices) Resolve(idx); _result = arrayRef; }
public void VisitSignalRef(SignalRef signalRef) { _result = signalRef; }
public void VisitThisRef(ThisRef thisRef) { _result = thisRef; }
public void VisitVariable(Variable variable) { _result = variable; }
public void VisitConstant(Constant constant) { _result = constant; }