Заказ закрыт
Доработка проекта выполненного на Qt язык C++

Бюджет: по договоренности
На вход программы подаются два текстовых файла (с именами GRAMMAR.TXT и INPUT.TXT). Первый со- держит LR(1)-грамматику, второй – описание процедур и функций на выбранном языке (Pascal, C++), либо делегатов на языке C#. Необходимо проверить, является ли описание процедур/функций/делегатов корректным с точки зрения заданной грамматики и не содержатся ли в нем конфликты имён. Таким образом, задание разбивается на две части: 1. Проверка синтаксиса. 2. Проверка семантики. Семантика зависит от выбранного языка, и поэтому ее проверка жёстко привязана к анализатору (в данном случае – Вашей программе). Грамматика же должна быть универсальной, т.е. должна позволять задавать любые правила для разбора процедур/функций/делегатов (и не только). Например, должны быть доступны изменения: ключевых слов, знаков пунктуации, правил разбора идентификаторов, а также добавление новых языковых конструкций и т.п. Программа должна проанализировать имеющееся в текстовом файле описание процедур/функций/делегатов и выдать (в текстовый файл OUTPUT.TXT) результат проверки. Это может быть: 1. Сообщение о том, что грамматика во входном файле не является LR(1)-грамматикой. 2. Сообщение о том, что описание корректное. 3. Сообщение о синтаксической ошибке. Указывать тип ошибки не обязательно, требуется только указать строку и позицию в строке входного файла, где наблюдается ошибка. Достаточно находить только первую ошибку в описании. 4. Сообщение о конфликте имён. В этом случае на выходе программы необходимо указать конфликтующее имя, а также строку и позицию в строке, где произошёл конфликт.
Опубликован 18.05.2015 в 15:08 Последнее изменение: 02.06.2015 в 09:02
Заказ находится в архиве

Выберите способ верификации:

Обновите страницу после прохождения верификации.