URL: https://www.overclockers.at/coding-stuff/s_wie_baue_ich_einen_parser_159810/page_1 - zur Vollversion wechseln!
Hallo!
Hat von euch schon mal jemand einen Parser gebaut? Ich muß eine Metasprache parsen, die eine Klassenstruktur beschreibt.
Das blöde dran ist das Parsen. Entweder schreibe ich selbst einen Parser (Keine Ahnung, wie das richtig geht? Tausende if-then-else Konstrukte?) oder ich verwende eine oder mehrere dieser Parser-Bibliotheken (Lex, Yacc, ?). Aber auch da hab ich keine Ahnung, wo ich anfangen soll. Gibts da irgendwelche Infoquellen für Anfänger auf dem Gebiet? Google findet zwar massig Infos, aber so ein richtig gut brauchbares Anfänger-Tutorial hab ich nicht gefunden.
Das ganze passiert übrigens in C++.
Hm.. bräuchte das eigentlich auch momentan 
http://www.antlr.org/
Ich selbst habs zwar noch nicht verwendet, aber ANTLR ist sehr verbreitet, mächtig und gut dokumentiert.
da muss man natürlich auch ein wenig werbung für die uni linz machen
http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/
Zitat von Ecraftda muss man natürlich auch ein wenig werbung für die uni linz machen
http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/
nach was hast du im google gesucht?
ich wuerds mal mit "formale sprachen und compilerbau" versuchen. wir haben im 2. semester verschiedene dinge in dieser richtung implementiert.
was bei jeder analyse wichtig ist, ist zu beginn eine grammatik fuer die sprache festzulegen. somit brauchst du auch ned tausende if-konstrukte 
hab mit antlr und java einen parser geschrieben - am anfang steht man ehrlichgesagt ziemlich alleine da und die doku ist auch net gerade das wahre (aber auf jedenfall noch besser als von den anderen parser frameworks). aber mit der zeit funktioniert das ganze eigentlich recht gut und es geht dann recht schnell voran.
wie wärs mit boost::spirit?
Im Moment spiel ich mich grad mal mit Lex und Yacc, hab dieses Tutorial gefunden
http://ds9a.nl/lex-yacc/cvs/lex-yacc-howto.html
und arbeite grad danach. Ein passendes Lex-File für meine Syntax hab ich schon, die Grammatikbeschreibung im Yacc versuch ich morgen. So schwer scheint das nicht zu sein, aber Überraschungen kanns immer geben... Danke auf jeden Fall für die Tips, werds mir trotzdem anschauen, vielleicht gehts ja noch einfacher :-)
Zitat von SYSMATRIXwie wärs mit boost::spirit?

Hmm.. noch ein Tutorial, diesmal für Bion++ und Flex++
http://www.oneder.de/content/view/24/28/lang,de/
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026