Mir wurde geraten, einen Parser-Generator zu verwenden, um einen Parser für meine domänenspezifische Sprache zu erstellen.
Idealerweise würde ich gerne einen objektiven C-Parser ausgeben und BNF-Eingaben machen, um die Sprache zu beschreiben.
Es scheint sehr wenig Auswahl zu geben. Ist es möglich, einen der populäreren Parsergeneratoren mit dem Ziel C zu verwenden?
Danke!
Code-Generierung ist nicht der "wahre Weg" in dynamischen Sprachen wie Objective-C. Alles was durch einen Parser-Generator erreicht werden kann, kann zur Laufzeit erreicht werden. Ich würde vorschlagen, dass Sie etwas wie ParseKit ausprobieren, das eine BNF-ähnliche Grammatik verwendet und Ihnen verschiedene Delegate-Hooks zur Verfügung stellt, die Sie implementieren können Konstruiere deinen Parser.
Weitere Einzelheiten finden Sie in diesem Tutorial .
Es gibt (natürlich) Ihre erwarteten Antworten auf Dinge wie Bison oder YACC oder was auch immer, aber wenn Sie eine native Objective-C-Lösung wollen, gibt es das Paar, das bereits erwähnt wurde. (Hammer und ParseKit) Eine andere, die ich kenne, ist "CoreParse": Ссылка
Sie könnten sicherlich jeden der C-basierten Parser-Generatoren verwenden, wenn Sie damit vertraut sind. Ein weiterer Objective-C-Laufzeitparser ist Hammer vom unbändigen Rob Rix.
Tags und Links objective-c parsing programming-languages compiler-construction parser-generator