protected override void InitializeCore() { // TODO: In order to target #41, add an option for using the reflector when requested // Getting the AST node this.tree = ASTExtractor.Extract(this.source); // Loading the semantic model CSharpCompilation compilation = null; if (this.assemblyPath != null) { compilation = this.GetCompilation(this.assemblyPath, this.tree); } IASTTransformer transformer = new ScriptNamespaceBasedASTTransformer(); if (compilation != null) { transformer.Transform(ref this.tree, ref compilation); this.semanticModel = SemanticUtils.RetrieveSemanticModel(compilation, this.tree); } else { transformer.Transform(ref this.tree); } // Creating the walker // If no semantic model was loaded, null will just be passed var node = this.tree.GetRoot(); this.walker = ProgramDefinitionASTWalker.Create(node, null, this.semanticModel); (this.walker as ProgramDefinitionASTWalker).Logger = this.Logger; // Translating this.output = this.walker.Walk().Translate(); }
private void Initialize() { // Getting the AST node this.tree = ASTExtractor.Extract(this.source); // Loading the semantic model CSharpCompilation compilation = null; if (this.assemblyPath != null) { compilation = this.GetCompilation(this.assemblyPath, this.tree); } IASTTransformer transformer = new ScriptNamespaceBasedASTTransformer(); if (compilation != null) { transformer.Transform(ref this.tree, ref compilation); this.semanticModel = SemanticUtils.RetrieveSemanticModel(compilation, this.tree); } else { transformer.Transform(ref this.tree); } // Creating the walker // If no semantic model was loaded, null will just be passed var node = this.tree.GetRoot(); this.walker = ProgramDefinitionASTWalker.Create(node, null, this.semanticModel); // Translating this.output = this.walker.Walk().Translate(); this.initialized = true; }
private void LoadSemanticModel(string path, CSharpSyntaxTree sourceTree) { this.semanticModel = SemanticUtils.RetrieveSemanticModel("LoadedAssembly", path, sourceTree, true); }