XPSE
Copyright © 1998-2011 XProfan.Com, built DE.

 Funktionsreferenz   Download   Forum   Kontakt   


Syntax


Auskommentieren/Remarks

Das Auskommentieren zeilenübergreifender Blöcke mittels /* text */ und zeilenabschliessendes Auskommentieren mit //.

APIs

APIs können einfach getippt werden, müssen nicht deklariert werden, auch ändert sich nicht die Schreibweise beim Funktionsaufruf:

print timeGetTime()

Kollidiert einmal ein API-Schlüsselwort, dann einfach per Tilde-Zeichen auf die API zeigen:

print ~MessageBox(0,"Test","Hallo",0)

Egal welche Schreibweise, alle APIs werden in schnellere Calls konvertiert deren Funktionsadresse bereits zu Programmbeginn bezogen werden - was auch für Aufrufe von APIs gilt welche nachträglich/zusätzlich per Headerdatei (*.ph) deklariert wurden und ebenso gilt für native Funktionen. Daraus resultieren eine deutlich höhere Programmgeschwindigkeit und mehr Sicherheit.

Befehls/Zeilentrennung

XPSE ermöglicht das in anderen Sprachen typische Semikolon ";" und den Doppelpunkt ":", um Anweisungen voneinander zu trennen und Backslash "\" um Zeilen miteinander zu verknüpfen. Geschweifte Klammern "{" "}" können ebenfalls verwendet werden, um Anweisungen voneinander zu trennen.

C-Style

Der C-Style ergibt sich aus:

Auskommentieren per // und /* */
Wie in C und PHP üblich, können // und /* */ zum Auskommentieren genutzt werden.

Befehls/Zeilentrennung per Semikolon
Wie in C und PHP üblich, können Anweisungen per Semikolon ";" voneinander getrennt werden.

Const/ vordefinierte Konstanten
Ähnlich der C-Syntax Konstanten definieren.

Geschweifte Klammern
Wie in C und PHP üblich können Anweisungblöcke per geschweiften Klammern "{" "}" deklariert werden.

Include/#Include
Wie in C und PHP üblich einzubindende Dateien mit "#Include" einbinden.

OOP
"this->" für Methoden innerhalb von Klassen, "::" für Methoden ausserhalb von Klassen.

keine Prä- und Postfixe
Keine Prä- und Postfixe für Variablen

Variablendeklaration
Variablendeklaration im C-Style

Zuweisungs/ Vergleichsoperatoren
Vergleich mit Operator "==" möglich.

Create-Funktionen

createBlackframe(...
createBlackrect(...
createButton(...
createCentertext(...
createChoicebox(...
createDateedit(...
createDefbutton(...
createDialog(...
createEdit(...
createGroupbox(...
createHtmlbox(...
createIconbutton(...
createLeftbutton(...
createListbox(...
createMultiedit(...
createPicbutton(...
createRighttext(...
createSortedListbox(...
createSpinedit(...
createStatic(...
createSunkencentertext(...
createSunkenrighttext(...
createSunkentext(...
createTabcontrol(...
createText(...
createTimeedit(...
createToolwindow(...
createWindow(...

Const

Mit Const werden Konstanten oder ganze Zeichenfolgen wie auch Syntaxblöcke definiert. Die Verwendung dieser Konstanten, z.B. statt der Def -Konstanten, ist deutlich schneller, da diese nicht zur Laufzeit, sondern beim Kompilieren umgesetzt werden.

const irgendwas="hallo"
const irgendwas1=55510+myProc("test")

Vordefinierte Konstanten

String XPSECOMPILETIMESTAMPSTRING
Datum und Uhrzeit der Programmkompilierung im Format yyyymmddHHMMSS

String XPSESOURCECODEFILENAMESTRING
Dateiname des kompilierten Programmes einschliesslich Pfad.

String XPSEVERSIONSTRING
Versionsstring von XPSE - z.B. "0.1.7g".

Long XPSENUMSOURCECODELINESLONG
Anzahl der relevanten geladenen Quelltextzeilen

Export/Noexport

In Units verwendbares Schlüsselwort für kleine in die .def-Datei zu erportierende Hilfetexte:

proc myProc export "myProc ist für ..."
Eine mit noexport gekennzeichnete Funktion wird nicht in die def-Datei exportiert.

FOR-Schleifen

FOR-Schleifen nach Pascal-Syntax mit optionalem Step und DownTo.

for l=1 to 10 do begin
	...
end
Die in XProfan eingebauten WhileLoop-Schleifen sind schneller und vorzuziehen.

Geschweifte Klammern

Geschweifte Klammern wie auch aus C oder PHP bekannt können wie gewohnt verwendet werden um Blöcke für if, while, whileloop, repeate und proc zu definieren.

if (10/*anmerkung*/==20) {
	print "Hallo"
} else { ...

Include/#Include

Inkludiert automatisch Quelltextdateien, Headerdateien und Units. Je nach Dateiendung wird entsprechend eingebunden. Wird "include" mit Raute angeführt: "#include", dann wird die angegebene Datei nicht eingebunden, wenn sie bereits zuvor schon einmal mit "#include" eingebunden wurde. (Wird nur ein Mal eingebunden, ähnlich wie PHP's "include_once".)

OOP

Innherhalb von Klassen kann auf Methoden der gleichen Klasse mit "this->" zugegriffen werden (erspart das wiederholte Tippen der Klassenbezeichnung) und ausserhalb von Klassen kann auf Methoden mittels Doppeldoppelpunkt "::" zugegriffen werden, erspart Raute-Punkt "#.".

Einheitliches Parametertrennzeichen

Wie folgt kann für diese Befehle, neben der regulären Schreibweise mit unterschiedlichen Parametertrennzeichen, als Parametertrennzeichen auch einzig das Komma verwendet werden:

ARC		X1,Y1,X2,Y2,X3,Y3,X4,Y4
CHORD		X1,Y1,X2,Y2,X3,Y3,X4,Y4
CLIPLOADBMP	X1,Y1,X2,Y2,X3,Y3,X4,Y4
COPY		S1,S2
COPYBMP		X1,Y1,X2,Y2,X3,Y3,N1[,N2]
COPYPIC		H,X1,Y1,X2,Y2,X3,Y3,N1[,N2]
COPYSIZEDBMP	X1,Y1,X2,Y2,X3,Y3,X4,Y4,N
COPYSIZEDPIC	H,X1,Y1,X2,Y2,X3,Y3,X4,Y4,N
DRAWPIC		H,X,Y,N1[,N2]
DRAWPIC		I,S,X,Y,N1,N2
DRAWPIC		S,X,Y,N1[,N2]
DRAWSIZEDEXTBMP	I,S,X1,Y1,X2,Y2[,N]
DRAWSIZEDPIC	H,X,Y,DX,DY[,N]
DRAWSIZEDPIC	I,S,X,Y,DX,DY,N
ELLIPSE		X1,Y1,X2,Y2
LINE		X1,Y1,X2,Y2
LOADBMP		S,X,Y[,N]
LOADSIZEDBMP	S,X1,Y1,X2,Y2[,N]
MCOPYBMP	X1,Y1,X2,Y2,X3,Y3,N1[,N2]
MCOPYSIZEDBMP	X1,Y1,X2,Y2,X3,Y3,X4,Y4,N
MOUSE		(X1,Y1,X2,Y2)
PIE		X1,Y1,X2,Y2,X3,Y3,X4,Y4
RECTANGLE	X1,Y1,X2,Y2
ROUNDRECT	X1,Y1,X2,Y2,X3,Y3
SETWINDOWPOS	W,X,Y[,DX,DY[,N]]
TBOX		X1,Y1,X2,Y2,N
WINDOW		X1,Y1[,X2,Y2]
Wird die Kommaschreibweise genutzt, müssen alle Parameter mit Komma getrennt sein - es kann nicht innerhalb einer Befehlsparameterkette zwischen Parametertrennzeichenschreibweisen gewechselt werden.

Keine Prä- und Postfixe

Keine Prä- und Postfixe für Variablen und Systemvariablen, wo sie dann nicht notwendig sind, wenn es keine gleichnamige Funktion gibt.

Variablendeklaration

Variablen ohne Postfix können im C-Style deklariert werden:

long a,b,c
int a,b,c
string a,b,c
float a,b,c
print a,b,c

Arrays ebenso einfach:

longs a,b,c
ints a,b,c
strings a,b,c
floats a,b,c
print a[0],b[0],c[0]

Variablen mit Postfix wie gewohnt per Declare und Var deklarieren, siehe: Datentypen.

Zuweisungs/ Vergleichsoperatoren

OperationXProfanPHP/CPPDelphi
Pascal
XPSE
Wertzuweisung
=
=
:=
alle Varianten
Vergleiche
=
==
=
alle Varianten



 Textversion  English  XPSE© - Präkompilierer für XProfan
© 1998 - 2011 XProfan.Com