summaryrefslogtreecommitdiff
path: root/app/baisy/2.2.1-schulis/src/sybifunktionen
diff options
context:
space:
mode:
Diffstat (limited to 'app/baisy/2.2.1-schulis/src/sybifunktionen')
-rw-r--r--app/baisy/2.2.1-schulis/src/sybifunktionen71
1 files changed, 71 insertions, 0 deletions
diff --git a/app/baisy/2.2.1-schulis/src/sybifunktionen b/app/baisy/2.2.1-schulis/src/sybifunktionen
new file mode 100644
index 0000000..ebe62ea
--- /dev/null
+++ b/app/baisy/2.2.1-schulis/src/sybifunktionen
@@ -0,0 +1,71 @@
+PACKET sybifunktionenDEFINES initsybifunktionen,setzebenutzerberechtigung,
+holeberechtigungswert,setzeprogrammende,programmende,
+setzeeditorschalterzurueck,gesetztdurcheditor,setzeschalterfuermenueausgabe,
+loeschetastendruck,tastendruck,setzetastendruck,bittedasmenuezeigen,
+menuedraussen,seteingabe,vpwunsch,npwunsch,vpgewaehlt,npgewaehlt,enter,return
+,reenter,leave,setzevergleichsknoten,vergleichsknoten,knotenaufstackablegen,
+legehistorieknotenab,holehistorietext,stopbaisy,setzeverteilteanwendung,
+beendendessystembauminterpreters:TEXT VAR gedruecktetaste;BOOL VAR
+programmendeschalter:=FALSE ,editorschalter:=FALSE ,schalterfuermenueausgabe
+:=FALSE ,vornachschalter,verteilteanwendung:=FALSE ;KNOTEN VAR k;STACK VAR s;
+INT VAR zurueckknotenanz;LET schaltervorprozedur=TRUE ,schalternachprozedur=
+FALSE ;TEXT VAR benutzerberechtigung:="";LET maxmenueebenen=4;LET
+HISTORIEKNOTEN =STRUCT (TEXT knotentext,INT anwahlpos);ROW maxmenueebenen
+HISTORIEKNOTEN VAR hk;INT VAR aktebene;PROC setzeverteilteanwendung:
+verteilteanwendung:=TRUE END PROC setzeverteilteanwendung;PROC seteingabe(
+TEXT CONST t):gedruecktetaste:=t;editorschalter:=TRUE END PROC seteingabe;
+PROC setzeeditorschalterzurueck:editorschalter:=FALSE END PROC
+setzeeditorschalterzurueck;BOOL PROC gesetztdurcheditor:editorschalterEND
+PROC gesetztdurcheditor;PROC setzebenutzerberechtigung(TEXT CONST t):
+benutzerberechtigung:=tEND PROC setzebenutzerberechtigung;PROC
+holeberechtigungswert(TEXT VAR t):t:=benutzerberechtigungEND PROC
+holeberechtigungswert;PROC setzeprogrammende(BOOL CONST wahrwert):
+programmendeschalter:=wahrwertEND PROC setzeprogrammende;BOOL PROC
+programmende:programmendeschalterEND PROC programmende;PROC
+setzeschalterfuermenueausgabe(BOOL CONST sfma):schalterfuermenueausgabe:=sfma
+END PROC setzeschalterfuermenueausgabe;BOOL PROC menuedraussen:
+schalterfuermenueausgabeEND PROC menuedraussen;BOOL PROC bittedasmenuezeigen:
+schalterfuermenueausgabeEND PROC bittedasmenuezeigen;PROC loeschetastendruck:
+gedruecktetaste:=""END PROC loeschetastendruck;TEXT PROC tastendruck:
+gedruecktetasteEND PROC tastendruck;PROC setzetastendruck(TEXT CONST taste):
+gedruecktetaste:=tasteEND PROC setzetastendruck;PROC vpwunsch:vornachschalter
+:=schaltervorprozedurEND PROC vpwunsch;PROC npwunsch:vornachschalter:=
+schalternachprozedurEND PROC npwunsch;BOOL PROC vpgewaehlt:vornachschalter
+END PROC vpgewaehlt;BOOL PROC npgewaehlt:NOT vornachschalterEND PROC
+npgewaehlt;PROC return(INT CONST zurueckknotenanzahl):zurueckknotenanz:=
+zurueckknotenanzahl;INT VAR knotenstackhoehe;knotenstackhoehe:=hoehe(s);
+npwunsch;IF knotenstackhoehe<zurueckknotenanzahlTHEN holeerstenstackknoten
+ELSE holenaechstenstackknotenFI END PROC return;PROC enter(INT CONST
+zurueckknotenanzahl):zurueckknotenanz:=zurueckknotenanzahl;INT VAR
+knotenstackhoehe;knotenstackhoehe:=hoehe(s);vpwunsch;IF knotenstackhoehe<
+zurueckknotenanzahlTHEN holeerstenstackknotenELSE holenaechstenstackknotenFI
+END PROC enter;PROC reenter(INT CONST zurueckknotenanzahl):enter(
+zurueckknotenanzahl)END PROC reenter;PROC leave(INT CONST zurueckknotenanzahl
+):return(zurueckknotenanzahl)END PROC leave;PROC holeerstenstackknoten:IF
+verteilteanwendungTHEN zurueckverzweigenvorbereitenELSE
+lokalerstenstackknotenholenFI .zurueckverzweigenvorbereiten:
+programmendeschalter:=TRUE .lokalerstenstackknotenholen:REP pop(s,k)UNTIL
+leer(s)PER ;aktebene:=0.END PROC holeerstenstackknoten;PROC
+holenaechstenstackknoten:INT VAR zurueckknotenzaehler:=0;WHILE (
+zurueckknotenzaehler<zurueckknotenanz)REP pop(s,k);IF aktebene>0THEN IF text(
+k)=hk(aktebene).knotentextTHEN aktebeneDECR 1FI ;FI ;zurueckknotenzaehler
+INCR 1PER ;END PROC holenaechstenstackknoten;PROC knotenaufstackablegen(
+KNOTEN VAR stackknoten):push(s,k)END PROC knotenaufstackablegen;PROC
+setzevergleichsknoten(KNOTEN CONST vglknoten):k:=vglknotenEND PROC
+setzevergleichsknoten;KNOTEN PROC vergleichsknoten:kEND PROC vergleichsknoten
+;PROC beendendessystembauminterpreters:setzeprogrammende(TRUE );return(1)END
+PROC beendendessystembauminterpreters;PROC initsybifunktionen:
+programmendeschalter:=FALSE ;verteilteanwendung:=FALSE ;s:=leererstack;
+aktebene:=0;store(TRUE );INT VAR ind;FOR indFROM 1UPTO maxmenueebenenREP hk(
+ind).knotentext:="";hk(ind).anwahlpos:=0;PER END PROC initsybifunktionen;
+PROC legehistorieknotenab(TEXT CONST ktext,INT CONST mpkt):IF aktebene<
+maxmenueebenenTHEN aktebeneINCR 1;hk(aktebene).knotentext:=ktext;hk(aktebene)
+.anwahlpos:=mpktFI END PROC legehistorieknotenab;PROC holehistorietext(TEXT
+VAR ktext,INT VAR kpos,INT CONST nletzter):INT VAR hkzeiger;hkzeiger:=
+aktebene-nletzter+1;IF hkzeiger<1THEN ktext:=""ELSE ktext:=hk(hkzeiger).
+knotentext;kpos:=hk(hkzeiger).anwahlposFI END PROC holehistorietext;PROC
+stopbaisy:logbucheintragabmeldung;benutzerberechtigung:="";enter(1);breakEND
+PROC stopbaisy;PROC logbucheintragabmeldung:TEXT VAR eintrag:="Abmeldung """;
+eintragCAT name(myself);eintragCAT """";logeintrag(eintrag)END PROC
+logbucheintragabmeldung;END PACKET sybifunktionen
+