private void editor_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (isPainting) // Для избежания рекурсии ( изменяя текст тут, рекурсивно будет вызываться эта же функция)
            {
                return;
            }

            IsSaved = false;
            if (Acomp)
            {
                Dispatcher.BeginInvoke((Action)(() =>
                {
                    bool suc = true;
                    cmp = new Compilator();
                    TextRange textRange = new TextRange(editor.Document.ContentStart, editor.Document.ContentEnd);
                    try
                    {
                        cmp.Compilate(textRange.Text);
                    }
                    catch (CompilationException ex)
                    {
                        suc = false;
                    }
                    if (suc == true)
                    {
                        data.Text = cmp.mem.output;
                        code.Text = cmp.GetCodeWithComments();
                        if (Properties.Settings.Default.Stop)
                        {
                            code.Text += "01001111 // STOP-слово";
                        }
                    }
                }), DispatcherPriority.SystemIdle);
            }
        }
        public void compiliate(ref Compilator cmp, ref TextBox data, ref TextBox code)
        {
            bool suc = true;

            cmp = new Compilator();
            TextRange textRange = new TextRange(editor.Document.ContentStart, editor.Document.ContentEnd);

            try
            {
                cmp.Compilate(textRange.Text);
            }
            catch (CompilationException ex)
            {
                suc = false;
            }
            if (suc == true)
            {
                data.Text = cmp.mem.output;
                code.Text = cmp.GetCode();
            }
        }
        //код выглядит отвратительно
        private void MenuItem_Compile(object sender, RoutedEventArgs e)
        {
            var  tr  = new TextRange(editor.Document.ContentStart, editor.Document.ContentEnd);
            bool suc = true;

            cmp = new Compilator(); // Слишком много внутренних параметров, приходится создавать новый объект
            TextRange textRange = new TextRange(editor.Document.ContentStart, editor.Document.ContentEnd);

            try
            {
                cmp.Compilate(textRange.Text);
            }
            catch (CompilationException ex)
            {
                suc = false;
                MessageBox.Show(ex.Message, "Помилка компіляції", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            finally
            {
                if (suc == true)
                {
                    data.Text = cmp.mem.output;
                    code.Text = cmp.GetCodeWithComments();
                    if (Properties.Settings.Default.Stop)
                    {
                        code.Text += "01001111 // STOP-слово";
                    }
                    if (write == true)
                    {
                        if (currentfile == string.Empty) //Что бы записывать в файлы нужно сначала сохранить новый файл
                        {
                            MenuItem_SaveAs(null, null);
                        }
                        if (currentfile == string.Empty) //Если имя не поменялось
                        {
                            MessageBox.Show("Зроблено!\n" + "Вивід у файли не записаний, так як спочатку файл треба зберегти", "Успіх", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                        }
                        else
                        {
                            if (Properties.Settings.Default.CODEBOOL == false || (Properties.Settings.Default.CODEBOOL == true && OutputCode.Text == string.Empty))
                            {
                                File.WriteAllText(currentfile.Remove(currentfile.Length - 4) + "_code" + ".txt", comment.Replace(code.Text, string.Empty));
                            }
                            else
                            {
                                File.WriteAllText(currentfile.Remove(currentfile.LastIndexOf(@"\") + 1) + OutputCode.Text + ".txt", comment.Replace(code.Text, string.Empty));
                            }
                            if (Properties.Settings.Default.DATABOOL == false || (Properties.Settings.Default.CODEBOOL == true && OutputCode.Text == string.Empty))
                            {
                                File.WriteAllText(currentfile.Remove(currentfile.Length - 4) + "_data" + ".txt", comment.Replace(data.Text, string.Empty));
                            }
                            else
                            {
                                File.WriteAllText(currentfile.Remove(currentfile.LastIndexOf(@"\") + 1) + OutputData.Text + ".txt", comment.Replace(data.Text, string.Empty));
                            }

                            MessageBox.Show("Зроблено!\nВивід записаний у відповідні файли", "Успіх", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Зроблено!\n", "Успіх", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                    }
                }
            }
        }