Top(FrontPage)
トップページへ
[
一覧
|
検索
|
最終更新
] [
差分
|
履歴
]
ツール
ヘルプ
新規
開始行:
* この記事は何? [#k095082b]
AYAは、C like で整理された文法、単純な(レイヤーの薄い)...
強力なプログラミング能力という特徴から、C系の言語習得者に...
マニュアルを殆ど見ずとも使えてしまうSHIORIです。
しかし、その特徴が逆に、思わぬ罠となる事があります。
要するに私の過去の失敗メモです。~
その殆どはマニュアルをきちんと読んでいれば回避できたもの...
(文責:[[ひと:浮子屋]])
&color(Red){※以下の文章はAYA5について書かれたものです。YA...
* 基本の基本 [#h2a99a72]
- C と違って、関数で戻り値を返す際に return を使わない。
- 関数の戻り値はそれまでに出力された候補から選ばれる。
- 従って、何かの間違いで空文字が候補に入っていたりすると...
- それを防ぐには、 void や出力確定子 -- を有効利用できる。
* 文字列展開 [#c182b4f6]
- "" は文字列中の変数や関数を展開する。
- Cに慣れているとつい文字列リテラルは " で書きたくなるが...
- 但し、内部的には%を含まない文字列は、中間コード生成時に...
- "abc%(hemo)efg" は、'abc'+EVAL('hemo')+'efg' と書くのと...
- 従って、「たくさんの候補から択一する」ような関数の場合...
- 候補が決まってから EVAL で埋め込みの展開を行えばよい。[...
- 特別な理由が無い限り%()で範囲を明示すべきである。%だけ...
- "abc%hemoefg" はたぶん中間コード生成時に 'abc'+"%hemoef...
* 変数、演算 [#c7c211bb]
- 変数はグローバルとローカルがある。ローカル変数は _で始...
- グローバル変数は、SHIORIロード・アンロード時にファイル...
- 従って、保存する必要のないグローバル変数は ERASEVAR で...
- 変数の初期値は空文字である。「0または空文字」ではない。...
- 文字と数値の演算結果は、加算なら文字列、それ以外なら空...
- 従って、存在しない変数が数式に混じると結果は文字列か空...
- カウントアップしていくような変数は、最初に数値で初期化...
- 例えば i++ というコードが、上のロジックに従い "11111" ...
- 変数が数値で初期化されているかどうか迷うような場合は CV...
- ローカル変数のスコープは&color(Red){「現在、およびそれ...
- 上記仕様は、思わぬエラーを招く場合がある。次のコード例...
hogehoge{
// ここに _sum=0 が必要。無いとこの関数の結果は空文字
for _i=0 ; _i<10 ; _i++ {
_sum+=_i
}
_sum
}
- 比較演算 == で数値と文字列を比較した場合、結果は偽にな...
- 比較演算 == で未定義変数と '' を比較した場合、結果は真...
* フロー制御 [#h5fa73df]
- C言語の else if に近いのは elseif である。
- C言語の switch に近いのは、switchではなく case ~ when ...
- for _i = 1; _i < 11; _i++ というような表記で、_i ではな...
- よって、ループで凍ったら _ を注意して探せ。忘れがちなの...
* ゴーストテンプレート(aya_shiori3.dic) [#f6034599]
- OnAiTalk は AYAの独自イベント。OnSecondChangeを契機に a...
- チェインはゴースト側の辞書の、OnAiTalk内の条件分岐と、...
- よって、ゴースト側の辞書のOnAiTalkを無闇に書き換えると...
- res_reference0 は一見普通の変数だが、値を入れるとテンプ...
- つまり、値を入れるとコミュニケートが発動する。&color(Re...
- ghostexlist / ghostexcount は 本体の otherghostname 通...
- On_otherghostname と On_hwnd は aya_shiori3.dic でなく...
- 独自イベントを使う際、先頭が「On」で無い場合は、自動的...
- SAORIの戻り値は適切な型に型変換されて返る。文字列中のバ...
- その際の優先順位は CVINT→CVREAL→文字列 である。
* その他 [#sac398bf]
- SAORIのロードは初回に使う際、アンロードはSHIORIのアンロ...
- つまり、SSPでゴーストキャッシュが有効な場合、SHIORIがキ...
- ゴーストが終了した際に終らせる必要のあるSAORIは、UNLOAD...
- C言語の頭になっていると、関数名や変数名を、実行時にEVAL...
- ある変数の値に応じて、対応する関数を呼びたいのであれば...
- ある変数が %() を含む文字列である場合、それを後で展開し...
終了行:
* この記事は何? [#k095082b]
AYAは、C like で整理された文法、単純な(レイヤーの薄い)...
強力なプログラミング能力という特徴から、C系の言語習得者に...
マニュアルを殆ど見ずとも使えてしまうSHIORIです。
しかし、その特徴が逆に、思わぬ罠となる事があります。
要するに私の過去の失敗メモです。~
その殆どはマニュアルをきちんと読んでいれば回避できたもの...
(文責:[[ひと:浮子屋]])
&color(Red){※以下の文章はAYA5について書かれたものです。YA...
* 基本の基本 [#h2a99a72]
- C と違って、関数で戻り値を返す際に return を使わない。
- 関数の戻り値はそれまでに出力された候補から選ばれる。
- 従って、何かの間違いで空文字が候補に入っていたりすると...
- それを防ぐには、 void や出力確定子 -- を有効利用できる。
* 文字列展開 [#c182b4f6]
- "" は文字列中の変数や関数を展開する。
- Cに慣れているとつい文字列リテラルは " で書きたくなるが...
- 但し、内部的には%を含まない文字列は、中間コード生成時に...
- "abc%(hemo)efg" は、'abc'+EVAL('hemo')+'efg' と書くのと...
- 従って、「たくさんの候補から択一する」ような関数の場合...
- 候補が決まってから EVAL で埋め込みの展開を行えばよい。[...
- 特別な理由が無い限り%()で範囲を明示すべきである。%だけ...
- "abc%hemoefg" はたぶん中間コード生成時に 'abc'+"%hemoef...
* 変数、演算 [#c7c211bb]
- 変数はグローバルとローカルがある。ローカル変数は _で始...
- グローバル変数は、SHIORIロード・アンロード時にファイル...
- 従って、保存する必要のないグローバル変数は ERASEVAR で...
- 変数の初期値は空文字である。「0または空文字」ではない。...
- 文字と数値の演算結果は、加算なら文字列、それ以外なら空...
- 従って、存在しない変数が数式に混じると結果は文字列か空...
- カウントアップしていくような変数は、最初に数値で初期化...
- 例えば i++ というコードが、上のロジックに従い "11111" ...
- 変数が数値で初期化されているかどうか迷うような場合は CV...
- ローカル変数のスコープは&color(Red){「現在、およびそれ...
- 上記仕様は、思わぬエラーを招く場合がある。次のコード例...
hogehoge{
// ここに _sum=0 が必要。無いとこの関数の結果は空文字
for _i=0 ; _i<10 ; _i++ {
_sum+=_i
}
_sum
}
- 比較演算 == で数値と文字列を比較した場合、結果は偽にな...
- 比較演算 == で未定義変数と '' を比較した場合、結果は真...
* フロー制御 [#h5fa73df]
- C言語の else if に近いのは elseif である。
- C言語の switch に近いのは、switchではなく case ~ when ...
- for _i = 1; _i < 11; _i++ というような表記で、_i ではな...
- よって、ループで凍ったら _ を注意して探せ。忘れがちなの...
* ゴーストテンプレート(aya_shiori3.dic) [#f6034599]
- OnAiTalk は AYAの独自イベント。OnSecondChangeを契機に a...
- チェインはゴースト側の辞書の、OnAiTalk内の条件分岐と、...
- よって、ゴースト側の辞書のOnAiTalkを無闇に書き換えると...
- res_reference0 は一見普通の変数だが、値を入れるとテンプ...
- つまり、値を入れるとコミュニケートが発動する。&color(Re...
- ghostexlist / ghostexcount は 本体の otherghostname 通...
- On_otherghostname と On_hwnd は aya_shiori3.dic でなく...
- 独自イベントを使う際、先頭が「On」で無い場合は、自動的...
- SAORIの戻り値は適切な型に型変換されて返る。文字列中のバ...
- その際の優先順位は CVINT→CVREAL→文字列 である。
* その他 [#sac398bf]
- SAORIのロードは初回に使う際、アンロードはSHIORIのアンロ...
- つまり、SSPでゴーストキャッシュが有効な場合、SHIORIがキ...
- ゴーストが終了した際に終らせる必要のあるSAORIは、UNLOAD...
- C言語の頭になっていると、関数名や変数名を、実行時にEVAL...
- ある変数の値に応じて、対応する関数を呼びたいのであれば...
- ある変数が %() を含む文字列である場合、それを後で展開し...
ページ名: