この文書は aescm 0.26 の README(README.ja, doc/readme.ja.html) です。
Aescm は汎用の文書にコードを埋め込むためのツールで、 フィルタとして、スクリプトでインタプリタの替りとして、 ハンドラCGIとして使うことができます。 現在のヴァージョン(0.26)はアルファ版なので、仕様の変更がいろいろありえます。 安定版は、Scheme 汎用の escm 1.1 です。 安定版の文書からこの版用の文書に変換する 2aescm も付属します。
Aescm の実体は、 XMLプリプロセッサ命令の「外の部分」を コードに変換するフィルタで、 子プロセスとして起動したインタープリタにコードを送って実行させています。 変換規則を柔軟に変更できるので、 お好みのスクリプト言語のお好みの実装系で使うことができます。
Schemeの処理系 Gaucheをデフォルトとして使うばあいや、 Gaucheがインストールされていず Guile を使うばあいのインストールは簡単です。
./configure make make install
ただし、デフォルトの設定では Schemeでしか使えません。 また Scheme でも 別の変換規則が必要な SCM を使うことができません。 いろいろな言語で使いたいばあいは、 configure に --enable-polyglot オプションを追加してください。 その他、 デフォルトの処理系の変更、 デフォルトの言語の変更については INSTALL (doc/intall.html) を参照してください。
デフォルトのインタープリタは
環境変数 ESCM_BACKEND
で変更することができます。
オプションまで含めて指定してください。
主要なSchemeの処理系については
doc/interpreter.html
にオプションの説明があります。
さらに--enable-polyglotオプション付きでコンパイルした
場合は、環境変数 ESCM_DEFAULT
でデフォルトの
言語を変更することができます。
ハンドラCGIプログラムとして、
また、CGIスクリプトの#!行でインタプリタの替りとして使うことができます。
ただし、
いずれの場合でもコードの中で
POSTメソッドによるパラメータを得ることが仕組み上できません。
そのため*escm-query-string*
(他の言語では $escm_query_string
,
EscmQueryString
など)に、
パラメータを束縛しています。
GETメソッドのときにも束縛しています。
なお、ハンドラCGIとして使うばあいは、 お使いの環境に合わせて /var/www/cgi-bin, /usr/local/apache/cgi-bin などにコピーするかハードリンクしてください。 接尾辞 .cgi を追加する必要があるかもしれません。 設定については Apache のドキュメント を参照してください。
--enable-polyglotオプション付きでコンパイルしたばあい、
変換するときに言語別の変換規則を設定ファイルから読み込みます。
それらは $(datadir)/aescm/lang
(例えば /usr/local/share/aescm/lang
)にインストール
されます。
設定ファイルを変更することで変換規則を変更できます。
またファイルを追加することで対応できる言語や処理系を増やすことができます。
設定ファイルの書式については
doc/gimmick.html を参照してください。