Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчёт по Лабораторной Работе 2

.docx
Скачиваний:
15
Добавлен:
11.01.2022
Размер:
18 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

им. Р.Е. АЛЕКСЕЕВА

ИНСТИТУТ ЭКОНОМИКИ И УПРАВЛЕНИЯ

Дисциплина "Формальные языки и алгоритмы"

Отчет

по лабораторной работе № 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