Allgemeine Syntax-Regeln

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

Kommentare

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 typischerweise für PureBasic Funktionen genutzt werden.

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

Jeder Funktion muss ein öffnendes rundes Klammerzeichen '(' folgen, oder sie wird nicht als Funktion erkannt (das gilt auch für Funktionen ohne Parameter).

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

Allen Konstanten geht das Hash-Zeichen # voraus. Sie können nur einmal im Code deklariert werden und behalten immer ihre vordefinierten Werte. (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 dem Zeichen " deklariert. Escape-Sequenzen werden unterstützt, indem der Literalzeichenfolge das Zeichen ~ vorangestellt wird. Die unterstützten 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. Innerhalb einer procedure definierte Sprungmarken sind nur in dieser Prozedur verfügbar.

Beispiel

    Ich_bin_eine_Sprungmarke:

Module

Module verwenden einen :: (doppelten Doppelpunkt), wenn auf einen Modulnamen verwiesen wird. Achten Sie darauf, diese nicht mit dem einfachen Doppelpunkt zu verwechseln, der von Sprungmarken verwendet wird.

Beispiel

  Debug CarModule::NbCars

Ausdrücke

Ein Ausdruck ist etwas, das ausgewertet werden kann. Ein Ausdruck kann beliebige Variablen, Konstanten oder Funktionen desselben Typs mischen. Wenn Sie Zahlen in einem Ausdruck verwenden, können Sie ihnen das $ Symbol voranstellen, um eine Hexadezimalzahl anzugeben, oder mit dem % Symbol, um eine Binärzahl anzugeben. Ohne eines der beiden Zeichen wird die Zahl als Dezimalzahl behandelt. Strings müssen in gerade doppelte 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

Lange Ausdrücke können auf mehrere Zeilen aufgeteilt werden. Eine aufgesplittete Zeile muss mit einem der folgenden Operatoren enden: Plus (+), Komma (,), oder (|), 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 werden die Begriffe "Befehle" und "Funktionen" synonym verwendet, unabhängig davon, ob die Funktion einen Wert zurückgibt oder nicht. Um zu erfahren, welcher Wert von einem bestimmten Befehl oder einer bestimmten Funktion zurückgegeben wird, schauen Sie in die Beschreibung in der Befehls-Dokumentation.