Frage

Können wir die GHC-API oder etwas anderes verwenden, um nicht Textquellmodule, sondern AST-Ausdrücke zu laden, ähnlich wie haskell-src-exts Exp type ?Auf diese Weise können wir Zeit für die Codegenerierung und -analyse sparen.

War es hilfreich?

Lösung

Ich glaube nicht, dass die GHC-API eine AST-Schnittstelle verfügbar macht (könnte jedoch falsch sein), aber Template Haskell.Wenn Sie Ausdrücke mit der Language.Haskell.TH Exp-Struktur erstellen, können Sie Funktionen / Deklarationen erstellen und diese mithilfe der $(someTHFunction)-Syntax verwenden.

Eine ziemlich große Einschränkung ist, dass TH nur zur Kompilierungszeit ausgeführt wird, sodass Sie alles vorab generieren müssen.Wenn Sie TH zur Laufzeit verwenden möchten, müssen Sie die Vorlage haskell AST hübsch ausdrucken und dann die GHC-API für die resultierende Zeichenfolge verwenden.

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