Реализация интерфейса электронной таблицы
- Динамический полиморфизм
- Работа с формулами с помощью синтаксического дерева ANTLR
- Защита от циклических зависимостей
Работа с формулами в ячейках на листе
sheet->SetCell("A1"_pos, "2");
sheet->SetCell("C3"_pos, "=A1+10");
auto* cell_E5_ptr = sheet->GetCell("C3"_pos);
Реализованные ошибки
* `#DIV0!` - деление на ноль * `#VALUE!` - если операнд содержит текст, а не числовое значение. * `#REF!` - если обращение идет к ячейке (ссылка) за пределами Листа (sheet) * `При конструировании формулы с циклической ссылкой выбрасывается исключение`C++17, Java SE Runtime Environment 8, ANTLR, CMake
- Установить ANTLR
- Актуализировать версию ANTLR:
- Открыть файлы FindANTLR.cmake и CMakeLists.txt
- Для «antlr-***-complete.jar» указать нужную версию
- Разместить в папке «antlr4_runtime» файлы для работы C++
- Запустить CMake
- Добавить графический интерфейс (Qt/GTK)