Отчёт по Лабораторной Работе 2
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
им. Р.Е. АЛЕКСЕЕВА
ИНСТИТУТ ЭКОНОМИКИ И УПРАВЛЕНИЯ
Дисциплина "Формальные языки и алгоритмы"
Отчет
по лабораторной работе № 2
Выполнил: Наймушин Сергей Михайлович
студент группы: 20-САИ
Проверил: Ковригин Дмитрий Анатольевич
Нижний Новгород
Нижний Новгород 2021
Задание Лабораторной работы и её Цель.
Написать программу, которая выполняет лексический анализ входного текста в соответствии с заданием и порождает таблицу лексем с указанием их типов, соблюдая нижестоящие условия.
Вариант 13: Входной язык содержит арифметические выражения, разделенные символом; (точка с запятой). Арифметические выражения состоят из идентификаторов, шестнадцатеричных чисел, знака присваивания (: =), знаков операций +, -, *, / и круглых скобок.
Входные данные и выходные данные, метод решения.
Входные данные: Непосредственно входной текст.
Выходные данные: Таблица лексем, в которой соблюдаются поставленные ранее условия и имеется сортировка с указанием типа.
Метод Решения:
Модуль tokenize предоставляет лексический сканер. Также для работы данного модуля мы используем циклы while и проверки elif.
Благодаря данным циклам и проверкам, создаём условия для выдачи ошибок, в случае выхода за рамки заданных в программе выражений.
Основная часть программы находится в class(object), то есть в классе обьектов, из-за этого постоянно используется стандартное имя первого аргумента, для методов object, а именно, self.
Методом append, мы добавляем элементы в конец нашего списка лексем. Полный метод выглядит так: self.lexems.append.
Print – выводит заданные в объекте данные.
Модулем detokenize, мы переводим данные обратно в строку.
Ссылка на репозиторий с полным кодом программы: https://github.com/KoniSavara/ITS-ME-KONIO/tree/Lex_Analyzer