Exemplo n.º 1
0
        private void AddDependences(AnnotationInstance ci)
        {
            VariableCollector vc = new VariableCollector();

            vc.VisitExpr(ci.Expr);

            foreach (var v in vc.usedVars.Where(Item => varDepAnalyser.VariableRelevantToAnalysis(Item, ci.Proc)))
            {
                VariableDescriptor vd =
                    varDepAnalyser.MakeDescriptor(ci.Proc, v);
                if (!variableDirectlyReferredToByAnnotations.ContainsKey(vd))
                {
                    variableDirectlyReferredToByAnnotations[vd] = new HashSet <string>();
                }
                variableDirectlyReferredToByAnnotations[vd].Add(ci.AnnotationIdentifier);

                foreach (var w in varDepAnalyser.DependsOn(vd))
                {
                    annotationDependsOn[ci.AnnotationIdentifier].Add(w);
                }
            }
        }
    private void AddDependences(AnnotationInstance ci) {
      VariableCollector vc = new VariableCollector();
      vc.VisitExpr(ci.Expr);

      foreach (var v in vc.usedVars.Where(Item => varDepAnalyser.VariableRelevantToAnalysis(Item, ci.Proc))) {
        VariableDescriptor vd =
          varDepAnalyser.MakeDescriptor(ci.Proc, v);
        if (!variableDirectlyReferredToByAnnotations.ContainsKey(vd)) {
          variableDirectlyReferredToByAnnotations[vd] = new HashSet<string>();
        }
        variableDirectlyReferredToByAnnotations[vd].Add(ci.AnnotationIdentifier);

        foreach (var w in varDepAnalyser.DependsOn(vd)) {
          annotationDependsOn[ci.AnnotationIdentifier].Add(w);
        }
      }
    }