Einzelnen Beitrag anzeigen

Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#13

Re: Sysygy Script Engine - Version 0.99

  Alt 23. Jun 2008, 13:31
Zitat von Neutral General:
Zitat:
Byte-Code in Stream speichern und später Ausführen
In meinem aktuellen Projekt werde ich nämlich eine Scriptsprache brauchen
Hatte mir mal Pascalscript angeschaut, aber der bietet oben genanntes Feature meines Wissens nicht [...]
Doch, das kann sie:
Torry.net Component Description
Compilation to a file for later use

Ich hätte diese Komponente wahrscheinlich auch für meine Engine genommen, doch mir war 1. die Einbindung nicht einfach genug und 2. wollt ich soviel wie möglich selbst machen. Daher ist meine Komponente überhaupt erst entstanden. Außerdem hab ich versucht, die Einbindung nicht zu schwer zu machen - es reichen eigentlich 6 5 Zeilen Quelltext:
Delphi-Quellcode:
if Compiler.ParseScript(Memo1.Text) then
begin
  Executor.FillData(Compiler.OutputData);
  Executor.Run;
end;
Durch den eingebauten Unit-Manager muss man sich nicht mal mehr um externe Methoden kümmern, das wird alles automatisch im Hintergrund gemacht.

Zitat von Neutral General:
und ich denke ich würde sogar deine benutzen, WENN sie Properties unterstützen würde. Diese Get- und Set-Methoden sind mir da etwas zu lästig.
Da werd ich mir mal Properties vornehmen müssen, oder? Wobei ich den Mehraufwand als sehr gering einschätzen würde. Nehmen wir an, du willst folgende Klasse im Script zur verfügung stellen:
Delphi-Quellcode:
type
  TMyObject = class(TObject)
  private
    FData : string;
  protected
    procedure SetData;
  public
    property Data: string read FData write SetData;
  end;
Dann würde ein Import-Script folgendermaßen ausschauen:
Delphi-Quellcode:
type
  TMyObject = class(TObject)
  public
    function Data: string;
    procedure SetData(value: string);
  end;
Aber ich schau, dass ich auch properties in die Importer-Klassen im Script einbaue.

[Edit]An aktuelle Gegebenheiten etwas angepasst[/Edit]
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat