Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Scriptsprache in normalen Code einbinden (https://www.delphipraxis.net/155715-scriptsprache-normalen-code-einbinden.html)

Teekeks 4. Nov 2010 17:07

Scriptsprache in normalen Code einbinden
 
Hallo,

Ich würde ganz gerne erfahren wie ihr (die ihr so etwas schon einmal gemacht habt) eine Scriptsprache direkt in den Code einbindet.
Die fragliche Scriptsprache ist von mir und wird momentan normal über Konsole aufgerufen.

Nun kann aber z.B. die Sprache von LittleDave direkt in den normalen Code mit eingebunden werden.
Da frage ich mich:
wie wird so etwas technisch umgesetzt?

implementation 4. Nov 2010 17:24

AW: Scriptsprache in normalen Code einbinden
 
Wie meinst du das "direkt in den Code einbinden"?

- den Interpreter bzw. Compiler direkt aus dem Code starten?
- die Runtime direkt von dort laufen zu lassen?
oder
- den Skriptcode einfach so in den Quelltext reinklatschen?

Mag sein, dass die dritte Option etwas schwachsinnig ist, aber deine Frage hört sich für mich genau so an :stupid:

Habe selber mal einen (sehr schwachen kleinen) Skript-Interpreter selber geschrieben. Der hat direkt immer die Skriptzeile ausgeführt, und nicht erst kompiliert. War mehr experimentiell und für mehr nicht zu gebrauchen :stupid:
Aus denselben Motiven bastel' ich mir nebenbei gerade einen Compiler und eine zugehörige Runtime mit eigenem Bytecode. Jetzt wisst ihr, warum ich euch dauernd mit Automatentheorie vollquatsche.
Warum erzähl' ich das jetzt eigentlich? Naja, vielleicht liegt's daran, dass ich gerade in Erzählstimmung bin und meine Freundin nicht erreichen kann :wall: Jetzt müsst ihr herhalten :P

BUG 4. Nov 2010 17:25

AW: Scriptsprache in normalen Code einbinden
 
In beiden wird afaik zumindest der Bytecode-Interpreter direkt einkompiliert.

Sowohl den Quelltext von SE II als auch RUTIS kannst du online ansehen.

Teekeks 4. Nov 2010 17:30

AW: Scriptsprache in normalen Code einbinden
 
Gut, etwas unklar formuliert:

Ich meine dass man zum Schluss z.B. im normalen Code nur folgendes aufruft
Delphi-Quellcode:
Parser_CallFunction('eineFunktion');
und dass man z.B. Variablen austauschen (setzten) kann von der Scriptsprache (die dann dementsprechende Funktionen aufweisen muss) aus.

Schreibt man dann header und wenn ja, wie werden diese mit dem Parser "verknüpft"?

Redbox:
Also wird der komplette Code des Parsers mit einkompiliert?

implementation 4. Nov 2010 17:36

AW: Scriptsprache in normalen Code einbinden
 
Wie das in SE II und RUTIS gemacht ist, kann ich nicht sagen, aber ich würde irgendwo in den Bytecode einen Header mit einer Tabelle einbauen, etwa so:
Code:
Addr | Typ | Name
0001    F   SagBaum
0025    V   IchBinEineVariable
oder so in der Art :gruebel:

mkinzler 4. Nov 2010 17:39

AW: Scriptsprache in normalen Code einbinden
 
Kannst dir auch mal den Source vom RemObjects Pascal Script ansehen


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz