Данный проект представляет собой упрощённую реализацию электронной таблицы (наподобие MS Excel). Она состоит из ячеек, которые могут содержать в себе числовые значения, текст, формулы. Формулы могут содержать не только простые арифметические операции, но и ссылки на другие ячейки. Формулы разбираются при помощи специальной программы ANTLR, которая генерирует код лексического и синтаксического анализаторов, а также код для обхода дерева разбора, на основе которого производятся вычисления. Присутствует возможность вывести значения непустых ячеек (в минимальной печатной области). Предусмотрена проверка ячеек на синтаксические, математические ошибки, а также на наличие циклических зависимостей.
auto sheet = CreateSheet();
sheet->SetCell("A1"_pos, "5");
sheet->SetCell("B1"_pos, "9");
sheet->SetCell("A3"_pos, "=A1+B1");
sheet->SetCell("C2"_pos, "=A3*6");
sheet->SetCell("A2"_pos, "=C2-A1*B1/A3");
sheet->PrintValues(std::cout);
*Установить Java *Установить ANTLR, выполнив все пункты в разделе Quick Start. *В файлах FindANTLR.cmake и CMakeLists.txt проверить совпадение версий ANTLR у файла antlr-X.X.X-complete.jar *Создайть папку с названием "antlr4_runtime" и распаковать в неё скачаный архив. *Создать папку для сборки и запустить в ней команду cmake --build с CMakeLists.txt.
- C++ 17
- Java
- ANTLR4