Zinc
Zinc ist eine Erweiterung der Skriptsprachen Jass und vJass. Ein Precompiler wie der JassHelper kann sie in vJass und schließlich in Jass umwandeln, so dass sie von Warcraft 3 interpretiert werden kann. Zinc erschien nach vJass und lässt den Programmierer eine grundlegend andere Syntax als die von Jass oder vJass verwenden. Die wesentlichen Sprachelemente sind jedoch mit wenigen Ausnahmen die selben wie in vJass. Es ist auch möglich beide Sprachen parallel zu verwenden, eine Interaktion zwischen den beiden Sprachen ist wegen der gemeinsamen Sprachelemente problemlos möglich.
Inhaltsverzeichnis |
Syntax
Operatoren
- Mathematische Operatoren
- + Addition
- - Subtraktion
- * Multiplikation
- / Division
- Vergleichs-Operatoren
- == Gleichheit
- < Kleiner
- <= Kleiner oder Gleich
- > Größer
- >= Größer oder Gleich
- Logische Operatoren
- ! Nicht
- && Und
- || Oder
Zuweisungen
Allgemeine Form:
Variablenname = Ausdruck;
Beispiel:
//normale Variable: i = 4 + 5*a; //Feld-Variable: ar[15] = i / 2;
Für Zuweisungen, bei denen eine Variable mit einer einfachen Rechenoperation verändert werden soll gibt es die Kurz-Schreibweisen mit +=, *=, -= und /=.
Beispiel:
i += 1; //ausführliche Schreibweise: i = i + 1;
Funktionsaufrufe
allgemeine Form:
Funktionsname( Parameterliste );
Beispiel:
BJDebugMsg("Test");
Bedingungen
allgemeine Form:
if ( Wahrheits-Ausdruck ) Then-Block else Else-Block
Beispiel:
if ((a > 5) && (a <= 15)) b += 5; else c += 5;
Bei mehreren Anweisungen innerhalb eines Blocks, muss der Block durch geschweifte Klammern umfasst werden.
if ((a > 5) && (a <= 15)) { b += 5; BJDebugMsg("Beispiel"); } else { c += 5; }
Schleifen
break
In allen Schleifen-Arten kann man mithilfe eines break die Schleife sofort verlassen.
break;
while
Allgemeine Form:
while ( Wahrheits-Ausdruck ) {
Anweisungen
}
Hinweis zur Semantik: Die Schleife wird solange ausgeführt, wie der Wahrheits-Ausdruck wahr ergibt.
Beispiel:
//Ausgabe: 1,2,3 i = 1 while (i < 4) { BJDebugMsg(I2S(i)); i += 1; }
for (Variation 1)
Allgemeine Form:
for ( Integer-Ausruck Vergleichs-Operator Variablenname Vergleichs-Operator Integer-Ausdruck ) {
Anweisungen
}
Beispiele:
// Ausgabe: 1,2,3 for (0 < i < 4) { BJDebugMsg(I2S(i)); } // Ausgabe: 0,1,2 for (0 <= i < 3) { BJDebugMsg(I2S(i)); } // Ausgabe: 5,4,3 for (5 >= i >= 3) { BJDebugMsg(I2S(i)); }
for (Variation 2)
allgemeine Form:
for ( Zuweisung; Wahrheits-Ausdruck; Zuweisung ) {
Anweisungen
}
Beispiel:
//Ausgabe: 1,2,3 for (i=1; i<4; i+=1) { JDebugMsg(I2S(i)); }
Funktionen
Bibliotheken
Structs
Attribute
Methoden
Präprozessoranweisungen
zinc
Werden keine externen Dateien bzw. die "import"-Anweisung verwendet, so muss Zinc-Code explizit als solcher deklariert werden. Aus diesem Grund gibt es die Präprozessoranweisungen "zinc" und "endzinc", zwischen welchen sich der explizit deklarierte Zinc-Code befinden muss.
Beispiel:
//! zinc // ab hier beginnt der Zinc-Code function Max(integer a, integer b) -> integer { if (b > a) return b; return a; } //! endzinc // ab hier endet der Zinc-Code
import
Mittels der Präprozessoranweisung "import" können externe Code-Dateien importiert werden. Dabei kann die in der importierten Code-Datei verwendete Sprache angegeben werden. Mögliche Sprachangaben sind "zinc" oder "vjass". Wird die Sprachangabe weggelassen, geht der Precompiler von der in der Datei, in welcher sich die "import"-Anweisung befindet, verwendeten Sprache aus.
Beispiel:
//! import zinc "Peter.zn" // importiert eine Zinc-Datei //! import vjass "Peter.j" // importiert eine vJass-Datei //! import "Peter.xy" // importiert eine Datei, welche Code der selben Sprache wie die aktuelle enthält
