Pulse Language // Pro DSL
Pulse to autorski, wysokowydajny język dziedzinowy (DSL) napisany w języku Rust, wyposażony we własny lekser, parser AST oraz zaawansowany silnik automatyzacji i inteligentnego sortowania plików.
⚙️ Architektura i Kompilacja
Projekt łączy w sobie nowoczesne podejście do kompilatorów. Kod źródłowy w języku Pulse przechodzi przez dwa główne etapy przed wykonaniem operacji systemowych:
- Lekser (`lexer.rs`): Analizuje surowy strumień tekstowy i tokenizuje słowa kluczowe (np.
rule,match,extension,fallback). - Parser AST (`parser.rs`): Buduje w pamięci strukturalne drzewo składniowe, które precyzyjnie definiuje reguły oraz powiązane z nimi akcje.
- Silnik Wykonawczy (`main.rs`): Przetwarza pliki w katalogu źródłowym, dynamicznie tworząc strukturę podfolderów wg typów rozszerzeń.
📝 Składnia Przykładowego Skryptu
Plik konfiguracyjny języka Pulse pozwala na elastyczne definiowanie reguł i zachowań domyślnych:
source "./pobrane_pliki"
rule "Zakupy i Faktury" {
match name_contains ["Allegro", "zakup", "faktura", "paragon"]
move to "./Dokumenty/Zakupy"
}
rule "Inteligentne Dokumenty" {
match extension ["pdf", "txt", "docx", "md", "pptx"]
move to "./Dokumenty"
}
rule "Inteligentne Grafiki" {
match extension ["png", "jpg", "jpeg", "webp", "svg"]
move to "./Grafiki"
}
fallback {
move to "./Inne_Formaty"
}
🚀 Instrukcja Uruchomienia (Quickstart)
Upewnij się, że masz zainstalowany system Rust oraz menedżer pakietów Cargo (pobierz ze strony rustup.rs). Następnie wykonaj w terminalu:
# 1. Sklonuj oficjalne repozytorium projektu
git clone https://github.com/DevLabStudy/pulse-lang.git
# 2. Przejdź do katalogu projektu
cd pulse-lang
# 3. Uruchom kompilator i silnik sortujący
cargo run