internal void add(FunctionApplicationExpression mlu) { if (mlu.function is MapLookup) { fieldReads.Add(mlu); } if (mlu.function is MapUpdate) { updateReads.Add(mlu); } }
internal void add(FunctionApplicationExpression mlu) { Debug.Assert(mlu.function is MapLookup || mlu.function is MapUpdate); string name = getBaseName(mlu); if (!mapData.ContainsKey(name)) { mapData.Add(name, new MapData(name)); } mapData[name].add(mlu); }
//////////////////////////////////////////////////////// //////////////////////////////////////////////////////// public override Expression visit(FunctionApplicationExpression e) { if (e.function is MapLookup || e.function is MapUpdate) { maps.add(e); base.visit(e); } else { base.visit(e); } return(e); }
private string getBaseName(FunctionApplicationExpression mlu) { Debug.Assert(mlu.function is MapLookup || mlu.function is MapUpdate); Debug.Assert(mlu.arguments.count > 0); Expression mapExpression = mlu.arguments[0]; string result = mapExpression.ToString(); if (mapExpression is ProgramVariableExpression) { result = procedure.getBaseIncarnation((mapExpression as ProgramVariableExpression).name).name; } return(result); }