Распознавание и поиск лексем
Автор: Spushy Spushy • Январь 15, 2023 • Лабораторная работа • 1,510 Слов (7 Страниц) • 360 Просмотры
Министерство образования Республики Беларусь
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Факультет компьютерных технологий
Кафедра программного обеспечения информационных технологий
Дисциплина: Компиляторные технологии (АиСД)
Лабораторная работа №1
Распознавание и поиск лексем
Выполнил студент гр.
Проверил:
Минск – 2023
Задание:
Для заданного вариантом вида текстовых данных проанализировать допустимые значения и разработать:
• регулярное выражение;
• НКА для этого регулярного выражения;
• эквивалентный ДКА и его таблицу переходов;
• программное средство, реализующее работу этого ДКА.
Программное средство должно поддерживать следующие возможности:
• проверка корректности произвольной строки;
• поиск всех подстрок, соответствующих требованиям, в произвольной строке.
Вариант 6: Корректный идентификатор: начинается с буквы или нижнего подчёркивания, затем — произвольное количество букв, цифр и/или нижних подчёркиваний.
Регулярное выражение:
НКА
[pic 1]
ДКА
[pic 2]
№ состояния | Значение |
1 | Прочитано: ничего. Ожидается: буква либо нижнее подчеркивание. |
2 | Прочитано: буква либо нижнее подчеркивание. Ожидается: буква, цифра либо нижнее подчеркивание. |
Код программы:
Файл Program.cs
using System.Security.Principal;
namespace Lab1
{
internal class Program
{
static void Main(string[] args)
{
string[] test = { "abCde", "x0", "Y", "z_1", "test_value_is_here", "_", "__custom" };
ConsoleColor defaultColor = Console.ForegroundColor;
for (int i = 0; i < test.Length; i++)
{
Console.Write(test[i]);
if (Validate(test[i]))
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("\t\t- корректно;");
Console.ForegroundColor = defaultColor;
}
else
{
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.WriteLine("\t\t- не корректно;");
Console.ForegroundColor = defaultColor;
}
}
Console.Write("Введите идентификатор: ");
Console.ForegroundColor = ConsoleColor.DarkYellow;
string id = Console.ReadLine().ToString();
Console.ForegroundColor = defaultColor;
if (Validate(id))
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Идентификатор корректен.");
Console.ForegroundColor = defaultColor;
...