Parser-Generator, der C # mit einer BNF-Grammatik ausgibt? [geschlossen]

8

Ich suche nach einem Werkzeug, das in der Lage ist, einen Parser (in C #) zu erstellen, wenn ich ihm eine BNF-Grammatik gebe (zB Ссылка )

Existiert ein solcher Generator?

    
ilitirit 30.09.2008, 15:32
quelle

5 Antworten

12

Normalerweise sind BNF-Grammatiken zu zweideutig. ANTLR wird wahrscheinlich gut für das sein, wonach Sie suchen.

    
leppie 30.09.2008, 15:35
quelle
13

Das Visual Studio SDK wird bereits mit Tools für die Generierung von Lexer und Parser ausgeliefert. Diese heißen MPPG und MPLex und sind Teil des Managed Babel Pakets. Während die Absicht, sie mit dem SDK zu bündeln, darin besteht, Spracherweiterungen für Visual Studio zu entwickeln, sind sie perfekt zum Erzeugen allgemeiner AST-emittierender Parser geeignet.

MPLex und MPPG basieren auf GPLEX und GPPG (Projekte der Queensland University of Technology) und werden in ähnlicher Weise wie Lex und Yacc verwendet. Das SDK enthält auch MSBuild-Aktionen, um die Parser-Generierung zu einem Teil des regulären Build-Prozesses zu machen.

Hier ist ein Screencast, der MPLex und MPPG in Aktion zeigt:
Ссылка

    
Tormod Fjeldskår 13.04.2009 21:14
quelle
11

Sie müssen das BNF ein wenig optimieren, aber TinyPG ist ein tolles Werkzeug.

    
Jonathan C Dickinson 01.10.2008 11:18
quelle
3

Sieh dir auch Irony an:

Ссылка

scheint sehr vielversprechend

    
Gian Marco Gherardi 18.10.2011 20:54
quelle
2

IronMeta ist eine C # -Implementierung von Alex Warths OMeta ; es ist ein Packrat PEG (Parsing Ausdruck Grammatik; verwendet voreingenommene Wahl), so dass Grammatiken sauberer sein können, als wenn Sie ein YACC-ähnliches LALR-System verwenden.

    
Kevin Kelley 04.12.2012 16:54
quelle

Tags und Links