|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 10. Önişlemci > 10.2 Makrolar |
#DEFINE <AD> [<değer>]
#DEFINE <AD>(<p1>[, <p2> …]) <değer>
#UNDEF <AD>Fonksiyon benzeri bir makroda ( ada yapışık yazılır; nesne benzeri makroda
addan sonra boşluk, sekme ya da satır sonu gelir. Gövde, satır sonundaki \ ile sonraki satıra
devam eder; devam satırlarının ortak baştaki girintisi kırpılır. Aynı adı yeniden tanımlamak eski tanımı
siler ve uyarı verir; tanımsız bir adı #UNDEF etmek uyarı verir.
Makro çağrısı çıplak tanımlayıcıdır (büyük/küçük harf duyarsız) ve tarayıcı onu
gördüğü her yerde açar. #AD bir makro başvurusu değildir: satır başındaki
# yalnız yönerge başlatır ve bilinmeyen yönerge hatadır.
| Yazım | Ne yapar |
|---|---|
#<parametre> | Argümanı dizgiye çevirir (tırnaklar) |
## | Belirteçleri birleştirir |
%%<ad> | Adı açılmaktan kaçırır |
{$<ad>} | Bir makroyu ya da parametreyi dizgi sabitinin içinde açar; ad tanımlı değilse boş dizgi yazılır |
{$<ad>$} | Aynısı, ama ad tanımlı değilse adın kendisi yazılır |
#DEFINE MESAJLAR NS_MESAJLAR
'delete from {$MESAJLAR$}' --// 'delete from NS_MESAJLAR' (tanımsızsa 'delete from MESAJLAR')
'a{$TANIMSIZ}b' --// 'ab'
'a {$TANIMSIZ$} b' --// 'a TANIMSIZ b'{$<ad>} yalnız nesne benzeri makro ve parametre alır; fonksiyon benzeri bir makro
dizgi içinde açılamaz (hata). Açılan değerdeki tek tırnak ikilenir. Açılım çok satırlı dizgilerin devam
satırlarında ve q'…' dizgilerinde de yapılır. Aynı yazım derleyicinin ön tanımlı sabitlerini
(__FILE__, __LINE__ …, bkz. bölüm 8) de dizgi içine yazar.
{$<ad>$} özellikle NATIVE_SQL metnindeki tablo makroları için kullanılır:
dizgi içindeki çıplak makro adı açılmaz; bu biçim ise makro tanımlı olan derlemede değerini, tanımsız olanda
düz adı yazar.
Fonksiyon benzeri bir makro tam argüman sayısı ister; boş argüman için parantez içine boşluk konur. Makro açılımının özyineleme sınırı 100'dür.
... bir parametre adı olarak kabul edilir ama __VA_ARGS__ karşılığı
yoktur; değişken sayıda argüman alan makro yazılamaz.
| Makro | Anlamı |
|---|---|
__IVEDI__ | Yalnız motorun koşturacağı metinde, yani
#MODE EXECUTE'ta tanımlıdır; #MODE CONVERT TO ve #MODE PRECOMPILE'da
tanımsızdır. Kipten hesaplanır; betikten #DEFINE ya da #UNDEF edilemez (hata). |
__WINDOWS__, __LINUX__ | Platforma göre tam biri tanımlıdır |
__PLATFORM__ | 'windows' ya da 'linux' (tırnaklı dizgi sabiti) |
__NOSHELL__ | Betik tanımlar; tanımlıyken #SHELL* yönergeleri devre dışıdır (bkz. “Ortam ve kabuk yönergeleri”) |