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>