Allgemeine Regeln

PureBasic hat ein paar Syntax-Regeln eingeführt, welche sich niemals ändern werden. Dies sind:

Kommentare

Kommentare werden gekennzeichnet mittels ;. Alle nach dem ; eingegebenen Texte werden vom Compiler ignoriert.

Beispiel

  If a = 10 ; Dies ist ein Kommentar zur näheren Erläuterung.

Schlüsselwörter

Alle Schlüsselwörter (englisch: "Keywords") werden für grundlegende Dinge innerhalb von PureBasic verwendet, wie das Erstellen von Arrays (Dim) oder Listen (NewList), oder die Kontrolle des Programmablaufs (If : Else : EndIf). Sie werden nicht von Klammern '()' gefolgt, welche typisch für PureBasic Funktionen sind.

Beispiel

    If a = 1      ; If, Else und EndIf sind Schlüsselwörter; während 'a = 1' eine
      ...         ; Variable ist, die innerhalb eines Ausdrucks verwendet wird.
    Else
      ...
    EndIf
Schlüsselwörter werden regelmäßig in den Kapiteln auf der linken Seite der Index-Seite im Referenz-Handbuch beschrieben.

Funktionen

Allen Funktionen muss eine ( folgen, oder sie werden nicht als Funktion erkannt, das gilt auch für parameter-lose Funktionen.

Beispiel

    EventWindow() ; ist eine Funktion.
    EventWindow   ; ist eine Variable.
Funktionen sind regelmäßig Bestandteil der PureBasic "Befehls-Bibliotheken", welche auf der rechten Seite der Index-Seite im Referenz-Handbuch beschrieben werden.

Konstanten

Alle Konstanten werden eingeleitet von einem #. Sie können nur einmal im Verlauf des Programms deklariert werden und behalten stets ihren vorgegebenen Wert. (Der Compiler ersetzt beim Kompilieren des Executable alle Konstanten-Namen durch ihre entsprechenden Werte.)

Beispiel

    #Hello = 10 ist eine Konstante.
    Hello = 10 ist eine Variable.

Literale Strings (Zeichenketten)

Literale Strings werden mit Hilfe des " Zeichens deklariert. Escape-Sequenzen werden mittels des ~ Zeichens vor dem literalen String unterstützt. Die erlaubten Escape-Sequenzen sind:
  \a: alarm           Chr(7)      (Alarm)
  \b: backspace       Chr(8)      (Rücktaste)
  \f: formfeed        Chr(12)     (Seitenvorschub)
  \n: newline         Chr(10)     (Zeilenumbruch)
  \r: carriage return Chr(13)     (Wagenrücklauf)
  \t: horizontal tab  Chr(9)      (Horizontaler Tab)
  \v: vertical tab    Chr(11)     (Vertikaler Tab)
  \": double quote    Chr(34)     (Doppelte Anführungszeichen)
  \\: backslash       Chr(92)     (Rückstrich)
Es gibt zwei spezielle Konstanten für Strings:
  #Empty$: repräsentiert einen leeren String (exakt das gleiche wie "")
  #Null$ : repräsentiert einen Null-String. Dieser kann für API-Funktionen verwendet werden, welche
           einen Null-Zeiger auf einen String benötigen, oder um einen String wirklich freizugeben.
Achtung: Auf Windows funktioniert \t nicht mit den grafischen Funktionen der 2DDrawing- und VectorDrawing-Bibliotheken.

Beispiel

  a$ =  "Hello world"  ; Standard-String
  b$ = ~"Escape\nMe !" ; String mit Escape-Sequenzen

Sprungmarken

Allen Sprungmarken (Labels) muss ein : (Doppelpunkt) folgen. Die Namen von Sprungmarken dürfen keine Operatoren (+,-,...) oder Sonderzeichen (ß,ä,ö,ü,...) enthalten. Wenn die Sprungmarke innerhalb einer Prozedur definiert wird, dann ist die Sprungmarke nur in dieser Prozedur verfügbar.

Beispiel

    Ich_bin_eine_Sprungmarke:

Ausdrücke

Ein Ausdruck ist etwas, was berechnet werden kann. Ein Ausdruck kann beliebige Variablen, Konstanten oder Funktionen desselben Typs beinhalten. Wenn Sie Zahlen innerhalb eines Ausdrucks benutzen, können Sie das $ Zeichen vor der Zahl einfügen, um die Benutzung als Hexadezimal-Zahl anzuzeigen. Oder ein % Zeichen, um eine Binär-Zahl anzuzeigen. Ohne eines der beiden Zeichen wird die Zahl als Dezimal-Zahl behandelt. Strings müssen mit Anführungszeichen eingeschlossen werden.

Beispiel: gültige Ausdrücke:

  a = a + 1 + (12 * 3)

  a = a + WindowHeight(#Window) + b/2 + #MyConstant

  If a <> 12 + 2
    b + 2 >= c + 3
  EndIf

  a$ = b$ + "dies ist ein String Wert" + c$

  Foo = Foo + $69 / %1001  ; Nutzung hexadezimaler und binärer Zahlen

Verketten von Befehlen

Eine beliebige Anzahl an Befehlen kann auf derselben Zeile mittels der : Option aneinandergereiht werden.

Beispiel

  If IsCrazy = 0 : MessageRequester("Info", "Not Crazy") : Else : MessageRequester("Info", "Crazy") : EndIf

Zeilenfortsetzung

Wenn eine Zeile einen großen Ausdruck enthält, kann diese in mehrere Zeilen aufgesplittet werden. Eine aufgesplittete Zeile muss mit einem der folgenden Operatoren enden: Plus (+), Komma (,), Or (|), And, Or, Xor.

Beispiel

  Text$ = "Very very very very long text" + #LF$ +
          "another long text" + #LF$ +
          " and the end of the long text"

  MessageRequester("Hello this is a very long title",
                   "And a very long message, so we can use the multiline" + #LF$ + Text$,
                   #PB_MessageRequester_Ok)

Typische Begriffe in der Anleitung

Begriffe, die in dieser Anleitung benutzt werden:
<variable> : eine Basic Variable.
<expression> : ein Ausdruck, wie oben beschrieben.
<constant> : eine numerische Konstante.
<label> : ein Programmlabel (Sprungmarke).
<type> : jeder Typ, (Standard oder in einer Struktur).

Sonstiges

- In dieser Anleitung sind alle Themen in alphabetischer Reihenfolge aufgeführt, um mögliche Suchzeiten zu verkürzen.

- Rückgabewerte von Befehlen sind immer vom Typ Integer, wenn kein anderer Typ auf der Syntax-Zeile der jeweiligen Befehlsbeschreibung angegeben ist.
- In der PureBasic-Dokumentation wird sowohl von "Befehlen" als auch "Funktionen" gesprochen - es handelt sich dabei um ein und das Gleiche, unabhängig von einem Rückgabewert. Ob vom Befehl bzw. der Funktion ein Wert zurückgegeben wird, ist der jeweiligen Befehlsbeschreibung zu entnehmen.