catnukh_matrix_parser
catnukh_matrix_parser - парсер для виконання операцій над матрицями, такими як: додавання, віднімання, множення на скаляр та множення двох матриць між собою
Технічний опис
Початково дані читаються з файлу .txt за допомого парсера pest, який використовує правила граматики визначені в src/matrix.pest
Етапи парсингу
- Розпінавання тексту з файлу на конкретну дію, тобто визначення матриці, додавання матриць і так далі. Це відбувається за допомогою
pest, що будує "дерево" ідентифікуючи команди, які необхідно виконати (add, subtract, mult...) та ігногуючиCOMMENTіWHITESPACE - Код в
src/lib.rsпроходить по цьому дереву та перетворює його на структурований список командVec<Command>
Використання результатів
- CLI-додаток, тобто
src/main.rsотримуєVec<Command> - Створюється
HashMap<String, Matrix>для зберігання всіх визначених матриць за їхїніми іменами - Програма по черзі виконує команди з
Vec<Command>звертаючись доHashMapдля отримання матриць та виводу результату в консоль
Як клонувати собі репозиторій
- Ввести команду
git cloneу консоліgit clone - Перейдіть у щойно створену папку
cd catnukh_matrix_parser - Запуск тестів. Для цього необхідно виконати команду
cargo testcargo test
Граматика (src/matrix.pest)
WHITESPACE = _
COMMENT = _
number =
name_of_matrix =
row =
matrix =
mat_def =
add =
subtract =
mult =
scale =
operation =
file =