Morse Code Parser
Morse Code Parser — це бібліотека та CLI-інструмент для парсингу, валідації та декодування тексту, закодованого у код Морзе. Реалізовано на мові програмування Rust із використанням граматики Pest.
📜 Опис проєкту
Проєкт демонструє створення граматик для парсингу текстових форматів та реалізацію повного циклу обробки даних:
- Парсинг коду Морзе: Перетворення закодованого тексту у внутрішнє представлення.
- Декодування: Перетворення закодованого тексту у зрозумілий текст (літери A-Z, цифри 0-9).
- Валідація: Перевірка введення на наявність помилок або недопустимих символів.
🚀 Основні функції
- Парсинг: Перевірка структури коду Морзе відповідно до граматики у
grammar.pest. - Декодування: Конвертація закодованого тексту у зрозумілий текст.
- Валідація: Аналіз введення для перевірки допустимості.
🛠️ Встановлення та запуск
Клонування репозиторію
Збірка проєкту
Запуск CLI
Тестування
🔧 Приклади використання
Парсинг та декодування
use ;
Приклад результату:
Valid Morse code input!
Parsed structure: ...
Decoded text: SOS THIS IS TEST
📜 Граматика коду Морзе
Файл grammar.pest:
WHITESPACE = _{ " " | "\t" | "\n" }
morse_char = { "." | "-" }
morse_letter = @{ morse_char+ }
morse_word = { morse_letter ~ (" " ~ morse_letter)* }
morse_code = { morse_word ~ (WHITESPACE* ~ "/" ~ WHITESPACE* ~ morse_word)* }
morse_code_with_spaces = { WHITESPACE* ~ morse_code ~ WHITESPACE* }
📊 Тестове покриття
Проєкт має понад 50 тестів, що перевіряють:
- Парсинг: Вхідні дані різної структури.
- Декодування: Валідні, невідомі та некоректні символи.
- Валідацію: Допустимість введення.
- Крайні випадки: Пусті рядки, великі блоки тексту, невалідні дані.
Для запуску тестів:
🔗 Посилання
📝 Ліцензія
Проєкт доступний під ліцензією MIT. Деталі можна знайти у файлі LICENSE.