public List <FileManager.ManagerProjects.INFO_BLOCK> GetInfoBlocks(List <LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK> blocks, LMD_GUI.LMD_BottomPanel info, LMD_GUI.LMD_FastInformationPanel fast_info) { info.ClearDate(); List <FileManager.ManagerProjects.INFO_BLOCK> bl = new List <FileManager.ManagerProjects.INFO_BLOCK>(); ListInfoBlocks.Clear(); PrevTextCode.Clear(); level = 0; ME.Clear(); int count_block = blocks.Count; info.AddItemText("Сохранение проекта... " + count_block); String lang = ""; switch (ML.PresentLanguage) { case Language.ManagerLanguage.LANGUAGE.C_PLUS_PLUS: lang = "C++"; break; case Language.ManagerLanguage.LANGUAGE.C_SHARP: lang = "C#"; break; case Language.ManagerLanguage.LANGUAGE.JAVA: lang = "Java"; break; case Language.ManagerLanguage.LANGUAGE.PASCALABC: lang = "Pascal"; break; } PrevTextCode.Add("Язык построения: " + lang); PrevTextCode.Add(""); info.AddItemText("Язык построения: " + lang); LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK block_begin = null; for (int i = 0; i < count_block; i++) { blocks[i].ID = i; if (blocks[i].Type == LMD_GUI.TYPE_BLOCK.begin) { block_begin = blocks[i]; } } LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK block_next = block_begin; info.AddItemText("Построение последовательности блоков"); ResolutionBlocksSave(block_next, info); info.AddItemText("Сохранение выполнено успешно"); return(ListInfoBlocks); }
public int Run(List <LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK> blocks, LMD_GUI.LMD_BottomPanel info, LMD_GUI.LMD_FastInformationPanel fast_info) { info.ClearDate(); fast_info.SetCurrentText("Начато построение"); PrevTextCode.Clear(); level = 0; ME.Clear(); int count_block = blocks.Count; // Set setting from projects to compile FileManager.INFO_PROJECT info_project = FileManager.ManagerProjects.GetPresentProjectInfo(); ML.SetLanguage(info_project.Language); info.AddItemText("Информация о проекте: "); info.AddItemText("Название: " + info_project.name); info.AddItemText("Путь: " + Environment.CurrentDirectory + "\\" + info_project.path); info.AddItemText("Тип проекта: " + info_project.Type); info.AddItemText("Колличество блоков: " + count_block); fast_info.ProgressBar.Value = 20; String lang = ""; switch (ML.PresentLanguage) { case Language.ManagerLanguage.LANGUAGE.C_PLUS_PLUS: lang = "C++"; break; case Language.ManagerLanguage.LANGUAGE.C_SHARP: lang = "C#"; break; case Language.ManagerLanguage.LANGUAGE.JAVA: lang = "Java"; break; case Language.ManagerLanguage.LANGUAGE.PASCALABC: lang = "Pascal"; break; } PrevTextCode.Add("Язык построения: " + lang); PrevTextCode.Add(""); info.AddItemText("Язык построения: " + lang); LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK block_begin = null; for (int i = 0; i < count_block; i++) { if (blocks[i].Type == LMD_GUI.TYPE_BLOCK.begin) { block_begin = blocks[i]; } } LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK block_next = block_begin; info.AddItemText("Построение последовательности блоков"); ResolutionBlocks(block_next, info); fast_info.ProgressBar.Value = 60; info.AddItemText("Собирается код"); String res_code = ""; List <Language.BLOCK_CODE_CONTROL_ERROR> BCCE = ME.GetItems(); int lines = 0; for (int i = 0; i < BCCE.Count; i++) { for (int j = 0; j < BCCE[i].code.Length; j++) { lines++; PrevTextCode.Add(BCCE[i].code[j]); info.AddItemText(BCCE[i].code[j]); res_code += BCCE[i].code[j]; BCCE[i].lines.Add(lines); } } fast_info.ProgressBar.Value = 80; switch (info_project.Type) { case FileManager.TYPE_PROJECT.DLL: this.name_project = info_project.name + ".dll"; CompileCode(res_code, info, false); break; case FileManager.TYPE_PROJECT.EXE: this.name_project = info_project.name + ".exe"; RunCoreCompile(info_project, info, blocks, fast_info); break; case FileManager.TYPE_PROJECT.NONE: break; case FileManager.TYPE_PROJECT.TXT: FileManager.ManagerProjects.CreateTXTCode(res_code); break; } info.AddItemText("Собирание проекта завершено"); fast_info.SetCurrentText("Готово"); fast_info.ProgressBar.Value = 100; return(0); }