Электронная таблица — это консольное приложение для работы с табличными данными, поддерживающее формулы и текстовые значения в ячейках.
Программа позволяет создавать, редактировать и вычислять таблицы с поддержкой ссылок между ячейками и обработкой циклических зависимостей.
Проект разрабатывался для освоения:
- Работы с абстрактными синтаксическими деревьями (AST)
- Парсинга и обработки формул
- Оптимизации вычислений через кэширование
- Обработки циклических зависимостей
Основные возможности:
- Поддержка текстовых и числовых значений в ячейках
- Формулы с арифметическими операциями и скобками
- Ссылки на другие ячейки в формулах (например, A1+B2*C3)
- Автоматическое вычисление зависимостей
- Обнаружение циклических зависимостей
- Печать таблицы в текстовом виде
Используемые паттерны и технологии:
- ANTLR 4 для генерации парсера формул
- C++20
- Шаблон "Посетитель" для обхода AST
- Кэширование результатов вычислений
- CMake для сборки
Для запуска локально:
- Установить JDK 11+
Под Linux:
sudo apt install openjdk-11-jdk
- Установить ANTLR (Another Tool for Language Recognition) 4.13.2+
- Проверить в файлах FindANTLR.cmake и CMakeLists.txt название файла antlr-X.X.X-complete.jar на корректность версии. Вместо "X.X.X" указать свою версию antlr.
- Создайть папку с названием "antlr4_runtime" без кавычек и скачайть в неё файлы.
- :
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug(Release) ..
cmake --build .
./spreadsheet
Системные требования:
- Linux (Ubuntu 22.04)
Зависимости: