2012-10-24 10 views
7

Kennt jemand eine Haskell-Bibliothek, die beliebige Bash-Skripte parsen kann?Haskell-Bibliothek zum Parsen von Bash-Skripten?

Eine oberflächliche Suche nach Hackage zeigt an, dass ein Paket bash für Schreiben Skripte genannt, aber ich sehe nichts für sie Parsen.

Im Grunde hatte ich gerade eine große Sammlung von Bash-Skripten auf mich geworfen, und ich würde gerne eine Code-Analyse darauf machen. Aber die erste Stufe ist offensichtlich in der Lage, dieses Zeug zu analysieren.

Ich weiß Bash sehr gut persönlich. Ich nehme an, ich könnte hinsetzen und durch die voluminöse Man-Seite führen, um die komplette BNF-Grammatik dafür zu bekommen. (Ich stelle mir vor, es ist sehr komplex, angesichts der langen und rückwärtskompatiblen Geschichte der Shell.) Ich habe mich gerade gefragt, ob jemand anderes diese Arbeit für mich bereits getan hat ...

+4

Viel Glück. Sie werden es brauchen, wenn Sie den Parser selbst schreiben wollen. – Satvik

+0

Ich denke, es wäre besser, wenn Sie versuchen würden, sich den Bash-Code anzuschauen und vom Parser dort zu arbeiten. Die Wahrscheinlichkeit, dass ein Haskell-Bash-Parser existiert, scheint weit entfernt zu sein. Es gibt mögliche Bibliotheken, die Sie nativ von Haskell verwenden könnten, um eine AST zu erhalten. Möglichkeiten: [libbash] (http://dev.gentoo.org/~qiaomuf/libbash.html); [jBash] (http://code.google.com/p/jbash/); [jemand anders möchte einen Parser schreiben] (https://bbs.archlinux.org/viewtopic.php?id=101893) usw. – Orbling

+0

Sind das Bash-Skripte oder Shell-Skripte? Weil die POSIX-Shell-Syntax einfacher ist und der Parsing-Algorithmus in der Spezifikation für opengroup beschrieben wird. – singpolyma

Antwort

4

Vielleicht erweitern language-sh.

Language.Sh ist eine Sammlung von Modulen zum Parsen und Manipulieren von Ausdrücken in Shell-Grammatik. Dies ist Teil eines größeren Projekts, shsh. Bitte beachten Sie, dass die API bis zur Version 1.0 etwas instabil ist.

Verwandte Themen