読者です 読者をやめる 読者になる 読者になる

TECH-MICCHON.jar

Scalaを中心に技術的な話題を書きます。

jflex-scala の sbt plugin を作った話

sbt scala

JFlex とは

JFlex とは Java で書かれた構文解析器を生成するためのライブラリで、Javaのコードを生成します。

sbt-jflex-scala を作った動機

JFlex の fork の中で jflex-scala というものがあり、これは Scala のコードを生成してくれます。

github.com

これを sbt 上で利用するための sbt プラグインはいくつかあるのですが、どれもあまりメンテされておらず、動作しないため、この際新しく作り直しました。

3tty0n/sbt-jflex-scalaホスティングしてあります。

github.com

使い方

使い方は単純で

  • project/plugins.sbt に次の記述を追加
 addSbtPlugin("com.github.3tty0n" % "sbt-jflex-scala" % "0.1.1")
  • *.flex ファイルを src/main/flex に置く
  • $ sbt jflexGenerate

Yylex.scala が生成されます。

オプションで

jflexWithComple := true

とすると、コンパイル時に Yylex.scala を自動生成してくれます。

最後に

イマイチ需要はわからないけど、構文解析する人にとってはちょっと便利になるかもしれません。

この次は sbt plugin の作り方をまとめてみたり、 Elm の話もできたら良いと思っています。