home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / UTIL / HUNDOSHI-EDIT.sit / HUNDOSHI-EDIT / JGAwkとの連携動作 < prev    next >
Text File  |  1995-11-17  |  5KB  |  54 lines

  1. JGAwkとの連携動作
  2.  
  3. ■ JGAwkとは
  4.  
  5.  アルフレッド・エイホ、ピーター・ワインバーガー、ブライアン・カーニハンがUNIX上で開発した、テキストデータの整形インタプリタ言語がawkです。また、リチャード・ストールマンの率いるFSFのGNUプロジェクトで独自に拡張されたawkがgawkです。拡張awkにはnawkなどもあります。
  6.  GNUのawkであるgawkを田中良知氏が日本語で動作するように移植したのがjgawkです。そして、そのjgawkをマッキントッシュに移植したのが山下巌氏です。
  7.  以下、マッキントッシュの山下版jgawkをJGAwkと表現します。この表現はjgawkの実行モジュールそのもののネーミングと若干違い、山下氏もGNUを気遣ってか全部小文字のjgawkを採用しています。が、彼の開発したJGAwk Interfaceのネーミングから、ユーザに対するインターフェースとしてはJGAwkの方が適切ではないかといった私の勝手な判断でこうさせていただきます。
  8.  そもそもFSFはマイクロソフトとアップル社のGUI裁判以来、アップル社に敵対しているグループで、アップル社の製品はサポートしないと決めています。jgawkをアップルの製品上で使うのは道義上問題があるのかもしれませんが、使いたいというユーザがいるかぎりFSFは移植を制限するようなことはしません。FSFの正式リリースではないにせよ、案外多くのGNUツールがマッキントッシュに移植されています。
  9.  コマンドライン形式でのシェルを持たない(MPW環境はあるが一般的ではない)マッキントッシュでは、コマンドラインでの指定を前提とするツール(ソフトウエア・ツールズ、ユーティリティ、フィルタ)の移植はためらわれるものがあります。コマンドラインとGUIをいかに結び付けるかが大きな問題です。この問題を真面目に検討している人はそうそういないのかもしれません。山下氏はJGAwk Interfaceで一つの解を示しました。私も褌・エディットのプラグインフィルターで一つの解を示せたと思います。
  10.  プラグインフィルターの方法でJGAwkを使おうというのは二つの解の融合です。ただし、現在のところ私が単独に実装を試みました。これはJGAwkがAppleEventに対応していたからこそ可能な技術です。AppleEventでのAPI公開をしてくださっている山下氏に感謝します。
  11.  
  12. ■ インストール方法
  13.  
  14.  褌・エディットとJGAwkを連係動作させたいばあい、以下のインストールが必要です。
  15.   1.JGAwk(ファイル名はjgawk)を用意する。
  16.     場所は有効なボリュームならばどこでもかまいません。
  17.     褌・エディットが認識しなかったら、一度JGAwkを単独で起動してみてください。それでもダメなら同じボリュームにしてみましょう。
  18.   2.HUNDOSHI-EDITの入っているフォルダに
  19.     「JGAwk Scripts」という名前のフォルダを作る。
  20.   3.「JGAwk Scripts」の中にJGAwk向けスクリプトファイルを入れる。
  21.     スクリプトファイルは普通のテキストファイルです。
  22.  準備したフォルダとスクリプトは褌・エディットの起動時に認識され、Text-JGAwkメニューアイテムが有効になります。
  23.  ApppleEventを使いますので、System 7以降でのみ使えます。
  24.  jgawk2.15.2+1.0+1.2.5で動作試験をしました。
  25.  
  26. ■ ユーザ・インタフェイス
  27.  
  28.  さて、褌・エディットはプラグインでのテキスト変換と同じユーザ・インタフェイスでJGAwkスクリプトを扱うことができます。ただし、テキストを変換するためのスクリプトは自分で書くか誰かから貰うかするしかありません。
  29.  UNIXオリジナルのawkは基本的に以下の3つのファイルを扱います。
  30.   1.スクリプト(awkでのプログラム)
  31.   2.入力ファイル
  32.   3.出力ファイル
  33.  UNIXではデフォルトで2、3は標準入力(キーボード)と標準出力(ディスプレイ)につながっています。UNIXは全てのI/Oをファイルとして仮想的に扱うシステムなので、キーボードとディスプレイも特殊なファイルとして扱われます。
  34.  褌・エディットでは、1.のスクリプトをメニューに配置しました。そして、2.の入力ファイルはテキストの選択範囲に、3.の出力ファイルはその置き換えとなります。GUIとしての動作の統一から、入力を出力で置き換える形にしました。使い易さを考えてここに制約を設けたわけです。現実には変換した文書を別名で保存するというやり方が使えますので、実用上問題はないでしょう。
  35.  テキストを選択しておいてText-JGAwk-スクリプト名でメニューからJGAwkスクリプトを選ぶと、選択されたテキストは各スクリプトに合わせた変換をされて置き換えられます。自動的にせよJGAwkを毎回起動するのがわずらわしいのですが、これはしかたがないようです。
  36.  
  37. ■ パイプ
  38.  
  39.  JGAwkでの変換もプラグインによる変換と同列にパイプで連結できます。入力をソートした後にJGAwkで加工するなんてこともできます。
  40.  ただし、JGAwkスクリプトとプラグインは名前でのみ検索しますので、同じ名前があったばあいプラグインが優先されます。
  41.  また動作上の制限により、複数のJGAwkスクリプトをパイプで連結することはできません。原理的にできないはずはないのですが、実際にはできていません。パイプはJGAwkスクリプトと他のフィルターを連結するためにのみお使いください。
  42.  
  43. ■ 最後に
  44.  
  45.  世の中から文字がなくならないかぎり、テキスト加工の要求はなくなりません。マッキントッシュは、ことテキスト加工に関しては脆弱な環境だといわれています。画像データの加工が得意な分野であることと対照的です。
  46.  ワープロでは各アプリケーションが独自にマクロを準備するという形で、ユーザのテキスト加工要求の受け皿にしています。これはこれで必要なことですが、最終的な逃げ道がないことも事実です。各アプリ間でマクロの使い回しは絶対にできません。ましてや異機種間でなんてのはほとんど例外もいいところです。
  47.  コマンドラインを持たないマッキントッシュでソフトウエア・ツールズの考え方がどこまで通用するかわかりませんが、まあ、なんとかやっていきたいねってところです。
  48.  
  49.  
  50. 1995.08.24 - 25
  51. 1995.11.17
  52. OSTRA / Takeshi Yoneki
  53. Nifty-Serve : GCC01675
  54.