Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Spreadsheet

Описание

Данный проект представляет собой упрощённую реализацию электронной таблицы (наподобие 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

About

Электронная таблица

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages