/// <summary> /// Обновить все данные, заново начать прогу /// </summary> private void btn_refresh_all_Click(object sender, EventArgs e) { this.program = new GUIProgram(this.tb_source_code); this.tb_error.Clear(); this.tb_result.Clear(); TMO.printTMO(this.dgv_tmo); Global.printGlobal(this.dgv_global); this.enableButtons(); btn_next_step.Enabled = false; label3.Text = "Ошибка 1 прохода"; }
/// <summary> /// Следующий шаг выполнения проги /// </summary> private void btn_step() { try { this.btn_first_run.Enabled = false; this.btn_refresh_all.Enabled = true; // если исходный текст пуст if (program.sourceCode.entities.Count == 0) { throw new SPException("Исходный текст должен содержать хотя бы одну строку"); } if (program.index == 0) { tb_error.Clear(); } // если это последняя строка if ((program.index + 1) == program.sourceCode.entities.Count) { //this.btn_next_step.Enabled = false; CheckSourceEntity.checkEND(new SourceEntity(), false, ""); } this.program.nextFirstStep(this.tb_result); TMO.printTMO(this.dgv_tmo); Global.printGlobal(this.dgv_global); } catch (SPException ex) { this.tb_error.Text = ex.Message; this.disableButtons(); this.btn_refresh_all.Enabled = true; } catch (Exception) { this.tb_error.Text = "Ошибка!"; this.disableButtons(); this.btn_refresh_all.Enabled = true; } }
public static void Main(string[] args) { var handle = GetConsoleWindow(); if (args.Length == 0) { ShowWindow(handle, SW_HIDE); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } else { ShowWindow(handle, SW_SHOW); try { ConsoleProgram program = new ConsoleProgram(args); Console.WriteLine(program.getProgGuide()); string ch = ""; while ((ch = Console.ReadLine().ToUpper().Trim()) != "0") { switch (ch) { case "1": Console.Clear(); if (!program.isEnd) { program.firstRun(); Console.WriteLine(); } else { Console.WriteLine("\nПрограмма завершила свои действия. Запустите ее заново.\n"); } break; case "2": Console.Clear(); if (!program.isEnd) { if (program.firstEnd == true) { program.secondEnd = true; program.isEnd = true; Console.WriteLine("\nВторой проход выполнен\n"); break; } else { Console.WriteLine("\nВыполните сначала 1 проход"); } } else { Console.WriteLine("\nПрограмма завершила свои действия. Запустите ее заново.\n"); } break; case "3": Console.Clear(); Console.WriteLine("\nИсходный код\n"); foreach (string str in program.sourceStrings) { Console.WriteLine(str); } Console.WriteLine(); Console.ReadKey(); break; case "4": Console.Clear(); if (program.secondEnd) { Console.WriteLine("\nАссемблерный код\n"); program.sourceCode.printAsm(); Console.WriteLine(); Console.ReadKey(); } else { Console.WriteLine("\nАссемблерный код не сгенерирован.\n"); } break; case "5": Console.Clear(); if (program.firstEnd) { Console.WriteLine("\nТаблица глобальных переменных\n"); Global.printGlobal(); Console.WriteLine(); Console.ReadKey(); } else { Console.WriteLine("\nВыполните сначала 1 проход.\n"); } break; case "6": Console.Clear(); if (program.firstEnd) { Console.WriteLine("\nТМО\n"); TMO.printTMO(); Console.WriteLine(); Console.ReadKey(); } else { Console.WriteLine("\nВыполните сначала 1 проход.\n"); } break; case "8": Console.Clear(); Console.WriteLine("\nОбновлено все\n"); TMO.refresh(); Global.refresh(); program = new ConsoleProgram(args); program.sourceCode.result = new List <SourceEntity>(); Console.WriteLine(); break; case "7": Console.Clear(); try { StreamWriter sw = new StreamWriter(program.output_file); foreach (SourceEntity se in program.sourceCode.result) { sw.WriteLine(se.ToString()); } sw.Close(); Console.WriteLine("\nЗапись успешна\n"); Process.Start("notepad.exe", program.output_file); } catch { Console.WriteLine("\nЗапись не успешна, возможно не задан или не найден файл\n"); } break; default: Console.WriteLine("\nОшибка! Введен неверный ключ!\n"); break; } Console.WriteLine(program.getProgGuide()); } } catch (ConsoleException ex) { Console.WriteLine("\n\nОшибка " + ex.Message + "\n\n"); Console.WriteLine(ConsoleProgram.getUserGuide()); Console.WriteLine("\nПрограмма завершила свои действия. Запустите ее заново.\n"); } catch (Exception ex) { Console.WriteLine("\n\nОшибка" + ex.Message + "\n\n"); Console.WriteLine(ConsoleProgram.getUserGuide()); Console.WriteLine("\nПрограмма завершила свои действия. Запустите ее заново.\n"); } } }