Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

KretL — referencja składni

KretL — referencja składni

Status 1.0: `FROZEN_1_0` — pełny zakres 1.0, stabilny kontrakt, testy zgodności. Gramatyka/wersja: kretl-1.0. Status języka nie nadaje uprawnień KCS ani prawa do działania w Production.

Opisane są wyłącznie konstrukcje potwierdzone implementacją SDK (i, gdzie zaznaczono, testami tej rundy).

manifestVersion

Wersja formatu manifestu; pierwsze pole.

manifestVersion "1.0"
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. manifestVersion "1.0"Wersja formatu manifestu KretL.
CechaWartość
Parametry / typytekst "1.0" (jedyna wartość)
Wynik—
Wymaganiaobowiązkowe
Ograniczeniainna wartość = odrzucenie
Możliwe błędyKCS-KRL-02xx (KL-I06)
Wprowadzono1.0

plugin { id name version }

Tożsamość pluginu.

plugin {
    id "LOCAL-KPL-XXXXXXXX"
    name "Nazwa"
    version "1.0.0"
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. plugin {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. id "LOCAL-KPL-XXXXXXXX"Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.
  3. name "Nazwa"Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.
  4. version "1.0.0"Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.
  5. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typyid: identyfikator KCS rodziny KPL (oficjalny albo LOCAL-KPL- + 8 znaków z alfabetu A–H J–N P–Z 2–9); name: 1–64 znaki; version: SemVer
Wynik—
Wymaganiaobowiązkowe, dokładnie jeden blok
Ograniczeniaid innej rodziny (np. KLIB-) odrzucany
Możliwe błędyKCS-ID-*, KCS-VER-1, KCS-KRL-0204
Wprowadzono1.0

namespace, creatorId, metadata

Przestrzeń nazw (KCS-ID-8), identyfikator twórcy, dowolne metadane.

namespace "kretos.examples.x"
creatorId "kret-docs"
metadata {
    author "…"
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. namespace "kretos.examples.x"Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.
  2. creatorId "kret-docs"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. metadata {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  4. author "…"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  5. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typycreatorId: [A-Za-z0-9._-]{1,64}; metadata: jedyny blok z dowolnymi polami
Wynik—
Wymaganiaopcjonalne
Ograniczeniaformat creatorId nieustalony (KL-T08)
Możliwe błędyKCS-KRL-0202
Wprowadzono1.0

compatibility

Zgodność z Core i API.

compatibility {
    core { min "0.5.0" }
    api { min "1.6" }
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. compatibility {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. core { min "0.5.0" }Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  3. api { min "1.6" }Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typyCore: SemVer, max SemVer albo N.x; API: MAJOR.MINOR albo N.x
Wynik—
Wymaganiamin obowiązkowe
Ograniczenianiezgodne wersje → KPM incompatible
Możliwe błędyKCS-VER-*
Wprowadzono1.0

permissions

Deklaracja uprawnień z katalogu KCS (168 nazw).

permissions {
    required {
        logs.own.write
    }
    optional {
        kretdb.read
    }
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. permissions {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. required {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  3. logs.own.writeOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  5. optional {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  6. kretdb.readOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  8. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typynazwy KCS, dowolna liczba segmentów zgodna z katalogiem
Wynik—
Wymaganiaopcjonalne; wymagane, gdy kod używa operacji hosta
Ograniczeniakażda nazwa raz; deklaracja ≠ przyznanie
Możliwe błędyKCS-KRL-0206 (nieznana / unknown), KCS-KRL-0302 (brak w kodzie / missing for code)
Wprowadzono1.0

lifecycle

Operacje cyklu życia: install start suspend resume update repair healthcheck shutdown uninstall.

lifecycle {
    start "Main.Start" timeout 5s
    shutdown "Main.Shutdown" timeout 2s
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. lifecycle {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. start "Main.Start" timeout 5sOdwołanie lifecycle do funkcji KretS; sprawdź nazwę i timeout.
  3. shutdown "Main.Shutdown" timeout 2sOdwołanie lifecycle do funkcji KretS; sprawdź nazwę i timeout.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typy"Moduł.funkcja" KretS bez parametrów; timeout 1 ms – 10 min (domyślnie 5 s)
Wynikhandler zwraca typ KCS (np. String, Unit)
Wymaganiastart i shutdown obowiązkowe
OgraniczeniaCore nie restartuje automatycznie (KL-C04)
Możliwe błędyKCS-KRL-0204, KCS-KRL-0301, KCS-KRL-0303
Wprowadzono1.0

execution

Tryb wykonania.

execution { primary "onDemand" }
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. execution { primary "onDemand" }Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
CechaWartość
Parametry / typytekst (np. "onDemand")
Wynik—
Wymaganiaobowiązkowe
Ograniczenialista dozwolonych wartości nieustalona w bazie wiedzy; tryb dodatkowy wymaga zgody użytkownika po stronie hosta
Możliwe błędyKCS-KRL-0204
Wprowadzono1.0

handlers

Komendy i zdarzenia, które host może dostarczyć pluginowi (on nazwa(…) w KretS).

handlers {
    command "counter.add"
    event "order.placed"
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. handlers {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. command "counter.add"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. event "order.placed"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typynazwy z kropkami
Wynik—
Wymaganiaopcjonalne; wymagane do wywołania komendy
Ograniczenianazwa spoza listy jest odrzucana przez brokera
Możliwe błędyKCS-KRL-02xx
Wprowadzono1.0 (pole wcześniej PROVISIONAL)

limits, runtime, resourcePolicy, isolation

Limity pamięci/CPU, profil zasobów, progi nadzorcy, preferowana izolacja.

limits {
    memory { max 64MB }
    cpu { max 5% }
}
runtime { profile "light" }
isolation { preferred "sandbox" }
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. limits {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. memory { max 64MB }Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  3. cpu { max 5% }Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  5. runtime { profile "light" }Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  6. isolation { preferred "sandbox" }Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
CechaWartość
Parametry / typymemory.max 1 MB – 64 GB; cpu.max w %; profil light|standard|advanced; izolacja process|sandbox
Wynik—
Wymaganiaopcjonalne
Ograniczeniaobcinane do sufitu profilu; host może podnieść izolację, nigdy jej nie obniża
Możliwe błędyKCS-KRL-0191 (ostrzeżenie / warning)
Wprowadzono1.0

runtimeData

Deklaracja obszarów danych: database userData cache logs backup temp.

runtimeData {
    database {
        path "Disk/"
    }
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. runtimeData {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. database {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  3. path "Disk/"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  5. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typyścieżka względna bez .., \, :
Wynik—
Wymaganiaopcjonalne
Ograniczeniapołożenie fizyczne wyznacza host (KL-C01)
Możliwe błędyKL-I11/I12 (odrzucenie / rejected)
Wprowadzono1.0

environment

Deklaracja platform (preferred/supported/experimental) i architektur.

environment {
    platforms {
        supported "windows"
    }
    architectures {
        supported "x64"
    }
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. environment {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. platforms {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  3. supported "windows"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  5. architectures {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  6. supported "x64"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  8. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typyteksty
Wynik—
Wymaganiaopcjonalne
OgraniczeniaplatformSupport jest przestarzałe (informacja KCS-KRL-0190)
Możliwe błędyKCS-KRL-0190
Wprowadzono1.0

project

Włącza mapę projektu KretM.

project {
    map "project.kretm"
    module "App"
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. project {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. map "project.kretm"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. module "App"Deklaracja modułu KretS; porównaj nazwę z nazwą pliku.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typyścieżka mapy, opcjonalnie moduł
Wynik—
Wymaganiaopcjonalne
Ograniczenianiczego nie przyznaje
Możliwe błędyKCS-KRM-*
Wprowadzono1.0

dependencies, recovery, conflicts, provides, requires, …

Sekcje walidowane schematem sekcji i zapisywane w paczce (dependencies conflicts provides requires hardwareRequirements resources suspendPolicy recovery security update platformBundles platformCapabilities conditions).

dependencies {
    required {
        plugin "LOCAL-KPL-CALCAAAA" version ">=1.0.0"
    }
}
recovery {
    maxRetries 3
    retryDelay 2s
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. dependencies {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. required {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  3. plugin "LOCAL-KPL-CALCAAAA" version ">=1.0.0"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  5. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  6. recovery {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  7. maxRetries 3Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. retryDelay 2sOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  9. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typywg schematu sekcji
Wynik—
Wymaganiaopcjonalne
Ograniczeniarecovery to deklaracja — o restarcie decyduje host
Możliwe błędyKCS-KRL-0202
Wprowadzono1.0

Źródło i wersja

Zweryfikowany import PUBLIC_CANDIDATE. Identyfikatory źródeł odnoszą się do eksportu i nie dają dostępu do plików serwera.

01_LANGUAGES/KretL/Documentation/SYNTAX_REFERENCE.md
SHA-256 4F900A68E53D667275A63E865A8503B11B7FA319E4CD0408162172F3ECB038B2

Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →

Wybierz, co możemy zapamiętać w tej przeglądarce. Możesz zmienić decyzję w każdej chwili.

Polityka prywatności