Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gistrec/treeparser
TreeParser - библиотека, предоставляющая функционал для работы с деревом
https://github.com/gistrec/treeparser
Last synced: about 13 hours ago
JSON representation
TreeParser - библиотека, предоставляющая функционал для работы с деревом
- Host: GitHub
- URL: https://github.com/gistrec/treeparser
- Owner: gistrec
- Created: 2020-02-23T18:27:42.000Z (almost 5 years ago)
- Default Branch: develop
- Last Pushed: 2020-02-27T19:17:50.000Z (almost 5 years ago)
- Last Synced: 2025-01-07T17:17:21.208Z (4 days ago)
- Language: C++
- Homepage:
- Size: 29.3 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TreeParser
TreeParser - библиотека, предоставляющая функционал для работы с деревом.
## Структура проекта
* `example` - демонстрационная программа
* `include` - заголовочные файлы библиотеки
* `src` - файлы реализации библиотеки
* `test` - Gtest'ы
* `Makefile` - набор инструкций для автоматизации сборки (библиотеки, демонстрационной программы и тестов)## Особенности
* Разделитель у вещественного числа - точка## Пример конфига
Для хранения дерева в файле был разработан специальный формат ([пример файла](https://github.com/gistrec/TreeParser/blob/develop/example/input.txt)).
Дочерние узлы имеют отступ в 1 знак табуляцииТаким образом дерево
![](https://gistrec.ru/wp-content/uploads/2020/02/TreeParse.png "Пример дерева")
Записывается в конфиг как
```
8
"bar"
2.015
9
2015
"2015"
"baz"
"foo"
6.28318
"hello"
```## Пример использования
Для демонстрации работы библиотеки была создана [программа](https://github.com/gistrec/TreeParser/blob/develop/example/example.cpp), в виде консольного приложения, которая имеет следующие параметры:
* -i/--input - имя входного файла с сериализованным деревом;
* -o/--output - имя выходного файла, в которое будет сериализовано дереваПрограмма десериализовывает дерево из файла input, печатает дерево на экран, и сериализовывает его в файл output.
## Доступные функции
* [`void print(const std::shared_ptr& tree, std::ostream& stream = std::cout)`](#print)
* [`void read(const std::string& filename, std::shared_ptr& tree)`](#read)
* [`void write(const std::string& filename, const std::shared_ptr& tree)`](#write)## Описание функций
**`void print(const std::shared_ptr& tree, std::ostream& stream = std::cout)`** - Печатает дерево в поток* `tree` - дерево, которое будет распечатано
* `stream` - поток вывода---
**`void read(const std::string& filename, std::shared_ptr& tree)`** - Десериализовать дерево из файла.* `filename` - файл, откуда нужно считать дерево
* `tree` - указатель, куда считается деревоИсключения:
* TreeBadFile - если не удалось прочитать данные из файла
* TreeBadData - если в файле содержится ошибка---
**`void write(const std::string& filename, const std::shared_ptr& tree)`** - Сериализовать дерево в файл.* `filename` - файл, куда нужно сериализовывать дерево
* `tree` - указатель на дерево, которое нужно сериализоватьИсключения:
* TreeBadFile - если не удалось записать данные в файл