summaryrefslogtreecommitdiff
path: root/BCT/BytecodeTranslator/TranslationPlugins/BytecodeTranslator/BytecodeTranslatorPlugin.cs
blob: a7b00f63bfcd385f0e4adb6a5a00dc31bb4fbdcb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Cci;
using Microsoft.Cci.Contracts;

namespace BytecodeTranslator.TranslationPlugins.BytecodeTranslator {
  internal class BytecodeTranslatorPlugin : ITranslationPlugin {
    private bool isWholeProgram = false;

    public BytecodeTranslatorPlugin(Boolean isWholeProgram) {
      this.isWholeProgram = isWholeProgram;
    }

    public Translator getTranslator(Sink sink, IDictionary<IUnit, IContractProvider> contractProviders, IDictionary<IUnit, PdbReader> pdbReaders) {
      TraverserFactory factory;
      if (isWholeProgram)
        factory= new WholeProgram();
      else
        factory= new CLRSemantics();
      // Translator translator= factory.MakeMetadataTraverser(sink, contractProviders, pdbReaders);
      Translator translator= factory.getTranslator(sink, contractProviders, pdbReaders);
      return translator;
    }
  }
}