instaparseは文脈自由文法(CFG)による構文解析ライブラリです。ほぼそのままのEBNFと正規表現を使えます。ここでは手ごろなところでCSVの解析器を作ってみます。 leiningenプロジェクト依存モジュール 何はともあれproject.clj。最低限必要なライブラリは以下の二つ。 :dependencies [[org.clojure/clojure "1.5.1"] [instaparse "1.0.1"]] CSVのBNF CSVはRFC4180にBNFが記述されているのでこれを拝借します。 file = [header CRLF] record *(CRLF record) [CRLF] header = name *(COMMA name) record = field *(COMMA field) name = field field = (escaped / non