йуstring lastFilePath=«»; void LoadButton_Click (object sender, EventArgs e)
{(openFileDialog1.ShowDialog () == DialogResult.OK)
{= openFileDialog1.FileName; sr=new (lastFilePath, Encoding.GetEncoding (1251));. Text=sr.ReadToEnd ();
}
} void SaveButton_Click (object sender, EventArgs e)
{(lastFilePath!="")
{. WriteAllText (lastFilePath, richTextBox1.Text, Encoding.GetEncoding (1251));
}
{. Show («Невідомий шлях до файлу. Відкрійте его або скорістайтесь кнопкою Зберегти як»);
}
} void SaveHowButton_Click (object sender, EventArgs e)
{(saveFileDialog1.ShowDialog () == DialogResult.OK)
{= saveFileDialog1.FileName;. WriteAllText (lastFilePath, richTextBox1.Text, Encoding.GetEncoding (1251));
}
} void AnalizButton_Click (object sender, EventArgs e)
{
/ / ЛЕКСІЧНІЙ АНАЛІЗАТОРlexa_prog=«»; i=0, j=0; time=new Stopwatch ();. Start () ;/ / запуск таймера
/ / Стіраємо попередні записи табліці, ЯКЩО Такі булі.Rows.Clear ();. Rows.Clear ();. Rows.Clear ();=0;
/ / Відаляємо лішні рядки, додаємо текст програми в змінну lexa_prog (string temp in richTextBox1.Lines)
{(temp!="")
{_prog +=temp + « r n";
}
}
/ / займемося Коментарі: _prog=CommentRemover («/ *», «* /», lexa_prog);
/ / Розділяємо рядки, запісуємо їх в масив lexa_lines
string [] lexa_lines=lexa_prog.Split (new Char [] {« r»}); _prog=«»; (i=0; i
{_prog +=SpaceCorrector (lexa_lines [i]);
}
/ / Текст Вже відформатованій до ЗРУЧНИЙ вигляд и находится в lexa_prog.wcount=0;// Рахунок слівnlexcount=0;// Рахунок невідоміх лексемstind=0, sts=0;// Зміщення в тексті при поиска лексемr=0, s=0;// Рядок / сімволtempStringConstant=«»;// Для збіркі докупи строкових констант
/ * Пояснення до реалізації поиска строкових змінніх:
ЯКЩО функція пословного перебору натрапляє на знак лапки, то
тимчасова змінна tempStringConstant буде збіраті ВСІ лексеми,
что знаходяться между ними, аж доки НЕ натрапіть на ще одну лапку.
Такоже вводитися булева величина tsc, яка дорівнює true,
ЯКЩО проводитися збір докупи строкової константа. Необхідна для
Заборона Виконання других перевірок * /
bool tsc=false; quotesCount=0;
/ / проведемо Послівний перевірку [] lexa_words=lexa_prog.Split (new Char [] {«»}); (string temp in lexa_words)
{(temp == «" ») quotesCount + +; (temp ==« " » && tsc == false && quotesCount% 2 == 1 )
{= true;
} (temp!=«» && tsc == false)