This commit is contained in:
Christian Fraß 2018-03-27 19:21:40 +02:00
parent dac259a252
commit c5282e424c
32 changed files with 1434 additions and 1370 deletions

View file

@ -45,6 +45,7 @@ ${dir_erzeugnis}/vtm.dat.js: \
${dir_erzeugnis}/vtm.js: \ ${dir_erzeugnis}/vtm.js: \
${dir_quelldatein}/helfer/typen.ts \ ${dir_quelldatein}/helfer/typen.ts \
${dir_quelldatein}/helfer/aufruf.ts \ ${dir_quelldatein}/helfer/aufruf.ts \
${dir_quelldatein}/helfer/brauch.ts \
${dir_quelldatein}/helfer/fehlermonade/_fehlermonade.ts \ ${dir_quelldatein}/helfer/fehlermonade/_fehlermonade.ts \
${dir_quelldatein}/helfer/fehlermonade/nichts.ts \ ${dir_quelldatein}/helfer/fehlermonade/nichts.ts \
${dir_quelldatein}/helfer/fehlermonade/schlicht.ts \ ${dir_quelldatein}/helfer/fehlermonade/schlicht.ts \

View file

@ -28,13 +28,13 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
export type typ_aktor = typ_komplex<any>; export type typ_aktor = lib_aufruf.typ_komplex<any>;
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
export type schnittstelle_aktor = export type signatur_aktor =
{ {
beispiel : ()=>typ_aktor; beispiel : ()=>typ_aktor;
drehen : (aktor : typ_aktor, inkrement : int)=>void; drehen : (aktor : typ_aktor, inkrement : int)=>void;
@ -48,7 +48,7 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
export var implementierung_aktor : {[art : string] : schnittstelle_aktor} = {}; export var brauch_aktor : lib_brauch.typ_brauch<signatur_aktor> = lib_brauch.erstellen<signatur_aktor>();
/** /**
@ -57,7 +57,7 @@ module mod_vtm
/* /*
export function erstellen(art : string, kern : any) : typ_aktor export function erstellen(art : string, kern : any) : typ_aktor
{ {
return einpacken(art, kern); return lib_aufruf.einpacken(art, kern);
} }
*/ */
@ -67,7 +67,7 @@ module mod_vtm
*/ */
export function beispiel(art : string) : typ_aktor export function beispiel(art : string) : typ_aktor
{ {
return implementierung_aktor[art].beispiel(); return lib_brauch.anwenden(brauch_aktor, art)["beispiel"]();
} }
@ -76,7 +76,7 @@ module mod_vtm
*/ */
export function drehen(aktor : typ_aktor, inkrement ?: int) : void export function drehen(aktor : typ_aktor, inkrement ?: int) : void
{ {
return implementierung_aktor[aktor.art].drehen(aktor, inkrement); return lib_brauch.anwenden(brauch_aktor, aktor.art)["drehen"](aktor, inkrement);
} }
@ -85,7 +85,7 @@ module mod_vtm
*/ */
export function verwenden(aktor : typ_aktor, figur : mod_figur.typ_figur) : void export function verwenden(aktor : typ_aktor, figur : mod_figur.typ_figur) : void
{ {
return implementierung_aktor[aktor.art].verwenden(aktor, figur); return lib_brauch.anwenden(brauch_aktor, aktor.art)["verwenden"](aktor, figur);
} }
@ -94,7 +94,7 @@ module mod_vtm
*/ */
export function exportieren(aktor : typ_aktor) : any export function exportieren(aktor : typ_aktor) : any
{ {
return implementierung_aktor[aktor.art].exportieren(aktor); return lib_brauch.anwenden(brauch_aktor, aktor.art)["exportieren"](aktor);
} }
@ -103,7 +103,7 @@ module mod_vtm
*/ */
export function importieren(roh : any) : typ_aktor export function importieren(roh : any) : typ_aktor
{ {
return implementierung_aktor[roh.art].importieren(roh); return lib_brauch.anwenden(brauch_aktor, roh.art)["importieren"](roh);
} }
} }

View file

@ -22,7 +22,10 @@ module mod_vtm
export module mod_aufbau export module mod_aufbau
{ {
export module mod_aktor_annehmer export module mod_aktor
{
export module mod_annehmer
{ {
/** /**
@ -61,7 +64,7 @@ module mod_vtm
) )
: mod_aktor.typ_aktor : mod_aktor.typ_aktor
{ {
return einpacken(art, erstellen()); return lib_aufruf.einpacken(art, erstellen());
} }
@ -138,14 +141,18 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
mod_aktor.implementierung_aktor[art] = lib_brauch.umsetzen<signatur_aktor>
(
brauch_aktor,
art,
{ {
"beispiel": () => einpacken(art, beispiel()), "beispiel": () => lib_aufruf.einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement), "drehen": (aktor, inkrement) => drehen(lib_aufruf.auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur), "verwenden": (aktor, figur) => verwenden(lib_aufruf.auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}), "exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh["angaben"])), "importieren": (roh) => lib_aufruf.einpacken(art, importieren(roh["angaben"])),
} }
)
; ;
} }
@ -154,3 +161,5 @@ module mod_vtm
} }
}

View file

@ -22,7 +22,10 @@ module mod_vtm
export module mod_aufbau export module mod_aufbau
{ {
export module mod_aktor_befoerderer export module mod_aktor
{
export module mod_befoerderer
{ {
/** /**
@ -65,7 +68,7 @@ module mod_vtm
) )
: mod_aktor.typ_aktor : mod_aktor.typ_aktor
{ {
return einpacken(art, erstellen(richtung)); return lib_aufruf.einpacken(art, erstellen(richtung));
} }
@ -158,14 +161,18 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
mod_aktor.implementierung_aktor[art] = lib_brauch.umsetzen<signatur_aktor>
(
brauch_aktor,
art,
{ {
"beispiel": () => einpacken(art, beispiel()), "beispiel": () => lib_aufruf.einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement), "drehen": (aktor, inkrement) => drehen(lib_aufruf.auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur), "verwenden": (aktor, figur) => verwenden(lib_aufruf.auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}), "exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh["angaben"])), "importieren": (roh) => lib_aufruf.einpacken(art, importieren(roh["angaben"])),
} }
)
; ;
} }
@ -174,3 +181,5 @@ module mod_vtm
} }
}

View file

@ -22,7 +22,10 @@ module mod_vtm
export module mod_aufbau export module mod_aufbau
{ {
export module mod_aktor_erzeuger export module mod_aktor
{
export module mod_erzeuger
{ {
/** /**
@ -65,7 +68,7 @@ module mod_vtm
) )
: mod_aktor.typ_aktor : mod_aktor.typ_aktor
{ {
return einpacken(art, erstellen(richtung)); return lib_aufruf.einpacken(art, erstellen(richtung));
} }
@ -158,14 +161,18 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
mod_aktor.implementierung_aktor[art] = lib_brauch.umsetzen<signatur_aktor>
(
brauch_aktor,
art,
{ {
"beispiel": () => einpacken(art, beispiel()), "beispiel": () => lib_aufruf.einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement), "drehen": (aktor, inkrement) => drehen(lib_aufruf.auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur), "verwenden": (aktor, figur) => verwenden(lib_aufruf.auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": art, "angaben": exportieren(auspacken(aktor))}), "exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh["angaben"])), "importieren": (roh) => lib_aufruf.einpacken(art, importieren(roh["angaben"])),
} }
)
; ;
} }
@ -174,3 +181,5 @@ module mod_vtm
} }
}

View file

@ -22,7 +22,10 @@ module mod_vtm
export module mod_aufbau export module mod_aufbau
{ {
export module mod_aktor_leser export module mod_aktor
{
export module mod_leser
{ {
/** /**
@ -73,7 +76,7 @@ module mod_vtm
) )
: mod_aktor.typ_aktor : mod_aktor.typ_aktor
{ {
return einpacken(art, erstellen(richtung, symbol_links, symbol_rechts)); return lib_aufruf.einpacken(art, erstellen(richtung, symbol_links, symbol_rechts));
} }
@ -221,14 +224,18 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
mod_aktor.implementierung_aktor[art] = lib_brauch.umsetzen<signatur_aktor>
(
brauch_aktor,
art,
{ {
"beispiel": () => einpacken(art, beispiel()), "beispiel": () => lib_aufruf.einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement), "drehen": (aktor, inkrement) => drehen(lib_aufruf.auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur), "verwenden": (aktor, figur) => verwenden(lib_aufruf.auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": "leser", "angaben": exportieren(aktor.angaben)}), "exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh["angaben"])), "importieren": (roh) => lib_aufruf.einpacken(art, importieren(roh["angaben"])),
} }
)
; ;
} }
@ -237,3 +244,5 @@ module mod_vtm
} }
}

View file

@ -22,7 +22,10 @@ module mod_vtm
export module mod_aufbau export module mod_aufbau
{ {
export module mod_aktor_schreiber export module mod_aktor
{
export module mod_schreiber
{ {
/** /**
@ -69,7 +72,7 @@ module mod_vtm
) )
: mod_aktor.typ_aktor : mod_aktor.typ_aktor
{ {
return einpacken(art, erstellen(richtung, symbol)); return lib_aufruf.einpacken(art, erstellen(richtung, symbol));
} }
@ -178,14 +181,18 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
mod_aktor.implementierung_aktor["schreiber"] = lib_brauch.umsetzen<signatur_aktor>
(
brauch_aktor,
art,
{ {
"beispiel": () => einpacken(art, beispiel()), "beispiel": () => lib_aufruf.einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement), "drehen": (aktor, inkrement) => drehen(lib_aufruf.auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur), "verwenden": (aktor, figur) => verwenden(lib_aufruf.auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": "schreiber", "angaben": exportieren(aktor.angaben)}), "exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh["angaben"])), "importieren": (roh) => lib_aufruf.einpacken(art, importieren(roh["angaben"])),
} }
)
; ;
} }
@ -194,3 +201,5 @@ module mod_vtm
} }
}

View file

@ -22,7 +22,10 @@ module mod_vtm
export module mod_aufbau export module mod_aufbau
{ {
export module mod_aktor_verwerfer export module mod_aktor
{
export module mod_verwerfer
{ {
/** /**
@ -61,7 +64,7 @@ module mod_vtm
) )
: mod_aktor.typ_aktor : mod_aktor.typ_aktor
{ {
return einpacken(art, erstellen()); return lib_aufruf.einpacken(art, erstellen());
} }
@ -138,14 +141,18 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
mod_aktor.implementierung_aktor[art] = lib_brauch.umsetzen<signatur_aktor>
(
brauch_aktor,
art,
{ {
"beispiel": () => einpacken(art, beispiel()), "beispiel": () => lib_aufruf.einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement), "drehen": (aktor, inkrement) => drehen(lib_aufruf.auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur), "verwenden": (aktor, figur) => verwenden(lib_aufruf.auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}), "exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh["angaben"])), "importieren": (roh) => lib_aufruf.einpacken(art, importieren(roh["angaben"])),
} }
)
; ;
} }
@ -154,3 +161,5 @@ module mod_vtm
} }
}

View file

@ -28,7 +28,7 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
export type typ_aufgabe = typ_komplex<Object>; export type typ_aufgabe = lib_aufruf.typ_komplex<Object>;
/** /**
@ -47,7 +47,7 @@ module mod_vtm
: string : string
{ {
return ( return (
fallunterscheidung<string> lib_aufruf.fallunterscheidung<string>
( (
aufgabe, aufgabe,
{ {
@ -69,7 +69,7 @@ module mod_vtm
: string : string
{ {
return ( return (
fallunterscheidung<string> lib_aufruf.fallunterscheidung<string>
( (
aufgabe, aufgabe,
{ {
@ -91,7 +91,7 @@ module mod_vtm
: string : string
{ {
return ( return (
fallunterscheidung<string> lib_aufruf.fallunterscheidung<string>
( (
aufgabe, aufgabe,
{ {
@ -113,7 +113,7 @@ module mod_vtm
: Array<mod_test.typ_test> : Array<mod_test.typ_test>
{ {
return ( return (
fallunterscheidung<Array<mod_test.typ_test>> lib_aufruf.fallunterscheidung<Array<mod_test.typ_test>>
( (
aufgabe, aufgabe,
{ {

View file

@ -28,7 +28,7 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
export type typ_test = typ_komplex<Object>; export type typ_test = lib_aufruf.typ_komplex<Object>;
/** /**
@ -41,7 +41,7 @@ module mod_vtm
: Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol> : Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>
{ {
return ( return (
fallunterscheidung<Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>> lib_aufruf.fallunterscheidung<Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>>
( (
test, test,
{ {
@ -65,7 +65,7 @@ module mod_vtm
: boolean : boolean
{ {
return ( return (
fallunterscheidung<boolean> lib_aufruf.fallunterscheidung<boolean>
( (
test, test,
{ {

View file

@ -300,7 +300,7 @@ module mod_vtm
let aktor : mod_aktor.typ_aktor = ( let aktor : mod_aktor.typ_aktor = (
lib_fehlermonade.voll(aktor_) lib_fehlermonade.voll(aktor_)
? lib_fehlermonade.lesen(aktor_) ? lib_fehlermonade.lesen(aktor_)
: mod_aktor_verwerfer.erstellen_aktor() : mod_aktor.mod_verwerfer.erstellen_aktor()
); );
mod_aktor.verwenden(aktor, figur); mod_aktor.verwenden(aktor, figur);
let zustand : mod_zustand.typ_zustand = mod_figur.zustand_lesen(figur); let zustand : mod_zustand.typ_zustand = mod_figur.zustand_lesen(figur);

View file

@ -36,7 +36,7 @@ module mod_vtm
*/ */
export function addieren(richtung1 : typ_richtung, richtung2 : typ_richtung) : typ_richtung export function addieren(richtung1 : typ_richtung, richtung2 : typ_richtung) : typ_richtung
{ {
return mod_vtm.mod_helfer.mod_mathematik.mod(richtung1 + richtung2, 6); return lib_mathematik.mod(richtung1 + richtung2, 6);
} }

View file

@ -30,7 +30,7 @@ module mod_vtm
*/ */
export type typ_welt = export type typ_welt =
{ {
felder : mod_vtm.mod_helfer.mod_hashmap.typ_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor>; felder : lib_hashmap.typ_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor>;
} }
; ;
@ -40,7 +40,7 @@ module mod_vtm
*/ */
export function erstellen export function erstellen
( (
felder : mod_vtm.mod_helfer.mod_hashmap.typ_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor> = mod_vtm.mod_helfer.mod_hashmap.erstellen<mod_stelle.typ_stelle, mod_aktor.typ_aktor>(mod_stelle.hash) felder : lib_hashmap.typ_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor> = lib_hashmap.erstellen<mod_stelle.typ_stelle, mod_aktor.typ_aktor>(mod_stelle.hash)
) )
: typ_welt : typ_welt
{ {
@ -56,7 +56,7 @@ module mod_vtm
export function felder_lesen(welt : typ_welt) : Array<{stelle : mod_stelle.typ_stelle; aktor : mod_aktor.typ_aktor;}> export function felder_lesen(welt : typ_welt) : Array<{stelle : mod_stelle.typ_stelle; aktor : mod_aktor.typ_aktor;}>
{ {
let felder : Array<{stelle : mod_stelle.typ_stelle; aktor : mod_aktor.typ_aktor;}> = []; let felder : Array<{stelle : mod_stelle.typ_stelle; aktor : mod_aktor.typ_aktor;}> = [];
mod_vtm.mod_helfer.mod_hashmap.iterieren lib_hashmap.iterieren
( (
welt.felder, welt.felder,
(stelle, aktor) => felder.push({"stelle": stelle, "aktor": aktor}) (stelle, aktor) => felder.push({"stelle": stelle, "aktor": aktor})
@ -71,7 +71,7 @@ module mod_vtm
*/ */
export function feld_holen(welt : typ_welt, stelle : mod_stelle.typ_stelle) : lib_fehlermonade.typ_fehlermonade<mod_aktor.typ_aktor> export function feld_holen(welt : typ_welt, stelle : mod_stelle.typ_stelle) : lib_fehlermonade.typ_fehlermonade<mod_aktor.typ_aktor>
{ {
return mod_vtm.mod_helfer.mod_hashmap.holen(welt.felder, stelle); return lib_hashmap.holen(welt.felder, stelle);
} }
@ -80,7 +80,7 @@ module mod_vtm
*/ */
export function feld_setzen(welt : typ_welt, stelle : mod_stelle.typ_stelle, aktor : mod_aktor.typ_aktor) : void export function feld_setzen(welt : typ_welt, stelle : mod_stelle.typ_stelle, aktor : mod_aktor.typ_aktor) : void
{ {
mod_vtm.mod_helfer.mod_hashmap.setzen(welt.felder, stelle, aktor); lib_hashmap.setzen(welt.felder, stelle, aktor);
} }
@ -97,7 +97,7 @@ module mod_vtm
[ [
{ {
"pruefer": (aktor) => (aktor.art === "befoerderer"), "pruefer": (aktor) => (aktor.art === "befoerderer"),
"ersteller": () => mod_aktor_befoerderer.erstellen_aktor(0), "ersteller": () => mod_aktor.mod_befoerderer.erstellen_aktor(0),
}, },
] ]
) )
@ -111,7 +111,7 @@ module mod_vtm
{ {
if (aktor.art === "schreiber") if (aktor.art === "schreiber")
{ {
return (mod_aktor_schreiber.symbol_lesen(aktor.angaben) === symbol); return (mod_aktor.mod_schreiber.symbol_lesen(aktor.angaben) === symbol);
} }
else else
{ {
@ -119,7 +119,7 @@ module mod_vtm
} }
} }
, ,
"ersteller": () => mod_aktor_schreiber.erstellen_aktor(0, symbol) "ersteller": () => mod_aktor.mod_schreiber.erstellen_aktor(0, symbol)
} }
) )
) )
@ -139,9 +139,9 @@ module mod_vtm
if (aktor.art === "leser") if (aktor.art === "leser")
{ {
return ( return (
(mod_aktor_leser.symbol_links_lesen(aktor.angaben) === symbol_links) (mod_aktor.mod_leser.symbol_links_lesen(aktor.angaben) === symbol_links)
&& &&
(mod_aktor_leser.symbol_rechts_lesen(aktor.angaben) === symbol_rechts) (mod_aktor.mod_leser.symbol_rechts_lesen(aktor.angaben) === symbol_rechts)
); );
} }
else else
@ -150,7 +150,7 @@ module mod_vtm
} }
} }
, ,
"ersteller": () => mod_aktor_leser.erstellen_aktor(0, symbol_links, symbol_rechts) "ersteller": () => mod_aktor.mod_leser.erstellen_aktor(0, symbol_links, symbol_rechts)
} }
); );
} }
@ -161,13 +161,13 @@ module mod_vtm
[ [
{ {
"pruefer": (aktor) => (aktor.art === "verwerfer"), "pruefer": (aktor) => (aktor.art === "verwerfer"),
"ersteller": () => mod_aktor_verwerfer.erstellen_aktor(), "ersteller": () => mod_aktor.mod_verwerfer.erstellen_aktor(),
}, },
] ]
) )
); );
let index_alt : lib_fehlermonade.typ_fehlermonade<int>; let index_alt : lib_fehlermonade.typ_fehlermonade<int>;
let aktor_alt_ : lib_fehlermonade.typ_fehlermonade<mod_aktor.typ_aktor> = mod_vtm.mod_helfer.mod_hashmap.holen(welt.felder, stelle); let aktor_alt_ : lib_fehlermonade.typ_fehlermonade<mod_aktor.typ_aktor> = lib_hashmap.holen(welt.felder, stelle);
if (lib_fehlermonade.voll(aktor_alt_)) if (lib_fehlermonade.voll(aktor_alt_))
{ {
let aktor_alt : mod_aktor.typ_aktor = lib_fehlermonade.lesen(aktor_alt_); let aktor_alt : mod_aktor.typ_aktor = lib_fehlermonade.lesen(aktor_alt_);
@ -205,7 +205,7 @@ module mod_vtm
} }
if (lib_fehlermonade.voll(index_alt)) if (lib_fehlermonade.voll(index_alt))
{ {
let index_neu : int = mod_vtm.mod_helfer.mod_mathematik.mod(lib_fehlermonade.lesen(index_alt) + (umgekehrt ? -1 : +1), liste.length); let index_neu : int = lib_mathematik.mod(lib_fehlermonade.lesen(index_alt) + (umgekehrt ? -1 : +1), liste.length);
let aktor_neu : mod_aktor.typ_aktor = liste[index_neu].ersteller(); let aktor_neu : mod_aktor.typ_aktor = liste[index_neu].ersteller();
feld_setzen(welt, stelle, aktor_neu); feld_setzen(welt, stelle, aktor_neu);
} }
@ -223,7 +223,7 @@ module mod_vtm
*/ */
export function feld_drehen(welt : typ_welt, stelle : mod_stelle.typ_stelle, inkrement : int = +1) : void export function feld_drehen(welt : typ_welt, stelle : mod_stelle.typ_stelle, inkrement : int = +1) : void
{ {
let aktor_ : lib_fehlermonade.typ_fehlermonade<mod_aktor.typ_aktor> = mod_vtm.mod_helfer.mod_hashmap.holen(welt.felder, stelle); let aktor_ : lib_fehlermonade.typ_fehlermonade<mod_aktor.typ_aktor> = lib_hashmap.holen(welt.felder, stelle);
if (lib_fehlermonade.voll(aktor_)) if (lib_fehlermonade.voll(aktor_))
{ {
mod_aktor.drehen(lib_fehlermonade.lesen(aktor_), inkrement); mod_aktor.drehen(lib_fehlermonade.lesen(aktor_), inkrement);
@ -242,7 +242,7 @@ module mod_vtm
export function erzeuger_finden(welt : typ_welt) : mod_stelle.typ_stelle export function erzeuger_finden(welt : typ_welt) : mod_stelle.typ_stelle
{ {
let stelle : lib_fehlermonade.typ_fehlermonade<mod_stelle.typ_stelle> = (lib_fehlermonade.mod_nichts.erstellen<mod_stelle.typ_stelle>()); let stelle : lib_fehlermonade.typ_fehlermonade<mod_stelle.typ_stelle> = (lib_fehlermonade.mod_nichts.erstellen<mod_stelle.typ_stelle>());
mod_vtm.mod_helfer.mod_hashmap.iterieren lib_hashmap.iterieren
( (
welt.felder, welt.felder,
(stelle_, aktor) => (stelle_, aktor) =>
@ -290,17 +290,17 @@ module mod_vtm
let aktor : mod_aktor.typ_aktor; let aktor : mod_aktor.typ_aktor;
if ((u === -groesse) && (v === 0)) if ((u === -groesse) && (v === 0))
{ {
aktor = mod_aktor_erzeuger.erstellen_aktor(0); aktor = mod_aktor.mod_erzeuger.erstellen_aktor(0);
} }
else if ((u === +groesse) && (v === 0)) else if ((u === +groesse) && (v === 0))
{ {
aktor = mod_aktor_annehmer.erstellen_aktor(); aktor = mod_aktor.mod_annehmer.erstellen_aktor();
} }
else else
{ {
aktor = mod_aktor_verwerfer.erstellen_aktor(); aktor = mod_aktor.mod_verwerfer.erstellen_aktor();
} }
mod_vtm.mod_helfer.mod_hashmap.setzen(welt.felder, stelle, aktor); lib_hashmap.setzen(welt.felder, stelle, aktor);
} }
} }
} }
@ -315,7 +315,7 @@ module mod_vtm
{ {
let roh : any = {}; let roh : any = {};
roh["felder"] = {}; roh["felder"] = {};
mod_vtm.mod_helfer.mod_hashmap.iterieren lib_hashmap.iterieren
( (
welt.felder, welt.felder,
(stelle, aktor) => (stelle, aktor) =>
@ -335,13 +335,13 @@ module mod_vtm
*/ */
export function importieren(roh : any) : typ_welt export function importieren(roh : any) : typ_welt
{ {
let felder : mod_vtm.mod_helfer.mod_hashmap.typ_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor> = (mod_vtm.mod_helfer.mod_hashmap.erstellen<mod_stelle.typ_stelle, mod_aktor.typ_aktor>(mod_stelle.hash)); let felder : lib_hashmap.typ_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor> = (lib_hashmap.erstellen<mod_stelle.typ_stelle, mod_aktor.typ_aktor>(mod_stelle.hash));
for (let stelle_ in roh["felder"]) for (let stelle_ in roh["felder"])
{ {
let stelle : mod_stelle.typ_stelle = mod_stelle.importieren(stelle_); let stelle : mod_stelle.typ_stelle = mod_stelle.importieren(stelle_);
let aktor_ : mod_aktor.typ_aktor = roh["felder"][stelle_]; let aktor_ : mod_aktor.typ_aktor = roh["felder"][stelle_];
let aktor : mod_aktor.typ_aktor = mod_aktor.importieren(aktor_); let aktor : mod_aktor.typ_aktor = mod_aktor.importieren(aktor_);
mod_vtm.mod_helfer.mod_hashmap.setzen(felder, stelle, aktor); lib_hashmap.setzen(felder, stelle, aktor);
} }
return ( return (
erstellen erstellen

View file

@ -16,7 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
module mod_vtm_daten module mod_vtm
{
export module mod_daten
{ {
/** /**
@ -51,12 +54,14 @@ module mod_vtm_daten
} }
}
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
function jsonp_behandlung(objekt : {schluessel : string; wert : any;}) : void function jsonp_behandlung(objekt : {schluessel : string; wert : any;}) : void
{ {
mod_vtm_daten.schreiben(objekt.schluessel, objekt.wert); mod_vtm.mod_daten.schreiben(objekt.schluessel, objekt.wert);
} }

View file

@ -24,7 +24,7 @@ module mod_vtm
*/ */
function aufgaben_eintragen(behandler : (aufgabe : mod_aufbau.mod_aufgabe.typ_aufgabe)=>void) : void function aufgaben_eintragen(behandler : (aufgabe : mod_aufbau.mod_aufgabe.typ_aufgabe)=>void) : void
{ {
let aufgaben_roh_ : lib_fehlermonade.typ_fehlermonade<Array<any>> = mod_vtm_daten.lesen("aufgaben"); let aufgaben_roh_ : lib_fehlermonade.typ_fehlermonade<Array<any>> = mod_vtm.mod_daten.lesen("aufgaben");
if (lib_fehlermonade.voll(aufgaben_roh_)) if (lib_fehlermonade.voll(aufgaben_roh_))
{ {
let aufgaben_roh : Array<any> = lib_fehlermonade.lesen(aufgaben_roh_); let aufgaben_roh : Array<any> = lib_fehlermonade.lesen(aufgaben_roh_);
@ -42,8 +42,8 @@ module mod_vtm
{ {
let praefix : string = ( let praefix : string = (
{ {
"akzeptor": mod_vtm.mod_helfer.mod_uebersetzung.holen("aufbau.aufgaben.arten.akzeptor.kuerzel"), "akzeptor": lib_uebersetzung.holen("aufbau.aufgaben.arten.akzeptor.kuerzel"),
"transduktor": mod_vtm.mod_helfer.mod_uebersetzung.holen("aufbau.aufgaben.arten.transduktor.kuerzel"), "transduktor": lib_uebersetzung.holen("aufbau.aufgaben.arten.transduktor.kuerzel"),
}[aufgabe_roh["art"]] }[aufgabe_roh["art"]]
); );
let titel : string = ("[" + praefix + "]" + " " + aufgabe_roh["parameter"]["titel"]); let titel : string = ("[" + praefix + "]" + " " + aufgabe_roh["parameter"]["titel"]);
@ -87,15 +87,15 @@ module mod_vtm
let sprache_nativ : string = "de"; let sprache_nativ : string = "de";
if (! sprachen[""+"includes"](sprache_nativ)) if (! sprachen[""+"includes"](sprache_nativ))
sprachen.push(sprache_nativ); sprachen.push(sprache_nativ);
mod_vtm.mod_helfer.mod_uebersetzung.einrichten(sprachen); lib_uebersetzung.einrichten(sprachen);
mod_vtm.mod_helfer.mod_uebersetzung.anwenden(document); lib_uebersetzung.anwenden(document);
} }
// Hilfe // Hilfe
{ {
// Einleitung // Einleitung
{ {
document.querySelector("#hilfe_einleitung").innerHTML = ( document.querySelector("#hilfe_einleitung").innerHTML = (
mod_vtm.mod_helfer.mod_uebersetzung.holen lib_uebersetzung.holen
( (
"hilfe.einleitung", "hilfe.einleitung",
{ {

View file

@ -16,16 +16,19 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
module lib_aufruf
{
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
type typ_komplex<typ_angaben> = {art : string; angaben ?: typ_angaben;}; export type typ_komplex<typ_angaben> = {art : string; angaben ?: typ_angaben;};
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
function einpacken<typ_angaben>(art : string, angaben : typ_angaben) : typ_komplex<typ_angaben> export function einpacken<typ_angaben>(art : string, angaben : typ_angaben) : typ_komplex<typ_angaben>
{ {
return {"art": art, "angaben": angaben}; return {"art": art, "angaben": angaben};
} }
@ -34,7 +37,7 @@ function einpacken<typ_angaben>(art : string, angaben : typ_angaben) : typ_kompl
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
function auspacken<typ_angaben>(komplex : typ_komplex<typ_angaben>) : typ_angaben export function auspacken<typ_angaben>(komplex : typ_komplex<typ_angaben>) : typ_angaben
{ {
return komplex.angaben; return komplex.angaben;
} }
@ -43,7 +46,7 @@ function auspacken<typ_angaben>(komplex : typ_komplex<typ_angaben>) : typ_angabe
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
function fallunterscheidung<typ_ergebnis> export function fallunterscheidung<typ_ergebnis>
( (
komplex : typ_komplex<any>, komplex : typ_komplex<any>,
faelle : {[art : string] : (angaben ?: any)=>typ_ergebnis}, faelle : {[art : string] : (angaben ?: any)=>typ_ergebnis},
@ -65,56 +68,5 @@ function fallunterscheidung<typ_ergebnis>
return ergebnis; return ergebnis;
} }
} }
module lib_brauch
{
/**
* @author kcf <vidofnir@folksprak.org>
*/
export type typ_brauch<typ_signatur> = {[domäne : string] : typ_signatur};
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function erstellen<typ_signatur>
(
)
: typ_brauch<typ_signatur>
{
return {};
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function umsetzen<typ_signatur>
(
brauch : typ_brauch<typ_signatur>,
domäne : string,
implementierung : typ_signatur
)
: void
{
brauch[domäne] = implementierung;
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function anwenden<typ_signatur>
(
brauch : typ_brauch<typ_signatur>,
domäne : string
)
: typ_signatur
{
return brauch[domäne];
}
} }

View file

@ -0,0 +1,86 @@
/*
* Verrückte Turing-Maschinen A turing complete game
* Copyright (C) 2016 Christian Fraß <vidofnir@folksprak.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module lib_brauch
{
/**
* @author kcf <vidofnir@folksprak.org>
*/
export type typ_brauch<typ_signatur> = {[domäne : string] : typ_signatur};
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function erstellen<typ_signatur>
(
)
: typ_brauch<typ_signatur>
{
return {};
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function umsetzen<typ_signatur>
(
brauch : typ_brauch<typ_signatur>,
domaene : string,
implementierung : typ_signatur
)
: void
{
if (domaene in brauch)
{
let meldung : string = ("Domäne '" + domaene + "' bereits vorhanden");
throw (new Error(meldung));
}
else
{
brauch[domaene] = implementierung;
}
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function anwenden<typ_signatur>
(
brauch : typ_brauch<typ_signatur>,
domaene : string
)
: typ_signatur
{
if (! (domaene in brauch))
{
let meldung : string = ("keine Implementierung für Domäne '" + domaene + "' vorhanden");
throw (new Error(meldung));
}
else
{
return brauch[domaene];
}
}
}

View file

@ -22,7 +22,7 @@ module lib_fehlermonade
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
export type typ_fehlermonade<typ_wert> = typ_komplex<typ_wert>; export type typ_fehlermonade<typ_wert> = lib_aufruf.typ_komplex<typ_wert>;
/** /**

View file

@ -27,7 +27,7 @@ module lib_fehlermonade
*/ */
export function erstellen<typ_wert>() : typ_fehlermonade<typ_wert> export function erstellen<typ_wert>() : typ_fehlermonade<typ_wert>
{ {
return einpacken<any>("nichts", {}); return lib_aufruf.einpacken<any>("nichts", {});
} }

View file

@ -27,7 +27,7 @@ module lib_fehlermonade
*/ */
export function erstellen<typ_wert>(wert : typ_wert) : typ_fehlermonade<typ_wert> export function erstellen<typ_wert>(wert : typ_wert) : typ_fehlermonade<typ_wert>
{ {
return einpacken<any>("schlicht", {"wert": wert}); return lib_aufruf.einpacken<any>("schlicht", {"wert": wert});
} }
@ -40,7 +40,7 @@ module lib_fehlermonade
"schlicht", "schlicht",
{ {
"voll": (fehlermonade) => true, "voll": (fehlermonade) => true,
"lesen": (fehlermonade) => auspacken<any>(fehlermonade).wert, "lesen": (fehlermonade) => lib_aufruf.auspacken<any>(fehlermonade).wert,
} }
) )
; ;

View file

@ -16,13 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
module mod_vtm module lib_hashmap
{
export module mod_helfer
{
export module mod_hashmap
{ {
/** /**
@ -114,6 +108,3 @@ module mod_vtm
} }
}
}

View file

@ -16,13 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
module mod_vtm module lib_mathematik
{
export module mod_helfer
{
export module mod_mathematik
{ {
/** /**
@ -43,6 +37,4 @@ module mod_vtm
} }
} }
}
}

View file

@ -16,13 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
module mod_vtm
{
export module mod_helfer module lib_uebersetzung
{
export module mod_uebersetzung
{ {
/** /**
@ -47,7 +42,7 @@ module mod_vtm
( (
sprache => sprache =>
{ {
let zeichenketten_roh_ : lib_fehlermonade.typ_fehlermonade<any> = mod_vtm_daten.lesen("zeichenketten-" + sprache); let zeichenketten_roh_ : lib_fehlermonade.typ_fehlermonade<any> = mod_vtm.mod_daten.lesen("zeichenketten-" + sprache);
if (lib_fehlermonade.voll(zeichenketten_roh_)) if (lib_fehlermonade.voll(zeichenketten_roh_))
{ {
let zeichenketten_roh : {[schluessel : string] : string} = (<{[schluessel : string] : string}>(lib_fehlermonade.lesen(zeichenketten_roh_))); let zeichenketten_roh : {[schluessel : string] : string} = (<{[schluessel : string] : string}>(lib_fehlermonade.lesen(zeichenketten_roh_)));
@ -176,7 +171,3 @@ module mod_vtm
} }
}
}

View file

@ -16,13 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
module mod_vtm module lib_vektor
{
export module mod_helfer
{
export module mod_vektor
{ {
/** /**
@ -59,7 +53,3 @@ module mod_vtm
} }
}
}

View file

@ -28,7 +28,7 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
export type typ_knoten = typ_komplex<any>; export type typ_knoten = lib_aufruf.typ_komplex<any>;
/** /**

View file

@ -79,7 +79,7 @@ module mod_vtm
) )
: typ_knoten : typ_knoten
{ {
return einpacken("normal", erstellen(name, attribute, kinder)); return lib_aufruf.einpacken("normal", erstellen(name, attribute, kinder));
} }

View file

@ -62,7 +62,7 @@ module mod_vtm
) )
: typ_knoten : typ_knoten
{ {
return einpacken("text", erstellen(inhalt)); return lib_aufruf.einpacken("text", erstellen(inhalt));
} }

View file

@ -25,7 +25,7 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
export type typ_manifestation<typ_aufbau> = typ_komplex<any>; export type typ_manifestation<typ_aufbau> = lib_aufruf.typ_komplex<any>;
/** /**

View file

@ -28,14 +28,14 @@ module mod_vtm
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
export type typ_position = mod_vtm.mod_helfer.mod_vektor.typ_vektor; export type typ_position = lib_vektor.typ_vektor;
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
var basis1 : typ_position = mod_vtm.mod_helfer.mod_vektor.polar((0/6) * (2*Math.PI)); var basis1 : typ_position = lib_vektor.polar((0/6) * (2*Math.PI));
var basis2 : typ_position = mod_vtm.mod_helfer.mod_vektor.polar((2/6) * (2*Math.PI)); var basis2 : typ_position = lib_vektor.polar((2/6) * (2*Math.PI));
/** /**
@ -44,10 +44,10 @@ module mod_vtm
export function von_stelle(stelle : mod_vtm.mod_aufbau.mod_stelle.typ_stelle) : typ_position export function von_stelle(stelle : mod_vtm.mod_aufbau.mod_stelle.typ_stelle) : typ_position
{ {
return ( return (
mod_vtm.mod_helfer.mod_vektor.addieren lib_vektor.addieren
( (
mod_vtm.mod_helfer.mod_vektor.skalieren(basis1, stelle.u), lib_vektor.skalieren(basis1, stelle.u),
mod_vtm.mod_helfer.mod_vektor.skalieren(basis2, stelle.v) lib_vektor.skalieren(basis2, stelle.v)
) )
); );
} }

View file

@ -84,7 +84,7 @@ module mod_vtm
return ( return (
pfad pfad
( (
mod_vtm.mod_helfer.sequenz(6).map(i => mod_vtm.mod_helfer.mod_vektor.polar(((i+0.5)/6) * (2*Math.PI), 0.5)), mod_vtm.mod_helfer.sequenz(6).map(i => lib_vektor.polar(((i+0.5)/6) * (2*Math.PI), 0.5)),
true, true,
{ {
"class": "rahmen" "class": "rahmen"
@ -94,14 +94,14 @@ module mod_vtm
} }
; ;
let kinder_feld : Array<mod_vtm.mod_helfer.mod_xml.typ_knoten> = []; let kinder_feld : Array<mod_vtm.mod_helfer.mod_xml.typ_knoten> = [];
fallunterscheidung<void> lib_aufruf.fallunterscheidung<void>
( (
aktor, aktor,
{ {
"erzeuger": (angaben) => "erzeuger": (angaben) =>
{ {
kinder_feld.push(knoten_rahmen()); kinder_feld.push(knoten_rahmen());
let richtung : mod_vtm.mod_aufbau.mod_richtung.typ_richtung = mod_vtm.mod_aufbau.mod_aktor_erzeuger.richtung_lesen(angaben); let richtung : mod_vtm.mod_aufbau.mod_richtung.typ_richtung = mod_vtm.mod_aufbau.mod_aktor.mod_erzeuger.richtung_lesen(angaben);
let knoten_pfeil : mod_vtm.mod_helfer.mod_xml.typ_knoten = ( let knoten_pfeil : mod_vtm.mod_helfer.mod_xml.typ_knoten = (
mod_vtm.mod_helfer.mod_xml.mod_normal.erstellen_erweitert mod_vtm.mod_helfer.mod_xml.mod_normal.erstellen_erweitert
( (
@ -130,7 +130,7 @@ module mod_vtm
"befoerderer": (angaben) => "befoerderer": (angaben) =>
{ {
kinder_feld.push(knoten_rahmen()); kinder_feld.push(knoten_rahmen());
let richtung : mod_vtm.mod_aufbau.mod_richtung.typ_richtung = mod_vtm.mod_aufbau.mod_aktor_befoerderer.richtung_lesen(angaben); let richtung : mod_vtm.mod_aufbau.mod_richtung.typ_richtung = mod_vtm.mod_aufbau.mod_aktor.mod_befoerderer.richtung_lesen(angaben);
let knoten_pfeil : mod_vtm.mod_helfer.mod_xml.typ_knoten = ( let knoten_pfeil : mod_vtm.mod_helfer.mod_xml.typ_knoten = (
mod_vtm.mod_helfer.mod_xml.mod_normal.erstellen_erweitert mod_vtm.mod_helfer.mod_xml.mod_normal.erstellen_erweitert
( (
@ -159,8 +159,8 @@ module mod_vtm
"schreiber": (angaben) => "schreiber": (angaben) =>
{ {
kinder_feld.push(knoten_rahmen()); kinder_feld.push(knoten_rahmen());
let richtung : mod_vtm.mod_aufbau.mod_richtung.typ_richtung = mod_vtm.mod_aufbau.mod_aktor_schreiber.richtung_lesen(angaben); let richtung : mod_vtm.mod_aufbau.mod_richtung.typ_richtung = mod_vtm.mod_aufbau.mod_aktor.mod_schreiber.richtung_lesen(angaben);
let symbol : mod_vtm.mod_aufbau.mod_symbol.typ_symbol = mod_vtm.mod_aufbau.mod_aktor_schreiber.symbol_lesen(angaben); let symbol : mod_vtm.mod_aufbau.mod_symbol.typ_symbol = mod_vtm.mod_aufbau.mod_aktor.mod_schreiber.symbol_lesen(angaben);
let knoten_pfeil : mod_vtm.mod_helfer.mod_xml.typ_knoten = ( let knoten_pfeil : mod_vtm.mod_helfer.mod_xml.typ_knoten = (
mod_vtm.mod_helfer.mod_xml.mod_normal.erstellen_erweitert mod_vtm.mod_helfer.mod_xml.mod_normal.erstellen_erweitert
( (
@ -189,9 +189,9 @@ module mod_vtm
"leser": (angaben) => "leser": (angaben) =>
{ {
kinder_feld.push(knoten_rahmen()); kinder_feld.push(knoten_rahmen());
let richtung : mod_vtm.mod_aufbau.mod_richtung.typ_richtung = mod_vtm.mod_aufbau.mod_aktor_leser.richtung_lesen(angaben); let richtung : mod_vtm.mod_aufbau.mod_richtung.typ_richtung = mod_vtm.mod_aufbau.mod_aktor.mod_leser.richtung_lesen(angaben);
let symbol_links : mod_vtm.mod_aufbau.mod_symbol.typ_symbol = mod_vtm.mod_aufbau.mod_aktor_leser.symbol_links_lesen(angaben); let symbol_links : mod_vtm.mod_aufbau.mod_symbol.typ_symbol = mod_vtm.mod_aufbau.mod_aktor.mod_leser.symbol_links_lesen(angaben);
let symbol_rechts : mod_vtm.mod_aufbau.mod_symbol.typ_symbol = mod_vtm.mod_aufbau.mod_aktor_leser.symbol_rechts_lesen(angaben); let symbol_rechts : mod_vtm.mod_aufbau.mod_symbol.typ_symbol = mod_vtm.mod_aufbau.mod_aktor.mod_leser.symbol_rechts_lesen(angaben);
let ausgaenge : Array<{summand : mod_vtm.mod_aufbau.mod_richtung.typ_richtung, symbol : lib_fehlermonade.typ_fehlermonade<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>;}> = let ausgaenge : Array<{summand : mod_vtm.mod_aufbau.mod_richtung.typ_richtung, symbol : lib_fehlermonade.typ_fehlermonade<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>;}> =
[ [
{ {

View file

@ -42,7 +42,7 @@ module mod_vtm
*/ */
export function pfad export function pfad
( (
vertices : Array<mod_vtm.mod_helfer.mod_vektor.typ_vektor>, vertices : Array<lib_vektor.typ_vektor>,
schliessen : boolean = true, schliessen : boolean = true,
attribute : {[schlussel : string] : string} = {}, attribute : {[schlussel : string] : string} = {},
) )

View file

@ -1,5 +1,7 @@
s:mod_vtm_helfer.typ_xmlknoten:mod_vtm.mod_helfer.mod_xml.typ_knoten:g s:mod_aktor_annehmer:mod_aktor.mod_annehmer:g
s:mod_vtm_helfer.xmlknoten_normal_erstellen_erweitert:mod_vtm.mod_helfer.mod_xml.mod_normal.erstellen_erweitert:g s:mod_aktor_verwerfer:mod_aktor.mod_verwerfer:g
s:mod_vtm_helfer.xmlknoten_text_erstellen_erweitert:mod_vtm.mod_helfer.mod_xml.mod_text.erstellen_erweitert:g s:mod_aktor_erzeuger:mod_aktor.mod_erzeuger:g
s:mod_vtm_helfer.xmlknoten_darstellen:mod_vtm.mod_helfer.mod_xml.darstellen:g s:mod_aktor_schreiber:mod_aktor.mod_schreiber:g
s:mod_aktor_leser:mod_aktor.mod_leser:g
s:mod_aktor_befoerderer:mod_aktor.mod_befoerderer:g