Allgemein: Aufbau eines Parsers



  • Hallo!

    Ich möcht so gern einen kleinen feinen Parser für CSS in C++ programmieren, aber ehrlich gesagt weiß ich nicht so recht, wie ich den aufbauen sollte. Es wäre nett, wenn ihr ein paar Vorschläge posten könntet 😉

    Ich hab mir schon ein paar angeguckt, die Xml und ähnliches parsen, aber so richtig schlau bin ich daraus nicht geworden... Und da ich noch weit entfernt von einem Informatikstudium bin, frag ich euch halt...

    Ok, sehr allgemeine Fragestellung, aber ich bitte euch dringenst zur Hilfe :-=

    Danke!

    Grüße
    Flandieeeee



  • Bau Dir erstmal einen Scanner! Also die Vorstufe des Parsers! Dafür solltest Du Deine Logic in einem Automaten veranschaulichen, wenn Du dass schaffst, sind die Parser-Regeln nicht mehr so wild! Ansonsten ist das Thema nicht innerhalb von ein paar Zeilen behandelt! Dafür gibt es sogar komplette Vorlesungen an Hochschulen! *gg*



  • Jo, das weiß ich wohl, dass es dafür übelste Vorlesungen gibt. Aber da ich diese halt nicht besuchen kann und ich keine Lust auf so eine anfängerhafte Lösung hab, such ich Material, aber ich stell mich z.z. ein wenig blöd mit Google an...





  • Ich wollte sowas auch selbst in Angriff nehmen für meine eigene Skriptsprache,
    aber habe es vorerst zurück gestellt bis ich etwas besser programmieren kann,
    bisher verstehe ich zwar fertigen Code, aber etwas komplett eigenes zu realisieren,
    ist doch etwas anderes.

    Vllt. wäre das Buch "OOP für Dummies" etwas, da wird ein XML Parser erstellt und
    ich bin mir sicher Marc++us hat das sicher genau erklärt, ansonsten die Links
    aus der FAQ die Kingruedi erwähnt hat. Das Drachenbuch scheint so die Lektüre
    in diesem Gebiet zu sein.
    Habe es selbst aber noch nicht gelesen, bzw besitze es derzeit auch noch nicht.

    Ansonsten ist das vllt. auch was für dich:
    -http://www.terrashop.de/AW-2096A/artikel.php
    Alternativ gibt es doch die Libs Flex und Bison, zu diesen findest du in der
    FAQ auch Links wenn ich mich recht erinnere, ansonsten meld dich dann post ich
    sie hier.



  • die frage ist halt ob das teil aus spass bauen willst, dann hol dir das drachenbuch. ist wirklich gut geschrieben und super für anfänger geschrieben.

    falls du einfach nen parser, scanner oder gleich nen compiler haben willst, gibts compilercompiler, parser und scanner generatoren, etc. en masse:
    yacc und lex, bzw. bison und flex lassen grüssen, zusammen gibts die im gentlesystem, des weiteren gibts auch oo dinger wie sablecc, aber google einfach danach, da wirst du auf jeden fündig.
    allerdings kommst du bei den teilen nicht drum rum eine grammatik für deine sprache zu schreiben. die ist leider meist nicht in ebnf sondern oft compilecompilerabhängig (by the way - cooles wort oder??) also damit musst du dich auf jeden beschäftigen.



  • Hast du von dem Drachenbuch auch den zweiten Band gelesen?
    Und könntest du den ebenfalls empfehlen?
    Und wird im Drachenbuch auch ein Interpreter/Compiler entwickelt, wenn ja in
    welcher Sprache?



  • nein, da muss ich passen.
    im ersten teil wird zuerst ein ganz einfacher compiler (vorsicht, compiler ist im weitesten sinn ein übersetzer) entwickelt um sozusagen in die Materie einzuführen. Programmiersprache ist C.
    In den weiteren Kapiteln werden alle Themen wie Scanner, Parser, Zwischencodeerzeugung etc. vertieft behandelt. Alles wird mit ausreichend Beispielen illustriert.



  • Danke, dann ist der erste Band auf jeden Fall optimal für mich 🙂


Log in to reply