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
// DevLabStudy Hub Masz pytanie do dokumentacji homelabu?
// Prywatność & Pliki Cookies

Używamy plików cookies w celu zapewnienia prawidłowego działania strony (wymagane) oraz do zbierania analityki ruchu przez Google Analytics (opcjonalne). Poznaj szczegóły w naszej Polityce Prywatności.