1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Interpret mit AppleScript

Dieses Thema im Forum "AppleScript" wurde erstellt von keman, 02.04.06.

  1. keman

    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.
     
  2. keman

    keman Gast

    Tatsächlich sollte dein Code gehen, und doch kommt jetzt immer noch die Fehlermeldung "getFormatFile konnte nicht ausgeführt werden". Ich verstehe hier gar nichts mehr...
     
  3. keman

    keman Gast

    Das ist einfach krass. Entweder mein ScriptEditor hat irgend 'nen Bug (mac os x 10.4.4) oder ich weiss auch nicht mehr weiter. Immer die gleiche Fehlermeldung "getFormatfile konnte nicht ausgeführt werden".
     
  4. keman

    keman Gast

    Ich hab auf alles geschaut. Das merkwürdige ist, dass eben die Fehlermeldung nicht sofort kommt, zuerst wird der erste Teil des Programms ganz normal ausgeführt, sobald ein FScript-Befehlt ?SUB? kommt, kommt die Fehlermeldung "compile konnte nicht ausgeführt werden". Und compiler ist kein Schlüsselwort, da es im Editor nicht blau sondern grün gefärbt wird.
     
  5. keman

    keman Gast

    Nein, die Parameter sind in Ordnung, und die Variable mpmp wird nirgenswo verwendet, ausser für das ?SUB?. Und was meinst du mit dem tell application "Finder"?
    Und die Klammern stehen doch am Handlername, nicht?
     
  6. keman

    keman Gast

    Ja, die Leerstelle hab ich gesehen, hab sie gelöscht, aber es geht trotzdem nichts.
     
  7. keman

    keman Gast

    Tut mir leid, auch schon versucht... Geht leider nicht...

    Kann es sein, das die ganze Datei zu gross ist (ca. 1600 Zeilen)?
     
  8. keman

    keman Gast

    Ja, wenn ich diese Beiträge lese, schient es tatsächlich so, als sei meine Datei zu lang. Wie soll ich aber dann das Problem lösen? Gibt es keinen anderen Script-Editor (ausser der XCode, aber der ist für mein Ziel total ungeeignet)?
     

Diese Seite empfehlen