ECMAScript でマクロを

「ECMAScript でマクロを -Java による ECMAScript エンジン、FESI-」
掲載 『JAVA PRESS』 Vol.5
概要 Java で実装された ECMAScript エンジンを使ってマクロ機能を実装する方法を紹介。

C/C++ などに比べて「柔軟性の高いプログラムが書きやすい」 と言われる Java ですが、ユーザ側から見た柔軟性の高さを増すには、 やはり一苦労することになるはずです。多種多様なユーザのニーズに応えるには、 機能を手軽に追加・修正する機構を用意しなければならないからです。

そこで本稿では、 100% Pure Java で実装された ECMAScript エンジンである FESI を使って、 アプリケーションにマクロ機能を追加する手法を紹介します。これによって、 最低限の労力で最大限の柔軟性が得られるのです。

ソースコード

記事に掲載されたソースコードです。記事を書いた後に少しだけ修正しました。 いずれも、文字コードはシフト JIS、改行コードは CRLF です。

リスト 1: ScriptableEditor.java
Java で実装されたマクロの使えるエディタ。これを改造するだけで、 それなりに柔軟性の高いエディタが作れてしまうはずです。
リスト 2: InsertDate.es
ScriptableEditor で使えるマクロの例。現在の日時を挿入します。
リスト 3: jpre.java
FESI を利用した「プリプロセッサもどき」です。

関連ウェブサイト

ECMA [英語]
ECMAScript の仕様を作成している、ヨーロッパの機関。ECMAScript の 仕様書 (ECMA-262) は ここから。また、ECMAScript のコンポーネント化に関する 仕様 (ECMA-290) も あります。
FESI [英語]
インタプリタ「FESI」の公式サイト。最新版のバイナリ & ソースが 入手できます。
FESI ドキュメンテーション 日本語訳 [当サイト内]
筆者が FESI の添付ドキュメンテーションを独自に 訳したものです (少し古いです)。


Presented by 椙村敦史 (夏鰯) <sardine@toyfish.net>