Top/マニュアル/文法/8.プリプロセス
  トップページへ   [ 一覧 | 検索 | 最終更新 ]   [ 差分 | 履歴 ]

#navi(マニュアル/文法)

#contents

*プリプロセス [#m573754f]
プリプロセスは辞書ファイルを読み込んでいる段階で実行される命令です。

***#define [#y197e4c0]
辞書ファイルから読み込んだ(パース前の)生の文字列に対して、直接文字列置換を実行します。
#code(aya,nooutline,nolink,nonumber){{
#define before after
}}
とすると、これを記述した行より後ろにbeforeが見つかるたびに、それがafterへ置きかえられます。~
#define の有効範囲は、宣言した次の行から、そのファイルの終端までです。
置換は記述順に行われますので、先に変換しておきたいものを先に書いてください。~

***#globaldefine [#r4820e57]
#code(aya,nooutline,nolink,nonumber){{
#globaldefine before after
}}

機能は #define ディレクティブと同じです。ただし、有効範囲が異なります。~
~#globaldefine を宣言すると、次の行以降の全ての範囲(その後に読み込まれる辞書ファイルも含む)で有効になります。
たとえば最初に読み込む辞書ファイルの先頭に #globaldefine を記述すると、その効果はすべての辞書ファイルに及ぶことになります。

~#defineが先に処理されます。。#globaldefine は、#define 置換のあとで実行されます。

#code(aya,nooutline,nolink,nonumber){{
#globaldefine tea green
#define tea milk

"teacup"
}}
置換結果は"milkcup"となります。

***__AYA_SYSTEM_FILE__ [#p78b43cf]

[YAYA Tc543-1より]

現在実行中のファイルの(DLLからの)相対パスを調べることができます。~
動きは #define __AYA_SYSTEM_FILE__ された時と同じになります。

#code(aya,nooutline,nolink,nonumber){{
"__AYA_SYSTEM_FILE__"
}}
置換結果は、たとえば"aya_aitalk.txt"となります。

***__AYA_SYSTEM_LINE__ [#f5bed5b7]

[YAYA Tc543-1より]

現在実行中のファイルの何行目かを調べることができます。__AYA_SYSTEM_FILE__ と仕組みは同じです。

#navi(マニュアル/文法)