private void AddSourceFile(IVsaEngine engine, string fileName, int codepage){
// We don't use the filename as the item name because filenames are allowed to contain
// things that identifiers aren't (like commas and periods).
string itemName = "$SourceFile_" + this.codeItemCounter++;
IVsaCodeItem item = (IVsaCodeItem)engine.Items.CreateItem(itemName, VsaItemType.Code, VsaItemFlag.None);
item.SetOption("codebase", fileName);
item.SourceText = ReadFile(fileName, codepage);
}