Проект позволяет создать электронную таблицу. Ячейка таблицы содержит текст или формулу, которая может состоят из индексов других ячеек. Лексический и синтаксический анализ формул реализован через библиотеку ANTLR, , которая генерирует код обхода дерева разбора формул на С++. Грамматика формул задается файлом Formula.g4.
Проект реализован на С++ 17. Для запуска необходимо установить библиотеку ANTLR v4. Скачанные файлы размещаются в папку antlr4_runtime , расположенную в директорий проекта. Сборка осуществляется при помощи CMake.
Управление таблицей осуществляется через методы класса Sheet:
SetCell(Position pos, std::string text)}
Задаёт содержимое ячейки. Если текст начинается со знака "=", то он интерпретируется, как формула, в противном случае, как текст.GetCell(Position pos)
Возвращает значение ячейки.ClearCell(Position pos)
Очищает ячейку.GetPrintableSize()
Вычисляет размер области, которая участвует в печати. Определяется как ограничивающий прямоугольник всех ячеек с непустым текстом.PrintValues(std::ostream& output) и PrintTexts(std::ostream& output)
Выводит всю таблицу в переданный поток.- разработать графический интерфейс;
- реализовать сериализацию таблицы;
- добавить возможность строить графики и диаграммы по введённым данным.