Skriptsprache entwickeln (war: mal etwas kompliziertes)



  • Hi,

    zu so später Stunde rücke ich jetzt mal mit ganz schlimmen Problemen raus. *g*

    Es geht bei mir darum, eine Art Skriptsprache in eine Klasse einzubauen, die mir erlaubt, beliebige Daten zu berechnen und festzusetzen.

    Z.B. set('24.12.', "Heiligabend")

    Das ist erstmal nicht schwierig. Wir definieren uns einfach ein Keyword "set" und wandeln den Rest um. Was mache ich aber dann zum Beispiel mit dem 4. Advent? *G*

    set( (Sonnatag vor Heiligabend), "4. Advent");

    oder auch mit dem 1. Sonntag im März, wenn z.B. jedes Jahr Vereinssitzung wäre:

    set('(1.Son).03', "Vereinssitzung")

    Ziel der ganzen Klasse ist eine freidefinierbare Sammlung von Daten, die eben nicht datums- sondern tagesabhängig sind. Zur Laufzeit sollen Daten eingeben und verändert werden können. Der Benutzer sollte die Skriptsprache kennen.

    Wenn es eine Möglichkeit gäbe, das Ganze über einen komfortablen Dialog zu gestalten, werde ich von meiner Skriptsprache absehen.

    Hat jemand eine Idee, wie man sowas am besten lösen kann? Für mich ist das, glaube ich, eine Ecke zu hoch.

    [ Dieser Beitrag wurde am 25.02.2003 um 13:32 Uhr von Jansen editiert. ]



  • hm,

    was du möchtest ist eine Terimindatenbank.
    Die Feiretage und Wochentage brauchst du nicht zu berücksichtigen. Die kannst du von vorherein berechnen.

    Das was du berücksichtigen mußt sind die Termine wie "Vereinssitzung".

    Wenn jemand einen solchen Termin hat, weiss er auch das Datum. Warum also nicht einfach eine Methode, die den Termin in deine Datenbank schreibt ?



  • Hallo,

    was freedy meint sind relative Datumsberechnungen.
    Die sind besonders nützlich für immer wiederkehrende Ereignisse,
    z.B. jeden 1. Sontag im März(oder in jeden Monat) ist Vereinssitzung.

    Dafür musst Du eine Syntax festlegen.
    1. für feste Daten (z.B.: 'Tag;Monat')
    2. für "variable" Daten (z.B. '#1.Sontag;Monat' o. '#3.Montag;Monat')

    Dann wird Dir nichts anderes übrig bleiben, als auf diese Syntax zu prüfen.
    Das Datum zu dem Termin kannst Du ja über Wochentagsberechnung bekommen.

    Ich hoffe es hilft ein wenig. 😉
    Gruß Mario

    [ Dieser Beitrag wurde am 21.02.2003 um 10:14 Uhr von Mario Rosenbohm editiert. ]



  • Hallo,

    kann mir dann noch jemand die Theorie zu Parsern erklären? Hab keine Ahnung, wie man die Syntax (vernünftig) auswerten kann.

    Gruß
    freedy



  • Such mal im "Rund um die Programmierung" forum nach - rate mal - "Parsen".

    -junix



  • Hallo,

    schön und gut... das Problem: ich kann mich aus zeitlichen Gründen nicht von vornherein mit der Problematik beschäftigen. Suche ein Tutorial, das mir hilft, eine einfache simple Skriptsprache zu programmieren. Wo ich vielleicht 4 oder 5 Funktionen habe und in den Funktionen Verschachtelungen auflösen kann. Klar, ein Matheparser ist ein Anfang, aber leider hilft der mir bei der Auswertung nicht.

    gruss
    freedy



  • Das wollte ich schon die ganze Zeit machen: verschoben nach "Rund um" ! 😉



  • Hi,
    auf www.gamedev.net gibt es so ein Tutorial in einigen Folgen, in dem erklärt wird, wie man eine kleine Scriptsprachen-Klasse erstellt.

    M.T.



  • Hallo freedy,

    google mal nach lex, yacc und bison.

    Gruß - Xaron



  • also bei Google finde ich 1000 gute Links, wenn ich nach Parser Bau suche! Ansonsten kann ich dir das Buch "Compiler Construction - Principles and Practice" von Kenneth C. Louden empfehlen.



  • hm, vielen dank für die guten tips. Inzwischen bin ich am überlegen, ob es nicht eine einfachere Methode gibt. *grübelgrübel*

    gruß
    freedy



  • Lass das ganze doch als XML eingeben und nimm xerces als parser



  • Ich werde mal basteln. Wenn ich gute Methoden und Klassen gebaut habe, mache ich sie nach Wunsch gern zugänglich.

    Vielleicht hat ja auch jemand die gleichen Probleme und hilft mir... 🙂

    Gruß
    freedy


Anmelden zum Antworten