識別子にUnicodeを使う

Alloy Analyzerはアジャイルモデリングをサポートできるツールだと
思っているわけですが、現時点では識別子に日本語が使えません。
このままだと分析モデリングに使えない(と、会社の人が文句を言ってきた)。

コードを調べてみたら何のことはなかったので、改造しました。


要はAlloy.lexに以下を追加し、JFlexでCompLexer.javaを作りなおしただけです。

[ \t\f\r\n]                  { }

[:jletter:][:jletterdigit:]*                 { return alloy_id (yytext()); }  ←ココ!

. { throw new ErrorSyntax(alloy_here(" "), "Syntax error at the "+yytext()+" character."); }

これで、日本語の識別子名も使えるようになります。

sig ユーザ {
  ロールs : set ロール
}

sig ロール {
  権限s : set 権限
}

sig 権限 {}

run {}

ビルド済のjarファイルは、
http://groups.google.co.jp/group/fm-forum/filesにalloy4_JP.jarとして置いてあります。

まともに使えそうだったら本家にフィードバックしよう。