スクリプト言語、rexx のご紹介

元は IBM が開発したスクリプト言語である REXX が linux でも使えるようです。知ってはいたのですが、今まで無視してきました。

REXX は通常の手続き型言語で、構造化も可能です。REXX が得意としているのは、文字列関連の処理だと思います。C言語なんかだと、嫌になるような処理も、REXX の機能としてサポートしてくれていて、簡単に記述できます。

何でこんなものを持ちだしたかというと、lxde-rc.xml を読み込んで、キーバインドで実行するようにしている設定をエディタ等を使わずに一覧表示できないか、と考えていたからです。エディタでもビューアでも、一々検索などして該当箇所にジャンプするのは面倒です。

xml の勉強がてらC言語で作ってみるか、と思っていたのですが、正直何とも難しい。xml が出始めた頃、「こんなものの入出力ルーチンなんて書きたくもないわ!一般的になるはずがない。無視しておこう」と決めたのを思い出しました。jsonならまだ書く気になれそうです(実際に着手したらどう思うか分かりません)けれど。

それで、単にテキストファイルとして読み込もうと方針変更という名の妥協を決め、シェル・スクリプトで記述しようとしていて、REXX だったら簡単なのになぁと思ったのです。

で、調べてみました。現時点では Regina Rexx というものが、debian で使えるようです。インストールするには、
sudo apt-get install regina-rexx
です。私の環境では最新版(投稿時点3.9.1)は導入されませんで、3.6 5.00でした。最新版はsourceforgeからダウンロードできるようではありますが、私は確認もしていません。

linux 上での REXX は初めてで、REXX 自体使うのは久しぶりです。基本的な構文は思い出してくるものですが、入出力周りは、私が習得した当時の汎用大型計算機のものとは異なっているので、調べながら記述して結構時間がかかりました。なんだかんだで、英語のドキュメントを読むはめになりますね。

REXX だとこんな感じで記述できるんだ、というサンプルとして、ソースを掲載しておきます。コメントも結構つけましたので、見ればおおよそ処理内容は理解できると思います。

興味のある方は、ソースを見てみてください。試してみたいかたは、REXX をインストールしてみてください。
(REXX言語に対応した色分けは出来ていないので、一部、「アレ?」な場所はありますが、ご勘弁を)

ちなみに、substr/strip/parse var なんかが文字列操作で、特に parse var を私は気に入っています。文字列操作ではありませんが、sourceline と expose も好きです。expose を初めて知った時、これは他の言語にあるべきだと思った程です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA