Zinc – Mappedia

Zinc

Aus Mappedia
Wechseln zu: Navigation, Suche

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

Weblinks

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Warcraft-Mapping
Werkzeuge