| Crates.io | tasklist_parser |
| lib.rs | tasklist_parser |
| version | 0.1.1 |
| created_at | 2025-11-11 22:10:08.362712+00 |
| updated_at | 2025-11-13 11:36:32.359278+00 |
| description | A simple CLI tool to parse .todo task list files. |
| homepage | |
| repository | https://github.com/Lat06/parser.git |
| max_upload_size | |
| id | 1928270 |
| size | 42,166 |
Інструмент парсить текстові файли .todo, які мають наступний формат:
- [x] Виконане завдання
- [ ] Невиконане завдання
Парсинг виконується за допомогою pest та наступного основного правила граматики, визначеного в src/tasks.pest:
/* Правило для статусу: 'x' (виконано) або ' ' (в очікуванні) */
status = { "x" | " " }
/* Опис: "їсть" будь-які символи, що НЕ є новим рядком */
description = @{ (!NEWLINE ~ ANY)* }
/* ! Це наше головне "Grammar Rule" */
task_line = {
"-" ~ " " ~ "[" ~ status ~ "]" ~ " " ~ description ~ (NEWLINE | EOI)
}
/* Файл - це нуль або більше рядків завдань або порожніх рядків */
file = { SOI ~ (task_line | NEWLINE)* ~ EOI }
main.rs) читає .todo файл.lib.rs, де TaskParser (на базі pest) перетворює збіги з task_line у Vec<Task>.Total, Done, Pending) і виводить зведення в консоль.Для зручності всі основні команди зібрані у Makefile.
Запуск програми:
(Потрібно створити файл tasks.todo у корені)
make run file=tasks.todo
Очікуваний вивід:
--- Task Summary ---
Total: 2
Done: 1
Pending: 1
Тестування та перевірка коду:
# Запуск юніт-тестів
make test