Allgemeine Sprachelemente: Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
 
(16 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Kommentare==
 
==Kommentare==
Hinweise für Templateentwickler
 
  
===Beschreibung===
+
Kommentare innerhalb von Templates werden mit <%-- eingeleitet und mit --%> beendet. Eine Verschachtelung von Kommentaren ist nicht möglich.
Kommentare innerhalb des Templates werden mit <%-- eingeleitet und mit --%> beendet. Die Verschachtelung von Kommentaren ist nicht möglich.
 
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 9: Zeile 7:
 
</source>
 
</source>
  
Kommentare werden vom Parser nicht interpretiert. Falls Sie den generierten Quellcode kommentieren möchten, um ihn beispielsweise zu strukturieren, nutzen sie bitte HTML-Kommentare .
+
Kommentare werden vom [[IES]]-Parser nicht interpretiert und erscheinen auch nicht im vom System generierten Code. Sollen Kommentare im vom System generierten Code ausgegeben werden, nutzen Sie einfach die passenden Kommentarbefehle der jeweils generierten Sprache, z.B. HTML-Kommentare für HTML-Seiten.
  
 
Kommentare am Anfang eines Quelltextes dienen häufig zur Angabe des Autors, des Versionsstands, bzw. des Erstellungsdatums, Spezialanpassungen, oder Hinweisen zur Nutzung.
 
Kommentare am Anfang eines Quelltextes dienen häufig zur Angabe des Autors, des Versionsstands, bzw. des Erstellungsdatums, Spezialanpassungen, oder Hinweisen zur Nutzung.
  
Soll ein bestimmter Teil des Codes nicht ausgeführt werden, so läßt er sich leicht auskommentieren. Auf der Suche nach Fehlern, ist dies ein probates Mittel die fehlerhafte Region einzugrenzen.  
+
Soll ein bestimmter Teil des Codes nicht ausgeführt werden, so läßt er sich leicht auskommentieren. Auf der Suche nach Fehlern, ist dies ein probates Mittel die fehlerhafte Region einzugrenzen.
  
 
==Literale==
 
==Literale==
konstante Werte (literal = engl. wörtlich)
 
  
===Beschreibung===
+
Mit Literalen formuliert man konstante Werte (literal = engl. wörtlich) eines bestimmten Typs.
Mit Literalen formuliert man konstante Werte eines bestimmten Typs.
 
 
Der [[IES]] kennt folgende Typen:
 
Der [[IES]] kennt folgende Typen:
*Ganze Zahlen: 0;  123;  0xDadaCafe
+
*Ganze Zahlen: <code>0</code><code>123</code>
*Float-Zahlen: 3.2f;  -3e-22f
+
*Dezimal-Zahlen: <code>3.2</code><code>-3e-22</code>
*Double-Zahlen: 3.2;  -3e-22
+
*Logische Literale: <code>true</code><code>false</code>
*Logische Literale: true;  false
+
*Character-Literale: <code>'A'</code>
*Referenz-Literale: null;  this;  super
+
*Zeichenketten-Literale: <code>""</code>;    <code>"\""</code><code>"Hello World"</code>
*Character-Literale: 'A'
 
*Zeichenketten-Literale: "";    "\"";  "Hello World"
 
  
 +
Zeichenketten-Literale können sich nicht über mehrere Quelltextzeilen erstrecken, sie müssen stets vor Zeilenenden enden.
 
Character- und Zeichenketten-Literale werden intern in Unicode kodiert. Um Zeichen darstellen zu können, deren Eingabe mit einfachen Editoren nicht möglich ist, oder die sonst syntaktisch nicht möglich wären, verwendet man sogenannte Escape-Sequenzen:
 
Character- und Zeichenketten-Literale werden intern in Unicode kodiert. Um Zeichen darstellen zu können, deren Eingabe mit einfachen Editoren nicht möglich ist, oder die sonst syntaktisch nicht möglich wären, verwendet man sogenannte Escape-Sequenzen:
  
Zeile 63: Zeile 58:
 
|}
 
|}
  
Zeichenketten-Literale können sich nicht über mehrere Quelltextzeilen erstrecken, sie müssen stets vor Zeilenenden enden. Benötigt man längere Zeichenketten-Literale, so müssen Teile mit + verkettet werden.
+
==NULL-Werte==
 +
 
 +
Der spezielle Wert NULL repräsentiert eine Variable ohne Wert. Da aber in HTML die Unterscheidung von ''leeren Inhalten'' und ''NULL'' nicht eindeutig möglich ist, wendet der IES bestimmte Regeln zur Verarbeitung an. Durch diese Regeln wird die logische Auswertung von Variablen in SPML vereinfacht. Eine leere Zeichenkette "" ist daher identisch mit einer nicht existenten Variable. Über die Zuweisung einer leeren Zeichenkette kann eine Variable zurückgesetzt werden.
 +
Weiterhin werden im IES bei logischen Operationen, bei denen unterschiedliche Daten-Typen (Zahlen, Texte, o.ä.) verwendet werden, diese soweit möglich automatisch umgewandelt. Eine Folge daraus ist, dass auch der Zahlenwert 0 als ''NULL'' interpretiert wird.
 +
 
 +
Daraus ergeben sich folgende Beziehungen:
 +
 
 +
{| class="prettytable"
 +
|- class="hintergrundfarbe1"
 +
! Wert || isNull(Wert) || Wert == null || Wert == "" || Wert == 0 || Wert != 0
 +
|-
 +
| ""
 +
| <code>true</code>
 +
| <code>true</code>
 +
| <code>?</code>
 +
| <code>true</code>
 +
| <code>false</code>
 +
|-
 +
| "0"
 +
| <code>false</code>
 +
| <code>true</code>
 +
| <code>?</code>
 +
| <code>true</code>
 +
| <code>false</code>
 +
|-
 +
| 0
 +
| <code>false</code>
 +
| <code>true</code>
 +
| <code>?</code>
 +
| <code>true</code>
 +
| <code>false</code>
 +
|-
 +
| "null"
 +
| <code>false</code>
 +
| <code>false</code>
 +
| <code>?</code>
 +
| <code>false</code>
 +
| <code>true</code>
 +
|-
 +
| kein Objekt
 +
| <code>true</code>
 +
| <code>true</code>
 +
| <code>?</code>
 +
| <code>true</code>
 +
| <code>false</code>
 +
|}
  
 
<noinclude>
 
<noinclude>
 
[[Category:SPML]]
 
[[Category:SPML]]
[[Category:Qualität_des_Inhalts_prüfen]]
 
[[Category:Qualität_der_Sprache_prüfen]]
 
[[Category:Qualität_des_Codes_prüfen]]
 
 
</noinclude>
 
</noinclude>

Aktuelle Version vom 11. November 2019, 10:41 Uhr

Kommentare

Kommentare innerhalb von Templates werden mit <%-- eingeleitet und mit --%> beendet. Eine Verschachtelung von Kommentaren ist nicht möglich.

<%-- Ein Kommentar ... --%>

Kommentare werden vom IES-Parser nicht interpretiert und erscheinen auch nicht im vom System generierten Code. Sollen Kommentare im vom System generierten Code ausgegeben werden, nutzen Sie einfach die passenden Kommentarbefehle der jeweils generierten Sprache, z.B. HTML-Kommentare für HTML-Seiten.

Kommentare am Anfang eines Quelltextes dienen häufig zur Angabe des Autors, des Versionsstands, bzw. des Erstellungsdatums, Spezialanpassungen, oder Hinweisen zur Nutzung.

Soll ein bestimmter Teil des Codes nicht ausgeführt werden, so läßt er sich leicht auskommentieren. Auf der Suche nach Fehlern, ist dies ein probates Mittel die fehlerhafte Region einzugrenzen.

Literale

Mit Literalen formuliert man konstante Werte (literal = engl. wörtlich) eines bestimmten Typs. Der IES kennt folgende Typen:

  • Ganze Zahlen: 0; 123
  • Dezimal-Zahlen: 3.2; -3e-22
  • Logische Literale: true; false
  • Character-Literale: 'A'
  • Zeichenketten-Literale: ""; "\""; "Hello World"

Zeichenketten-Literale können sich nicht über mehrere Quelltextzeilen erstrecken, sie müssen stets vor Zeilenenden enden. Character- und Zeichenketten-Literale werden intern in Unicode kodiert. Um Zeichen darstellen zu können, deren Eingabe mit einfachen Editoren nicht möglich ist, oder die sonst syntaktisch nicht möglich wären, verwendet man sogenannte Escape-Sequenzen:

Sequenz Beschreibung
\b backspace
\t tab
\n linefeed
\f formfeed
\r cr
\" Anführungszeichen
\' Apostroph
\\ Backslash
\uabcd hexadezimaler Unicode abcd

NULL-Werte

Der spezielle Wert NULL repräsentiert eine Variable ohne Wert. Da aber in HTML die Unterscheidung von leeren Inhalten und NULL nicht eindeutig möglich ist, wendet der IES bestimmte Regeln zur Verarbeitung an. Durch diese Regeln wird die logische Auswertung von Variablen in SPML vereinfacht. Eine leere Zeichenkette "" ist daher identisch mit einer nicht existenten Variable. Über die Zuweisung einer leeren Zeichenkette kann eine Variable zurückgesetzt werden. Weiterhin werden im IES bei logischen Operationen, bei denen unterschiedliche Daten-Typen (Zahlen, Texte, o.ä.) verwendet werden, diese soweit möglich automatisch umgewandelt. Eine Folge daraus ist, dass auch der Zahlenwert 0 als NULL interpretiert wird.

Daraus ergeben sich folgende Beziehungen:

Wert isNull(Wert) Wert == null Wert == "" Wert == 0 Wert != 0
"" true true ? true false
"0" false true ? true false
0 false true ? true false
"null" false false ? false true
kein Objekt true true ? true false