Exemplo n.º 1
0
 public EmitterVisitor(GraphProcessor processor, ILGenerator generator, MethodBodyBlock method)
     : base(processor, new Tasks())
 {
     this.tasks = base.tasks as Tasks;
     tasks.SetVisitor(this);
     paramMapper = method.Variables.ParameterMapper;
     this.labels = Labeler.LabelNodes(method,generator);
     this.generator = generator;
     alreadyVisited = new Hashtable();
     locals = new Hashtable();
     AddTask(method,null);
     foreach(Variable var in method.Variables)
     {
         if(var.Kind == VariableKind.Local)
             locals[var] = generator.DeclareLocal(var.Type);
     }
     extraVars = new Hashtable();
     boolVar = null;
     wasDumped = new Hashtable();;
     wasDumpedFlag = false;
     prevHasNext = true;
 }