Frage

Ich habe auf die folgende F77 yacc Grammatik gestolpert: http://yaxx.cvs.sourceforge.net/viewvc/yaxx/yaxx/fortran/fortran.y?revision=1.3&view=markup .

Wie kann ich einen Fortran 77 Parser aus dieser Datei Glücklich ?

Warum gibt es einige C? / C ++? Code in dieser .y-Datei?

UPDATE: Vielen Dank für Ihre Antworten

!

Ich habe eine Zeit lang mit zwei frischen Ansätzen spiele jetzt:

  1. Extrahieren und modifiying die Parser aus der Code-Paketquelle mit einem Papier gebündelt betitelten Parametric Fortran ,
  2. eine Grammatik von Grund auf mit Hilfe des Schreibens BNFC .

Ich habe beide bekam bereits einfache Code Auszüge zu analysieren. Ich werde Leute halten in der wissen sollte etwas in die Existenz in diesem Jahrhundert nutzbar kommen ^ __ ^“hehe.

P / S: Möchten Sie sehen, ob ich genug Schwung auf meinem eigenen sammeln konnte ein Projekt für einen automatische Differenzierung Motor einzuleiten, um ein binär nur zu ersetzen, die wir für die Zeit davon abhängen, zu sein. Für Unterhaltung in der Anfangsphase: Ich beobachte Liebe Shuffle ! Es ist ein sehr angenehmes J-Drama! Sehr empfehlenswert ...

War es hilfreich?

Lösung 4

Verwenden Sie BNFC und Ihre eigene Grammatik von Grund auf neu schreiben! BNFC wirkt Wunder und Sie könnten Ihr Parsing genau das tun, wie Sie wünschen.

Andere Tipps

Die C ist die semantische Aktion zur Verringerung des Stapels, wenn die Syntax eingelesen. Diese Aktionen in C sind, weil die Definition für Bison / Yacc vorgesehen ist, die eine Datei C-Quelle erzeugt.

Wenn Sie möchten, Glücklich, Hafen der BNF zur glücklichen Definition Syntax verwenden und Ihre Semantik in Haskell schreiben.

Nur die Spitze des Eisbergs für so nützlich etwas zu bekommen.

Wenn Sie eine Kopie noch nicht haben, investieren in die Dragon Book (Compiler: Principles, Techniques & Tools von Aho, Lam, Sethi, Ullman - Pearson)

Warum die anderen Antworten wahr sind im allgemeinen Sinne, dass Sie benötigen, um Ihre eigenen Handlungen schreiben etwas Sinnvolle der Yacc Definition, die Sie tatsächlich verbunden zu tun, um nicht über alle Aktionen mit den Grammatikregeln zugeordnet. Was sie tut, ist, dass es die yyerror Funktion und einen Code zum Extrahieren von Werten aus yylval basierend auf dem Token-Typ definiert.

Wenn Sie keine Ahnung, was yyerror / yylval sind über Sie einen Bison / flex Tutorial lesen sollte. Der Drachen Buch ist auch eine gute Ressource, wenn Sie mehr ernst damit sind. Es gibt auch einige ausgezeichnete Handreichungen von einem Stanford-Kurs auf Compiler um den Net floating, die auf dem Buch basiert.

Sie erhalten einen AST müssen darauf aufbauen kann in äquivalenter Weise an die C-Fragmente in der Yacc-Datei aufgebaut werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top