boost::spirit geeignet hier?



  • Ich würd mir boost::spirit hier nicht antun. Ich empfinde das als zu unübersichtlich und schwer durchschaubar. Ich würde mir viel leichter tun, mit Antlr oder von mir aus auch mit flex und bison eine Gramatik zu definieren.



  • Ich hab damit zwar keine Erfahrung, aber ich kann mir kaum vorstellen dass es Spass machen würde mit einem "klassischen" Parser-Generator etwas ala Intellisense umzusetzen.
    Und mit "klassisch" meine ich dass das Ding nicht speziell darauf ausgelegt ist Syntaxfehler zu "übersehen".



  • Mechanics schrieb:

    Ich würd mir boost::spirit hier nicht antun. Ich empfinde das als zu unübersichtlich und schwer durchschaubar. Ich würde mir viel leichter tun, mit Antlr oder von mir aus auch mit flex und bison eine Gramatik zu definieren.

    Hm, Ok, werd mir dieses flex mal genauer anschauen, das kannte ich noch nicht. Antlr ist halt Java...

    hustbaer schrieb:

    Ich hab damit zwar keine Erfahrung, aber ich kann mir kaum vorstellen dass es Spass machen würde mit einem "klassischen" Parser-Generator etwas ala Intellisense umzusetzen.
    Und mit "klassisch" meine ich dass das Ding nicht speziell darauf ausgelegt ist Syntaxfehler zu "übersehen".

    Also alles per Hand selber machen?



  • happystudent schrieb:

    Also alles per Hand selber machen?

    Äh.
    Ja?
    GCC und Clang verwenden auch hangeschriebene Parser.
    3x darfst du raten warum.



  • hustbaer schrieb:

    Äh.
    Ja?
    GCC und Clang verwenden auch hangeschriebene Parser.
    3x darfst du raten warum.

    Warum? Weil es gar keine IDEs sind und deswegen auch kein "Intellisense" haben? 😉

    Nein Spass, es geht jetzt hier nicht darum solchen High-end Produkten die von etlichen Leuten mitentwickelt wurden Konkurrenz zu machen. Mag sein dass diese Tools es so machen, alles andere wäre dort aber auch sehr verwunderlich.

    Für Eclipse kann man ja auch eine beliebige Sprache als package einbinden, samt intellisense. Ich kenne da auch ein paar die dieses per Antlr realisiert haben und das funktioniert super. Natürlich nicht vergleichbar mit "echten" IDEs, aber trotzdem sehr gut.

    Sowas suche ich halt, nur für C++ und nicht für Java.


  • Mod

    happystudent schrieb:

    Hallo,

    erstmal wollte ich fragen warum der Thread verschoben wurde 😉

    C++ Forumbot schrieb:

    Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Denn sowohl in der Beschreibung des C++ (Alle ISO Standards) Forums als auch in dem obigen Link steht doch sinngemäß "... oder bei Fragen zu boost". Und das hier ist ja quasi ne boost Frage.

    Erstens ist es keine boost-Frage, da du fragst, welches Framework für dich geeignet wäre und Boost einer der Kandidaten ist.
    Zweitens ist die Beschreibung so zu verstehen, dass es um technische Fragen zum Einsatz von C++ und Boost geht. Nicht um Fragen, ob Boost überhaupt das richtige Werkzeug wäre.



  • SeppJ schrieb:

    Erstens ist es keine boost-Frage, da du fragst, welches Framework für dich geeignet wäre und Boost einer der Kandidaten ist.
    Zweitens ist die Beschreibung so zu verstehen, dass es um technische Fragen zum Einsatz von C++ und Boost geht. Nicht um Fragen, ob Boost überhaupt das richtige Werkzeug wäre.

    Ok, wenn man es so betrachtet hast du recht 🙂

    Wollte nur nochmal nachfragen, für die Zukunft.



  • happystudent schrieb:

    Hm, Ok, werd mir dieses flex mal genauer anschauen, das kannte ich noch nicht. Antlr ist halt Java...

    Flex ist mehr oder weniger "Standard". Früher wars halt lex und yacc, jetzt eher flex und bison (neuere Implementierungen, aber ansonsten praktisch dasselbe). Vielleicht gibts da mittlerweile auch was neueres, glaub aber nicht. Will hier aber nichts falsches erzählen, weil ich die nicht wirklich mag und nur ab und zu in der Arbeit benutze, weil wir das schon seit zwanzig Jahren benutzen.
    Antrl hab ich paar mal mit C# benutzt. Fand ich viel angenehmer als lex/yacc. Das kann auch Generatoren für C++ generieren, aber die waren zumindest vor paar Jahren wohl tatsächlich noch nicht so gut. Ansonsten schreib ich Parser auch gern mal von Hand. Einen C++ Parser würde ich aber nur ungern schreiben, weder von Hand, noch mit einem der Tools.



  • Mechanics schrieb:

    Antrl hab ich paar mal mit C# benutzt. Fand ich viel angenehmer als lex/yacc. Das kann auch Generatoren für C++ generieren, aber die waren zumindest vor paar Jahren wohl tatsächlich noch nicht so gut.

    Klingt eigentlich ganz gut, werd ich mir auch mal näher anschauen.

    Danke auf jedenfall schonmal an alle für den Input, das hilft mir schonmal weiter 👍



  • happystudent schrieb:

    hustbaer schrieb:

    Äh.
    Ja?
    GCC und Clang verwenden auch hangeschriebene Parser.
    3x darfst du raten warum.

    Warum? Weil es gar keine IDEs sind und deswegen auch kein "Intellisense" haben? 😉

    Nein.
    Soweit ich weiss u.A. weil sie fähig sein wollten ordentliche Fehlermeldungen auszugeben.



  • hustbaer schrieb:

    Nein.
    Soweit ich weiss u.A. weil sie fähig sein wollten ordentliche Fehlermeldungen auszugeben.

    Ja, war nicht ganz ernst gemeint (was du gesagt hast gilt natürlich auch für die jeweiligen IDEs).

    Ich will nur fürs erste so simpel (dafür mit meinem jetzigen Kenntnistand machbar) anfangen, deswegen lass ich Fehlermeldungen erstmal weg. Also das ist jetzt erstmal nur als privates Hobby- und Lernprojekt gedacht, nicht um tatsächlich verwendet zu werden.



  • Mein Senf zum originalen Post:
    Wenn du einfach einen C/C++ Parser brauchst, schau dir Clang bzw. LibClang / LibTooling an.


Anmelden zum Antworten