diff options
author | t-espave <unknown> | 2011-08-16 16:51:01 -0700 |
---|---|---|
committer | t-espave <unknown> | 2011-08-16 16:51:01 -0700 |
commit | bbb739908334dd16d72c06e2ca142bdc48c6387c (patch) | |
tree | c68a6712654dc4680ab98e425f078bdb42504e24 /BCT/BytecodeTranslator/TraverserFactory.cs | |
parent | 0d002019c9764ee517658459554f099116a930a5 (diff) |
(bct) skeleton of plugin infrastructure. for now the code is essentially the same
I will open a plugin branch to make more deeper changes until everything is stable
Diffstat (limited to 'BCT/BytecodeTranslator/TraverserFactory.cs')
-rw-r--r-- | BCT/BytecodeTranslator/TraverserFactory.cs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/BCT/BytecodeTranslator/TraverserFactory.cs b/BCT/BytecodeTranslator/TraverserFactory.cs index fac00e42..472cbb0a 100644 --- a/BCT/BytecodeTranslator/TraverserFactory.cs +++ b/BCT/BytecodeTranslator/TraverserFactory.cs @@ -17,19 +17,22 @@ using Microsoft.Cci.ILToCodeModel; using TranslationPlugins;
using Bpl = Microsoft.Boogie;
+using BytecodeTranslator.TranslationPlugins;
namespace BytecodeTranslator {
public abstract class TraverserFactory {
public int Priority { get; set; }
+ public abstract Translator getTranslator(Sink sink, IDictionary<IUnit, IContractProvider> contractProviders, IDictionary<IUnit, PdbReader> reader);
+
public virtual MetadataTraverser MakeMetadataTraverser(Sink sink,
IDictionary<IUnit, IContractProvider> contractProviders, // TODO: remove this parameter?
IDictionary<IUnit, PdbReader> sourceLocationProviders)
{
- return new MetadataTraverser(sink, sourceLocationProviders);
+ return new MetadataTraverser(sink, sourceLocationProviders, this);
}
public virtual StatementTraverser MakeStatementTraverser(Sink sink, PdbReader/*?*/ pdbReader, bool contractContext) {
- return new StatementTraverser(sink, pdbReader, contractContext);
+ return new StatementTraverser(sink, pdbReader, contractContext, this);
}
public virtual ExpressionTraverser MakeExpressionTraverser(Sink sink, StatementTraverser/*?*/ statementTraverser, bool contractContext) {
|