Präprozessor (Luna-Quelltext)
Der Präprozessor ist ein Teil des Compilers, der den Sourcecode für den Kompilier- und Assembliervorgang vorverarbeitet. Im Luna-Compiler existieren zwei Präprozessoren. Einmal für den Luna- und einmal für den Assembler-Quelltext.
Im Präprozessor werden folgende Teilbereiche bearbeitet:
- Auflösung von arithmetischen und logischen Ausdrücken mit Konstanten.
- Bedingte Einbindung von Code-Bereichen.
- Einbinden von externen Sourcedateien und -Daten
- Textersetzungen von Definitionen/Makros im Sourcecode.
- Auflösung von Inline-Funktionen.
Präprozessorfunktionen im Luna-Code
Anweisungen
- #define - Defines/Aliase.
- #undef - Define entfernen.
- #ide - IDE-Steuerung im Source.
- #pragma, #pragmaSave, #pragmaRestore, #pragmaDefault - Compiler-Steuerung im Source.
- #if #else #elseif #endif - Bedingtes Kompilieren.
- #select #case #default #endselect - Bedingtes Kompilieren.
- #macro - Makros
- #include - Quelltextdateien einbinden.
- #includeData - Binärdaten in den Flash einbinden.
- #library - Externe Bibliothek einbinden.
- #cdecl, #odecl, #idecl - Parameterdefinition für indirekte Aufrufe.
- #error - Fehlermeldung ausgeben (Kompiliervorgang abbrechen).
- #warning - Warnmeldung ausgeben.
- #message - Nachricht ausgeben.
Funktionen
- Defined() - Prüfen ob eine Konstante oder ein Symbol definiert ist.
- byte1() - 1. Byte eines 32-Bit-Wertes
- byte2() - 2. Byte eines 32-Bit-Wertes
- byte3() - 3. Byte eines 32-Bit-Wertes
- byte4() - 4. Byte eines 32-Bit-Wertes
- byte() - Typcasting auf 8-Bit-Integer.
- int8() - Typcasting auf 8-Bit-Integer mit Vorzeichen.
- word() - Typcasting auf 16-Bit-Integer.
- integer() - Typcasting auf 16-Bit-Integer mit Vorzeichen.
- int24() - Typcasting auf 24-Bit-Integer mit Vorzeichen.
- uint24() - Typcasting auf 24-Bit-Integer.
- long() - Typcasting auf 32-Bit-Integer.
- longint() - Typcasting auf 32-Bit-Integer mit Vorzeichen.
- single() - Typcasting auf 32-Bit-Float mit Vorzeichen.
- float() - Typcasting auf 32-Bit-Float mit Vorzeichen.
- odd() - Prüfen ob Wert ungerade.
- even() - Prüfen ob Wert gerade.
- chr() - Umwandlung nach Binärstring (byte).
- mkb() - Umwandlung nach Binärstring (byte).
- mki() - Umwandlung nach Binärstring (integer).
- mkw() - Umwandlung nach Binärstring (word).
- mkl() - Umwandlung nach Binärstring (long).
- mks() - Umwandlung nach Binärstring (single).
- strfill() - String auffüllen mit Zeichenkette.
- hex() - Konvertierung nach Hexadezimaldarstellung.
- str() - Konvertierung nach Dezimaldarstellung.
- bin() - Konvertierung nach Binärdarstellung.
- asc() - Umwandlung des ersten Zeichens einer Zeichenkette in sein numerisches Equivalent.
- min() - Arithmetische Funktion.
- max() - Arithmetische Funktion.
- left() - Linken Teil eines Textes lesen (String).
- right() - Rechten Teil eines Textes lesen (String).
- mid() - Teil eines Textes lesen (String).
- format() - Formatierte, dezimale Zahlendarstellung.
- nthfield() - Teil einer separierten Zeichenkette.
- val() - Zeichenkette mit Dezimalzahl zu Integerwert konvertieren.