| 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]