Pnutsを組み込む

日付・時刻表現の抽出・正規化とかしてたりするのだが、どうせなので YAML Parser と Pnutsスクリプトエンジンを組み込み、ルールをYAMLで書いて、正規化の部分をPnutsスクリプトで記述できるようにしてみた。日付・時刻周りのライブラリはjoda-timeを使用。
で、ルールがこんな感じになった。

  - patterns:
      - last (month)
      - Last (month)
    type: script
    params:
      format: yyyy-MM
      script: |
        if (ref.monthOfYear <= values[1]) ref.withDate(ref.year - 1, values[1], 1)
        else ref.withDate(ref.year, values[1], 1)

なに、このきもいの。
でも、さすがにスクリプトエンジンを組み込むとなんでもありだ。これで多分、ルールを全部ファイルに書けるな。
そういや、こういうのは BSF (Bean Scripting Framework) 経由にしたほうがいいのだろうか。いまのところ PnutsAPI を直接叩いているのだけど。