Julia Advent Calendar 2017の5日目の記事です。今日は,去年の今頃開発を開始したAutoma.jlというパッケージを紹介しようと思います。ここでは,最新リリース版のAutoma.jl 0.4.0を元に記述しています。 Automa.jlとは Automa.jlは正規表現(regular expression)のドメイン特化言語(DSL: Domain Specific Language)からJuliaのコードを生成するパッケージです。正規表現はJuliaの標準ライブラリにもありますが,Automa.jlの最大の特徴は,正規表現を合成したりマッチングの途中でJuliaのコードを実行したりできる点にあります。これを使えば,正規言語であるファイルフォーマットのパースや,文脈自由文法などで書かれた言語のトークン化などができます。 実際のコードは以下のようになります。このコー