internal ImportNode Compile(ImportModuleHandler importer) { ImportNode impNode = null; foreach (var item in mData) { SortedSet <Type> types = GetTypesForImport(item.Value.Data); foreach (var type in types) { if (CLRObjectMarshler.IsMarshaledAsNativeType(type)) { continue; } ImportNode node = importer.Import(type.Assembly.Location, type.FullName, ""); if (impNode != null && node != null) { impNode.CodeNode.Body.AddRange(node.CodeNode.Body); } else { impNode = node; } } if (impNode == null) { impNode = new ImportNode() { ModuleName = "ExternalContext", CodeNode = new ProtoCore.AST.AssociativeAST.CodeBlockNode() } } ; impNode.CodeNode.Body.Add(ContextDataMethodCallNode(item.Value)); } return(impNode); }
internal ImportNode Compile(ImportModuleHandler importer) { ImportNode impNode = null; ProtoCore.AST.AssociativeAST.CodeBlockNode code = new ProtoCore.AST.AssociativeAST.CodeBlockNode(); foreach (var item in mData) { SortedSet<Type> types = GetTypesForImport(item.Value.Data); foreach (var type in types) { if (CLRObjectMarshler.IsMarshaledAsNativeType(type)) continue; ImportNode node = importer.Import(type.Assembly.Location, type.FullName, ""); if (impNode != null && node != null) impNode.CodeNode.Body.AddRange(node.CodeNode.Body); else impNode = node; } if (impNode == null) impNode = new ImportNode() { ModuleName="ExternalContext", CodeNode = new ProtoCore.AST.AssociativeAST.CodeBlockNode() }; impNode.CodeNode.Body.Add(ContextDataMethodCallNode(item.Value)); } return impNode; }