Jazyk Dziovina

špecifikácia...
posledná zmena : 08.04.2026 20:34 (v.1.35)
Tento dokument predstavuje kompletnú, aktuálnu a ucelenú špecifikáciu jazyka Dziovina, vrátane príkladov použitia. Jazyk je navrhnutý ako značkovací (HTML‑like) systém, ktorý slúži ako podklad pre generovanie zdrojových kódov pre tri platformy:

- web (PHP)
- android (Java)
- windows (C#)

Cieľom jazyka je umožniť jednoduché, jednoznačné a parser‑friendly definovanie tried, vlastností, funkcií a logiky, ktorá sa následne preloží do natívnych jazykov.
Základné dátové typy
✔️ boolean
Logická hodnota true / false.

Web: bool

Android: boolean

Windows: bool

✔️ int
Celé číslo, platformovo mapované na:

Web: long

Android: long

Windows: long

✔️ float
Desatinné číslo.

Web: double

Android: double

Windows: double


✔️ string
Reťazec znakov.

Web: string

Android: String

Windows: string

✔️ list
Zoznam prvkov typu T.

Web: array

Android: ArrayList

Windows: List

✔️ map
Asociatívna mapa (key → value).

Web: array

Android: LinkedHashMap

Windows: Dictionary
1. Triedy
Trieda sa definuje pomocou značiek:

[class:NázovTriedy]
...
[/class]

Dedičnosť

[class:NázovTriedy:NázovRodičovskejTriedy]
...
[/class]
2. Namespace a importy
Priestor sa definuje takto:

[namespace:zložka/.../zložka]

obsah

[/namespace]

Import triedy sa definuje takto:

[use:zložka/.../zložka/názov triedy]
3. Vlastnosti (property)
Vlastnosť sa zapisuje v tvare:

[property:názov:typ:modifikátor1:modifikátor2:modifikátorN]

Pravidlá:

- prvý token = názov
- druhý token = typ
- tretí a ďalší token = modifikátory

Príklady:

[property:id:int:public]
[property:name:string:private]
[property:counter:int:static:public]
4. Funkcie (function)
Funkcia sa zapisuje v tvare:

[function:názov:typ:modifikátor1:modifikátor2:modifikátorN]
...
[/function]

Pravidlá:

- prvý token = názov funkcie
- druhý token = návratový typ (napr. void, int, string, bool, list, object)
- nasleduje 1 až N modifikátorov

Príklady:

[function:initialise:void:public]
[function:computeHash:string:private:static]
5. Parametre funkcií
Parametre sa definujú pomocou značiek:

[param:názov:typ]

Príklady:

[param:id:int]
[param:name:string]

Parametre sa uvádzajú hneď za otváracou značkou funkcie, pred platformovými blokmi.
6. Platformové bloky
Každá funkcia môže obsahovať špecifické časti pre jednotlivé platformy.

Web (PHP)

[web]
// PHP kód
[/web]

Android (Java)

[android]
// Java kód
[/android]

Windows (C#)

[windows]
// C# kód
[/windows]
7. Konštruktor
Konštruktor je definovaný takto:

[constructor]
kód pre konštruktor...
[/constructor]

Aj v konštruktore sú použité platformové bloky, tak ako pri funkciách...
8. Kompletný príklad triedy
[namespace:basics]

[class:Entity]

[property:identifier:string:private]
[property:counter:int:private]

[constructor]
[web]
$this->initialise();
[/web]

[android]
this.initialise();
[/android]

[windows]
this.initialise();
[/windows]
[/constructor]

[function:initialise:void:public]

[web]
if (!isset(self::$counter)) {
self::$counter = 0;
}
self::$counter++;
$this->identifier = "E" . self::$counter;
[/web]

[android]
if (Entity.counter == null) {
Entity.counter = 0;
}
Entity.counter++;
this.identifier = "E" + Entity.counter;
[/android]

[windows]
if (Entity.counter == null) {
Entity.counter = 0;
}
Entity.counter++;
this.identifier = "E" + Entity.counter;
[/windows]

[/function]

[function:getIdentifier:string:public]

[web]
return $this->identifier;
[/web]

[android]
return this.identifier;
[/android]

[windows]
return this.identifier;
[/windows]

[/function]

[function:finish:void:public]

[web]
// Táto funkcia má byť implementovaná v odvodenej triede.
[/web]

[android]
// Táto funkcia má byť implementovaná v odvodenej triede.
[/android]

[windows]
// Táto funkcia má byť implementovaná v odvodenej triede.
[/windows]

[/function]

[/class]

[/namespace]