Suchergebnisse

Suchergebnisse 1-4 von insgesamt 4.

  • Benutzer-Avatarbild

    Scriptsprache

    hal2000 - - Off-Topic

    Beitrag

    Ein Tokenizer wird normalerweise mit einer StateMachine implementiert. Du gehst schon in die richtige Richtung, indem du die Zeichen einzeln verarbeitest. Wenn deine Sprache aber komplizierter wird, bekommst du bei deiner Variante Probleme mit zu vielen IsWhatever-Variablen, weil du dir beim Speichern des Zustands nicht die Objektorientierung zunutze machst. Erstell dir eine Basisklasse "Tokenizer" und leite davon alle Konstrukte ab, die du erkennen willst. Ein Klammerausdruck besteht z.B. aus d…

  • Benutzer-Avatarbild

    Scriptsprache

    hal2000 - - Off-Topic

    Beitrag

    Mir ist gerade aufgefallen, dass ja auch einzelne öffnende Klammern erkannt werden. Dann ist das in Ordnung. Allerdings muss dein Tokenizer auch funktionieren, wenn kein Leerzeichen zwischen Minus und Klammer steht. Kommt dann als Token '-(' raus? Das wäre nämlich ungünstig. Die StateMachine würde das Minus als Token ausgeben und bei der Klammer in einen neuen Zustand gehen. Das 3-Schritte-System ist so korrekt - die Tokens hast du ja schon. Als nächstes werden die Typen abstrahiert, also z.B. '…

  • Benutzer-Avatarbild

    Scriptsprache

    hal2000 - - Off-Topic

    Beitrag

    Mit Grammatik meine ich sowas: de.wikipedia.org/wiki/Formale_Grammatik

  • Benutzer-Avatarbild

    Scriptsprache

    hal2000 - - Off-Topic

    Beitrag

    @nafets3646: Du bist auf dem richtigen Weg. Konvertiere deine Präfix-Notation erstmal in Postfix. Beispiel: Quellcode (3 Zeilen) Die Postfix-Notation wertest du mit einer Stackmaschine aus. Angenommen, du hast folgenden Ausdruck: Quellcode (2 Zeilen) Der Tokenizer macht daraus (zum Beispiel) Quellcode (2 Zeilen) ...mit folgenden Tabellen Quellcode (10 Zeilen) Die Stackmaschine liest den Postfix-Ausdruck und wertet die Tokens aus. Wenn das Token eine Variable oder Konstante ist, dann lege sie auf…