p align="justify"> {(LexGridView [«lex», i - 1]. Value.ToString () == «ціле») / / сюди піде ДОПОВНЕННЯ, ЯКЩО я створі Інші типи змінніх
{+ +;. Rows.Add (DeclaredIdentCount.ToString (), LexGridView [«lex», i]. Value.ToString (), «ціле», LexGridView [«row» , i]. Value.ToString () + «;» + LexGridView [«sym», i]. Value.ToString ());
}
} {}
}
}
/ / тепер знаходимо змінні, что НЕ були оголошені. ЯКЩО Такі є, то це семантичності помілкаIdFinded=false; (i=0; i
{(LexGridView [«mean», i]. Value.ToString () == «змінна») {(j=0; j
{(LexGridView [«lex», i]. Value.ToString () == IdentTable [1, j]. Value.ToString ())
{= true;// Такий ідентифікатор БУВ Оголошення
}
}
/ / ЯКЩО ж ідентифікатор є, но его забули оголосіті, відаєм Помилка:
if (IdFinded == false)
{+ +; (errorCount, Convert.ToInt32 (LexGridView [«row», i]. Value.ToString ()), Convert.ToInt32 (LexGridView [«sym», i]. Value.ToString ()), «8», LexGridView [«lex», i]. Value.ToString ());
}=false;// Повертаємо у Вихідне значення для Нової ітерації
}
}=true;
}
/ / Додавання помилок: void ErrAdd (int erident, int RowNumber, int SymbolInRowNumber, string erDescr, string ErrorLex)
{(erDescr) {«1»:. Rows.Add (erident.ToString (), «Відсутні границі програми (ПОЧАТОК або КІНЕЦЬ)», RowNumber.ToString (), SymbolInRowNumber. ToString ());; «2»:. Rows.Add (erident.ToString (), «Неоднакова кількість відкріваючіх и закріваючіх дужок», «-», «-»);; «3» :. Rows.Add (erident.ToString (), «Неоднакова кількість відкріваючіх и закріваючіх фігурніх дужок», «-», «-»);; «4»:. Rows.Add (erident.ToString (), «Відсутнє Тіло програми», «-», «-»);; «5»:. Rows.Add (erident.ToString (), «невизначе синтаксична помилка», «-»,« - »);;« 6 »:. Rows.Add (erident.ToString (),« Віпущеній символ Закінчення рядка »,« - »,« - »);;« ; 7 »:. Rows.Add (erident.ToString (),« Відсутній Якийсь з операндів »,« - »,« - »);;« 8 »:. Rows.Add (erident.ToString (), «Неоголошена змінна» + ErrorLex, RowNumber.ToString (), SymbolInRowNumber.ToString ());; «9»:. Rows.Add (erident.ToString (), «непарний кількість лапок. Помилка критична » + ErrorLex, RowNumber.ToString (), SymbolInRowNumber.ToString ());;:. Rows.Add (erident.ToString (), «Невідома лексема» + erDescr, RowNumber.ToString (), SymbolInRowNumber.ToString ()) ;;
}
}
/ / Функція видалений лішніх пробілів та розмежування операторівstring SpaceCorrector (string textline)
{i;
/ / розділення Деяк Операторів (для зручнішого зчітування)
/ / Індуській код, альо простішій для розуміння. Если додаваті пробілі Тільки для Операторів, Які его
/ / Не мают, то прийдеться розбіваті шкірного разу string на масив char. Складніше и довше для
/ / Виконання процесором, альо зручніше для Використання в C #
for ...