2008年2月15日金曜日

Advanced OptionのGLF Nodeについて

Generic Languages Framework(GLF)のTutorialページにあるAdvanced Optionsに関する記述ですが、最新安定版の6.0.1にはまだ実装されていません
そこで6.1M1を見てみるとありました


※6.0.1(--locale C)のAdvanced Optionsキャプチャ


※6.1M1のAdvanced Optionsキャプチャ

TokenViewやAST Viewなども6.1M1の「Window > Other」メニューの中にありました

2008年2月13日水曜日

ANTLRの文法ファイル(.g)をNetBeans Scriptingファイル(.nbs)に変換する

今回はANTLRの文法ファイルをNetBeans Scriptingファイルへ変換するこの記事を元に書いています
※本家でもNBSをNetBeans Schliemannとしたり、NetBeans Scriptingとしたりと混在していますが、ここでは後者を採用して説明します
なお、以降の手順で変換は正しく行われるかと思いますが、生成されたファイルがそのまま使えることを保証するものではありません
個人的には参考として見る程度のものと思っています
(変換元の文法ファイルの質によるかもしれませんが)

それではまず、ANTLRを入手します
ANTLRは最新(08年02月現在)の3.x系ではなく、2.x系を使います
ココからダウンロードして下さい
今回は"antlr-2.7.7.tar.gz"を使用して解説します
ダウンロードしたファイルを適当な場所に展開して下さい
(以降、展開したディレクトリを説明上"srcdir"とします)
$ tar xvfz antlr-2.7.7.tar.gz


次にNBSファイルへと変換するプログラムをダウンロードします
上記記事内の「Can you share the code of your NBS generator with us?」の項にあるリンクより"NBSCodeGenerator.java"ファイルをダウンロードして下さい
ダウンロードしたファイルは展開したディレクトリ内のantlrディレクトリへ移動します
$ mv NBSCodeGenerator.java ${srcdir}/antlr

次は記事中にある通り、antlr.Tool.javaを修正します
$ vi ${srcdir}/antlr/Tool.java

修正箇所は以下の通りです
(太字が追加(or 修正)箇所になります)

1. NBS生成のためのフラグを追加
/** Generate HTML vs code? */
boolean genHTML = false;
/** Generate NBS vs code? */
boolean genNBS = false;

2. 新たに"-nbs"引数を認める処理を追加
else if (args[i].equals("-nbs")) {
    genNBS = true;
    genDiagnostics = false;
    setArgOK(i);
}

3. "genNBS"がセットされた際に言語形式の"NBS"を返す処理を追加
if (genHTML) {
    return "HTML";
}
if (genNBS) {
    return "NBS";
    }

4. おまけにusageも追加します
(これは変換処理に関わる修正ではありませんので、追加は自由です)
System.err.println(" -html generate a html file from your grammar.");
System.err.println(" -nbs generate a nbs file from your grammar.");

antlr.Tool.javaの修正は以上ですが、先に追加した"NBSCodeGenerator.java"がmake実行時にコンパイルされるようmakeファイルを修正する必要があります
$ vi ${srcdir}/antlr/Makefile.in

修正箇所は下記の通りです
@abs_top_srcdir@/antlr/HTMLCodeGenerator.java ¥
@abs_top_srcdir@/antlr/NBSCodeGenerator.java ¥


以上で準備ができましたので、makeします
$ ${srcdir}/configure
$ make
$ make test # オプション
$ su root # オプション
$ make install

makeが正常に終了し、インストールが完了したら、早速変換を行ってみます
なお、インストールディレクトリは/usr/local以下として説明します

まずはCLASSPATHを通します
$ CLASSPATH="/usr/local/antlr/lib/antlr.jar":$CLASSPATH

"-nbs"オプションをつけて文法ファイルからNBSファイルへ変換させます
$ java antlr.Tool -nbs java.g
ANTLR Parser Generator Version 2.7.7 (20080213) 1989-2005
Generating JavaRecognizer.nbs
Generating JavaLexer.nbs

先述の通り、生成されたNBSファイルがそのままNetBeansモジュール開発の言語サポートで使っても文法エラーが頻発する場合が多いので、これを元にするか、参考にして新規でNBSファイルを作るのが現実的だと思います

2008年2月11日月曜日

Mercurialを使う

NetBeansのソース管理が完全にMercurialへ移行したということで、Mercurialを使って最新のソースを取得してみます
MercurialはPythonで作られていますので、まずPythonがインストールされているかを確認します

$ python -V
Python 2.5.1

Mercurialは2.3以上のPythonが必要とされているとのことですが、条件はクリアされているようです
次にMercurialをインストールします

$ sudo port install mercurial
$ hg --version
Mercurial Distributed SCM (version 0.9.5)

Copyright (C) 2005-2007 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

これでこのままコマンドラインにて最新ソースを取得できるのですが、せっかくですのでNetBeansのプラグインを利用してみようかと思います

メニューの「ツール」から「プラグイン」とクリックし、表示されたプラグインウィンドウの「使用可能なプラグイン」項目から「Mercurial」をチェックしてインストールします

インストール後、「バージョン管理」に「Mercurial」という項目が追加されています
このときMercurialのバージョンが0.9.5以降だと以下のようなメッセージが表示されます

とりあえずは気にせずに「はい」を選択します
(Wikiでは0.95の使用を推奨しているのですが…)

「Mercurial」のメニュー中から「Clone Other...」を選択します(初期状態ではこのメニュー以外は非アクティブかと思いますが)
選択するとリポジトリを設定するウィンドウが表示されます

"Repository URL"の項目に"http://hg.netbeans.org/main/"と登録します
次にローカルディレクトリを設定します

Mac特有の問題のようですが、ここでこのまま実行すると「abort: unknown encoding: X-MAC-JAPANESE, please check your locale settings」というエラーが発生し、うまくコピーされず終了します
いろいろ調べて、環境変数に"HGENCODING"などを設定するも改善されず…
取り敢えずは"~/.hgrc"に下記のように追加することで上記エラーがでなくなりました
$ vi ~/.hgrc

[ui]
username = hoge

[defaults]
add = --encoding=utf-8
clone = --encoding=utf-8
commit = --encoding=utf-8
init = --encoding=utf-8
pull = --encoding=utf-8
push = --encoding=utf-8
remove = --encoding=utf-8
revert = --encoding=utf-8
update = --encoding=utf-8

[extensions]

cloneに必要なものはclone項のみですが、その他も今後を考えて一応書いています
(別なもっとスマートな方法があればそちらに切り替えます)

ローカルコピーに時間がかかりますが、終了すると指定のディレクトリにソースが展開されています
以降ビルドなどはココを参照下さい

【08/09/14 追記】
Macportsからインストールした場合、Mercurialサポートのマージが正しく動かないようです
公式パッケージの利用、または環境変数を設定することで対応可能です
詳細はコチラを参照ください

2008年2月8日金曜日

NetBeans IDE 6.0.1 リリース

致命的バグの発見やサーバーのダウンなどで遅れていましたが、何とかリリースできたようです
例の如くスプラッシュのキャプチャです

翻訳作業、本当にお疲れさまでした
なお、Mac OSXをお使いの方でニーモニックが気になる方は別途日本語パックを適用下さい
適用方法はココココを参照下さい

2008年1月19日土曜日

Mac OS X でNetBeansに最新日本語パックを適用する

Mac用ニーモニック除去版を作成頂きましたので、適用します

まずは各最新版をダウンロードします
NetBeans 日本語版(開発版)はここから、ニーモニック除去した言語パックはここからダウンロードできます
適用のしかたは過去ログを参照下さい

適用前はこのようになっています


適用後は以下のようになります

2007年12月6日木曜日

第2子 リリース

あまり個人的なことはここに書くつもりはなかったのですが、昨日5日に第2子が生まれました
4日にNetBeans 6.0、5日に我が子と連日のリリースラッシュで大変ですが、勢いに飲まれないようがんばりたいと思います
ということで、日本語化チェック中で〜す

2007年12月4日火曜日

NetBeans IDE 6.0 リリース

スケジュール通り、6.0正式リリースされました
機能の詳細などはコチラ
を参照下さい

で、6.0正式リリースなので、例の如くキャプチャ


続いて、スプラッシュ


RCはあまり扱えないままでしたので、落ち着いたら、早く使い倒したいです