private void SetSourceStrings(Compilation compilation)
{
Field sourceField = (Field)Templates.GetMemberByName(appClass.Members, "sources");
Field filesField = (Field)Templates.GetMemberByName(appClass.Members, "sourceFiles");
Debug.Assert(sourceField.Initializer is ConstructArray);
ExpressionList sourceList = ((ConstructArray)sourceField.Initializer).Initializers;
Debug.Assert(filesField.Initializer is ConstructArray);
ExpressionList filesList = ((ConstructArray)filesField.Initializer).Initializers;
string source = string.Empty;
string file = string.Empty;
for (int i = 0, n = compilation.CompilationUnits.Count; i < n; i++)
{
CompilationUnit cu = compilation.CompilationUnits[i];
if (((Namespace)cu.Nodes[0]).Types.Count > 0)
{
if (((Namespace)cu.Nodes[0]).Types[0].SourceContext.Document != null)
{
this.sourceDocuments.Add(((Namespace)cu.Nodes[0]).Types[0].SourceContext.Document, i);
DocumentText sourceText = ((Namespace)cu.Nodes[0]).Types[0].SourceContext.Document.Text;
source = sourceText.Substring(0, sourceText.Length);
file = ((Namespace)cu.Nodes[0]).Types[0].SourceContext.Document.Name;
sourceList.Add(new Literal(source, SystemTypes.String));
filesList.Add(new Literal(file, SystemTypes.String));
}
}
}
}