keman
Gast
Hab einmal gedacht, einen Interpreten mit AppleScript zu schreiben, ich hab also meine Programmmiersprache mal FScript genannt. Hier der vollständige Code des Interprets: http://mitglied.lycos.de/keman/main.scpt
Ich erkläre kurz die Grundlagen meiner einfachen Programmiersprache, damit mein Problem deutlicher wird:
Eine FScript-Datei muss *.format gespeichert werden. Mehrere Befehle werden durch Zeilenumbrüche getrennt. Der erste Befehl muss immer #<fscript> sein. Eine FScript-Datei muss mit dem Editor erstellt werden (Link oben)!
DISPL hello world
erzeugt eine MessageBox, in der hello world steht.
?SET? hallo%4
definiert eine Variable mit dem Index 4 und dem Wert hallo. Variablen haben keine Namen sondern nur einen Index, es gibt also Variable 1, Variable 2 etc. Die beiden Parameter hallo und 4 werden durch das %-Zeichen getrennt.
DISPL Die erste Variable ist &0001 und die fünfzehnte &0015
erzeugt eine MessageBox mit den Variablen mit dem Index 1 und 15.
Es gibt noch ziemlich viele weitere Befehle, die ich jetzt nicht erklären werde. Auf jeden Fall wäre es in meiner Programmiersprache praktisch, eine externe *.format-Datei von einer anderen *.format-Datei auszuführen. Deshalb hab ich diesen Befehl entwickelt:
?SUB? datei1.format
Sollte theoretisch die Datei datei1.format ausführen, die sich im home/FScript-Ordner des Users befinden sollte. Dies hab ich in AppleScript so gelöst:
else if command is "?SUB?" then
tell application "Finder"
set theStarter to "FScript:" & p1 & ""
--p1 ist der erste Parameter des Befehls ?SUB?
set thePath to the file theStarter in the home
set mpmp to "" & thePath & ""
set aber to read file mpmp
compile(mpmp, 2)
-- Der erste Parameter von compile() ist der FScript-Code, der ausgeführt werden sollte, der zweite ist total unwichtig.
end tell
Wie schon gesagt, sollte man sich vielleicht den ganzen Code anschauen, hier:
http://mitglied.lycos.de/keman/main.scpt
Kann mir da jemand helfen, wenn ich nämlich folgende FScript-Datei ausführen will, kommt immer compile() konnte nicht ausgeführt werden.
#<fscript>
?SUB? datei1.format
Die Datei datei1.format exisistiert tatsächlich. Aber wieso kommt immer eine Fehlermeldung? Ich verstehe das einfach nicht.
Ich erkläre kurz die Grundlagen meiner einfachen Programmiersprache, damit mein Problem deutlicher wird:
Eine FScript-Datei muss *.format gespeichert werden. Mehrere Befehle werden durch Zeilenumbrüche getrennt. Der erste Befehl muss immer #<fscript> sein. Eine FScript-Datei muss mit dem Editor erstellt werden (Link oben)!
DISPL hello world
erzeugt eine MessageBox, in der hello world steht.
?SET? hallo%4
definiert eine Variable mit dem Index 4 und dem Wert hallo. Variablen haben keine Namen sondern nur einen Index, es gibt also Variable 1, Variable 2 etc. Die beiden Parameter hallo und 4 werden durch das %-Zeichen getrennt.
DISPL Die erste Variable ist &0001 und die fünfzehnte &0015
erzeugt eine MessageBox mit den Variablen mit dem Index 1 und 15.
Es gibt noch ziemlich viele weitere Befehle, die ich jetzt nicht erklären werde. Auf jeden Fall wäre es in meiner Programmiersprache praktisch, eine externe *.format-Datei von einer anderen *.format-Datei auszuführen. Deshalb hab ich diesen Befehl entwickelt:
?SUB? datei1.format
Sollte theoretisch die Datei datei1.format ausführen, die sich im home/FScript-Ordner des Users befinden sollte. Dies hab ich in AppleScript so gelöst:
else if command is "?SUB?" then
tell application "Finder"
set theStarter to "FScript:" & p1 & ""
--p1 ist der erste Parameter des Befehls ?SUB?
set thePath to the file theStarter in the home
set mpmp to "" & thePath & ""
set aber to read file mpmp
compile(mpmp, 2)
-- Der erste Parameter von compile() ist der FScript-Code, der ausgeführt werden sollte, der zweite ist total unwichtig.
end tell
Wie schon gesagt, sollte man sich vielleicht den ganzen Code anschauen, hier:
http://mitglied.lycos.de/keman/main.scpt
Kann mir da jemand helfen, wenn ich nämlich folgende FScript-Datei ausführen will, kommt immer compile() konnte nicht ausgeführt werden.
#<fscript>
?SUB? datei1.format
Die Datei datei1.format exisistiert tatsächlich. Aber wieso kommt immer eine Fehlermeldung? Ich verstehe das einfach nicht.