Лабораторная №3 — задание 3.1E #
Нужно написать конспект по использованию ANTLR4 для проверки грамматики языка.
Что такое ANTLR4 #
ANTLR4 — генератор синтаксических и лексических анализаторов. Основные факты:
- Его разработал профессор университета Сан-Франциско для курса по формальным языкам и компиляторам
- ANTLR4 имеет огромное число примеров грамматик, готовых решений, инструментов и плагинов для IDE
- ANTLR4 использует свой язык описания грамматик g4
Порядок выполнения #
- Создайте markdown файл
docs/theory/ANTLR4-integration.md. Зафиксируйте в нём способ интеграции ANTLR4 в проект на C# (или C++, если вы разрабатываете проект на нём) - Создайте markdown файл
docs/theory/ANTLR4-troubleshooting.md. Зафиксируйте в нём потенциальные проблемы грамматик и их решение средствами ANTLR4
Ссылки #
- Документация ANTLR4: файл doc/index.md в репозитории github.com/antlr
- Репозиторий грамматик ANTLR4: репозиторий github.com/antlr/grammars-v4
Использование ИИ-моделей #
Для сбора информации рекомендуется использовать ИИ-модели в режиме чата.
Рекомендуемый подход:
- Составьте свой промпт и запустите его для двух разных ИИ-моделей
- Вдумчиво прочитайте результаты и выпишите ключевую информацию вручную в markdown файл
- Перепроверьте конспект — нет ли забытых вещей («слепых зон»), фактических ошибок или несущественных деталей?
- Составьте следующий промпт
Примеры промптов #
Запрос инструкции по интеграции ANTLR4 в проект с C# 12 на платформе Windows:
Ты C# разработчик.
Напиши инструкцию с описанием способа интеграции ANTLR4 в проект на C# 12 и .NET 8 с генерацией кода на C#:
- для C# используй наиболее удобный способ интеграции ANTLR4 — пакет `Antlr4BuildTasks`
- старайся быть лаконичным
- описывай действия по шагам
- добавляй действия для проверки промежуточных результатов (например, консольные команды сборки)
- инструкция должна работать на Windows
Запрос информации по проблемам грамматик и их решению в ANTLR4:
Ты C# разработчик, также разбираешься в формальных языках и разработке комплияторов.
Ты используешь ANTLR4 для генерации синтаксического анализатора выражений.
Опиши потенциальные проблемы для грамматик выражений на ANTLR4.
- старайся быть лаконичным
- описывай проблемы, способы диагностики и решения
В том числе опиши следующие проблемы:
1. Учёт приоритета операторов
2. Левая и правая рекурсия в грамматике
3. Левоассоциативные операции
4. Правоассоциативные операторы (например, возведение в степень)
5. Неоднозначность правил (например, переменная или вызов функции в выражении)