Seite 1 von 2

Syntax

Verfasst: Donnerstag 1. Juni 2006, 13:08
von Andi
Ich möchte einmal einen Vorschlag zum Syntax in Bahn allgemein machen:

In Anlehnung an php habe ich mir Folgendes ausgedacht:

Bedingungen werden in "()" geschrieben, die ausgeführten Ereignisse in "{}". Mehrere Anweisungen werden weiterhin mit "," getrennt. Dieses Prinzip sollte auf alle Aktionssymbole anwendbar sein. "()" und "{}" erzwingt eine Zuweisung der Daten, also L= etc.

Beispiel für einen Datenwechselpunkt:
(L=12,Z=8:00-9:00){L=12E,N=MAX}

Auffallend ist hier die zweifache Benutzung von L=, außerdem ist die Zeitangabe in die Bedinghung gewandert. Zuvor gab es N= und n= in der selben Klammer, dies kann jetzt umgangen werden.

Über eine Umsetzung bei Signalanlagen und Taktpunkten muss ich mir noch gedanken machen.

Re: Syntax

Verfasst: Donnerstag 1. Juni 2006, 17:58
von Ronny Kraus
Und wo genau ist da nun der Vorteil, der eine Änderung rechtfertigen würde?

Re: Syntax

Verfasst: Donnerstag 1. Juni 2006, 20:35
von Andi
Welcher Vorteil?
Größere Flexibilität und in meinen Augen Übersichtlichkeit.

Vorher ist Folgendes nicht möglich gewesen:

(L=1,T=E){L=12}

Dies ist jetzt leider ein seltenerer Anwendungsfall gewesen, bisher war das aber nur durch eine zugtypabhängige Weiche mit nachfolgendem Datenwechselpunkt möglich.

Bei Signalanlagen wäre z.B. folgendes vorstellbar:
(L=1,T=E){S1+,S2}

Zu den Signalanlagen ist mir sogar noch etwas eingefallen:
(L=1,!S1&S3){S2+}

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 10:54
von GKords
<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">Welcher Vorteil?
Größere Flexibilität und in meinen Augen Übersichtlichkeit.</tr></td></table>
Ich bin mir nicht sicher, ob das die Übersichtlichkeit erhöht. In jedem Fall produziert es mehr Aufwand. Sicher, das was du beschreibst, war so nicht möglich. Aber es erhöht die Komplexität so immens - ich weiß nicht. Vielleicht sollte man für den Fall "L=x mit T=y" schon vorweg eine neue Linie schaffen.
Wenn man die Flexibilität erhöhen will, würde ich für eine radikalere Erneuerung plädieren: Ein System, wo man ziemlich frei WENN-DANN-Ketten aufbauen kann. Wobei dir, Andi, natürlich letztendlich sowas vorschwebt, wenn ich dicht richtig verstehe.
Ich bin mir nicht sicher, ob ein modulareres System den erheblichen Mehraufwand rechtfertigt, den es macht.
Gruß
GKords

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 11:11
von Dierk Nüchtern
Also übersichtlicher ist das ganze auf keinen Fall!! Eher das Gegenteil!! Und gerade wenn man neue User hat, bringt es nichts, sie noch mehr zu verwirren!

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 11:56
von Jan Bochmann
Guten Tag,

<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">Ich möchte einmal einen Vorschlag zum Syntax in Bahn allgemein machen:

In Anlehnung an php habe ich mir Folgendes ausgedacht:

Bedingungen werden in "()" geschrieben, die ausgeführten Ereignisse in "{}". Mehrere Anweisungen werden weiterhin mit "," getrennt. Dieses Prinzip sollte auf alle Aktionssymbole anwendbar sein. "()" und "{}" erzwingt eine Zuweisung der Daten, also L= etc.

Beispiel für einen Datenwechselpunkt:
(L=12,Z=8:00-9:00){L=12E,N=MAX}</tr></td></table>

Das ist nicht nur in php so, sondern z.B. auch in C. Die geschweiften Klammern wurden auch in früheren BAHN-Versionen verwendet. Das stieß aber allgemein auf Ablehnung, weil sie auf verschiedenen Tastaturlayouts nur schwer oder gar nicht zu finden sind. Sie wurden deshalb in BAHN abgeschafft.

<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">
Auffallend ist hier die zweifache Benutzung von L=, außerdem ist die Zeitangabe in die Bedingung gewandert. </tr></td></table>

Bzw. die Linie ist dahinein gewandert, das ist Ansichtssache. Tatsächlich könnte man die verschiedenen Bedingungen sytaktisch gleichstellen. Früher gab es dafür aber nur die Linie, deshalb hat sie hier immer noch eine Sonderstellung.

<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">Zuvor gab es N= und n= in der selben Klammer, dies kann jetzt umgangen werden. </tr></td></table>

Wofür stand "n=" ? 2 gleiche Zuweisungen in derselben Klammer sind eigentlich nicht möglich.

Gruß
Jan B.

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 13:15
von Andi
Oh, da habe ich mich geirrt, ich dachte die Einschränkkungen der betreffenden Zugnummern seien mit n= festgelegt, dass ist aber ein u=.

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 16:51
von Jan Eisold
Hallo,

ich bin ehrlich gesagt nicht überzeugt, dass diese neue Syntax wirklich etwas bringt. Wenn, dann sollte man zusätzliche Bedingungen (Zeit, Zugnummer, Zugtyp etc.) wie bisher in eine Klammer schreiben. Hier hätte man allerdings das Problem, bei den Operatoren zwischen Bedingung und Wirkung zu unterscheiden. Man könnte ggf. erst mit Komma getrennt die Bedingungen, dann ein Semikolon und danach mit Komma getrennt die Wirkungen auflisten. Kein Semikolon bedeutet, keine Bedingung (der Fall "keine Wirkung" macht ja keinen Sinn). Die betroffene Linie stünde, wie bisher auch, vor der Klammer. Ob man sowas allerdings wirklich braucht, ist eine andere Frage...

MfG Jan

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 17:13
von Jan Bochmann
Guten Tag,

<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">Hallo,

ich bin ehrlich gesagt nicht überzeugt, dass diese neue Syntax wirklich etwas bringt.</tr></td></table>

Ich auch nicht.

<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">Wenn, dann sollte man zusätzliche Bedingungen (Zeit, Zugnummer, Zugtyp etc.) wie bisher in eine Klammer schreiben.</tr></td></table>

Es würde ggf. auf eine Gleichstellung aller möglichen Bedingungen hinauslaufen, d.h. es gibt keine "zusätzlichen" mehr. Heute muß man ja immer eine Linie angeben, und wenn diese Bedingung nicht relevant ist, dann eben als "*".

<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">...Kein Semikolon bedeutet, keine Bedingung (der Fall "keine Wirkung" macht ja keinen Sinn)...</tr></td></table>

Der Fall ist sehr häufig, z.B. an Weichen und Taktpunkten (gültig für Linie[n]...).

MfG
Jan B.

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 17:16
von Andi
Dann wird's aber mit der Korrektur komplizierter, wer hält schon gerne "," und ";" auseinander. Vor allem bei weißer Schrift auf grauem Hintergrund, also für mich persönlich ist das bei diesen Zeichen zu kontrastlos. (An sich finde ich die Farben natürlich in Ordnung)

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 17:23
von Jan Eisold
<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">Dann wird's aber mit der Korrektur komplizierter, wer hält schon gerne "," und ";" auseinander. Vor allem bei weißer Schrift auf grauem Hintergrund, also für mich persönlich ist das bei diesen Zeichen zu kontrastlos. (An sich finde ich die Farben natürlich in Ordnung)</tr></td></table>
Des Semikolon war ja nur ein Beispiel. Man könnte auch gerne andere Zeichen dafür nehmen, z.B. / oder : , die sich besser vom Komma unterscheiden lassen.

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 17:43
von Jan Bochmann
Guten Tag,

<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">Des Semikolon war ja nur ein Beispiel. Man könnte auch gerne andere Zeichen dafür nehmen, z.B. / oder : , die sich besser vom Komma unterscheiden lassen</tr></td></table>

Das "/" ist gültiges Zeichen für Linien, man kann es also nicht als Trennzeichen verwenden. Der ":" wird bereits an etlichen Stellen als Trennzeichen verwendet, vor allem bei Zeitangaben. Allzuviele geeignete Zeichen gibt es nicht.

<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">
(An sich finde ich die Farben natürlich in Ordnung)
</tr></td></table>

Und wenn nicht, kannst Du sie doch ändern. Genau das selbe gilt auch für die verwendeten Fonts.

<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">
Sowas lässt sich wohl leicht machen oder?
</tr></td></table>

Nein. Es läßt sich leicht kaputt machen. Aber so ändern, daß es weiterhin kompatibel funktioniert, ist nicht einfach.

MfG
Jan B.

<span style="color:red"> Edit Heiko: </span> Grußformel von Michael auf Jan B. geändert.

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 18:28
von Rolf R
Ich bin mit der aktuell verwendeten Syntax und den Befehlen zufrieden und sehe hier eigentlich keine Veranlassung etwas zu ändern.

Andernfalls finde es aber gut, dass man sich hier -wie in diesem Falle Andi- Gedanken macht, wie man mein Lieblingsprogamm verfeinern oder verbessern kann.

Grüße

Rolf

Re: Syntax

Verfasst: Freitag 2. Juni 2006, 21:44
von Ronny Kraus
<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"><tr> <td><span class="genmed">Zitat:</span></td></tr><tr><td class="quote">
Andernfalls finde es aber gut, dass man sich hier -wie in diesem Falle Andi- Gedanken macht, wie man mein Lieblingsprogamm verfeinern oder verbessern kann.
</tr></td></table>

Was in dieser Kategorie ja schon rund 170 mal versucht wurde... [img]icon_wink.gif[/img]