@@ -116,10 +116,19 @@ ErrorDescription: dic_a.txt(3) : warning: 「存在しない名前」は、単
116116| ` ( ` を閉じ忘れた疑い(続きの行が ` * ` か ` @ ` で始まっている) | ` ( が閉じられていない可能性があります(続きの行が*か@で始まっています) ` |
117117| ファイルの最後が ` φ ` | ` ファイルの最後がφで終わっています ` |
118118| ` () ` が深すぎる(200 段を超える) | ` ()の入れ子が深すぎるので、これより内側は調べません ` |
119+ | ` if ` ` unless ` ` iflist ` ` switch ` ` nswitch ` ` choice ` の枝に、変数や単語を書き換える処理がある(Mc206-3以降) | ` 「if」は引数を先に展開するので、選ばれなかった枝も実行されます。枝に(set)があります。片方だけ実行したいときは、when か whenlist を使ってください ` |
120+ | 変数名の前か後ろに空白がある(Mc206-3以降) | ` 変数名「名前 」の前か後ろに空白があります。空白も含めた名前で登録されるので、空白なしの名前では読めません… ` |
121+ | ` (乱数…) ` の指定が変(` ~ ` が 1 つでない。Mc206-3以降) | ` 「乱数~1」は、乱数の指定が変です。「(乱数1~6)」のように、~を 1 つだけ書きます ` |
119122
120123- 「` (笑) ` のような、文字として表示したい ` ( ` ` ) ` 」は、実行時には名前の検索に失敗して、そのまま表示されます。lint はこれを「見つからない名前」として警告します。表示のつもりなら ` φ(笑) ` と書くと、警告も実行時の ` not found ` ログも出なくなります。
121124- ` ID ` が ` On ` で始まる、` http ` で始まる、` : ` を含む(` script: ` など)選択肢の飛び先は、イベントや URL として使われるので調べません。` OnChoiceSelect ` を定義しているときも調べません。
122125- ` \q[ラベル,ID,…] ` は 2 つ目、` \__q[ID,…] ` は 1 つ目を ID として読みます。` "…" ` で括ったラベルの中の ` , ` や、` \] ` は区切りとして扱いません。` \\q[…] ` のようにバックスラッシュを重ねたものはタグとして扱いません。ID に ` () ` を含むときは調べません。
126+ - ** ` if ` などの枝の処理** (Mc206-3以降):` if ` ` unless ` ` iflist ` ` switch ` ` nswitch ` ` choice ` は ssu の関数で、特殊形式の [ when] ( ../functions/when.md ) と違い、引数の ` () ` を先に全部展開します。このため、枝に変数や単語を書き換える処理があると、選ばれなかった枝でも実行されます(例:` (if、(R0)<=99、(set、満充電、0)) ` は、R0 がいくつでも ` 満充電 ` を 0 にします)。片方だけ実行したいときは ` when ` か ` whenlist ` を使います([ if] ( ../ssu/if.md ) )。
127+ - 処理とみなすのは、` set ` ` 変数の一括削除 ` ` 変数の一括コピー ` ` split_to ` ` 単語の追加 ` ` 追加単語の削除 ` ` 追加単語の全削除 ` と、本文に ` $ ` の行(または上の処理)がある文を ` (call、名前) ` ` (loop、名前、…) ` ` (vncall、名前) ` ` (名前) ` で呼ぶことです。値を返すだけの文を呼ぶものは報告しません。
128+ - 枝として調べるのは、` if ` ` unless ` ` nswitch ` は条件(先頭の引数)を除いたすべて、` iflist ` ` switch ` は結果(と末尾の「それ以外」)、` choice ` はすべての候補です。条件や比べる値の中の処理は、どの枝が選ばれても実行されるので報告しません。` when ` などの特殊形式の引数の中は、条件によって実行されないことがあるので数えません。
129+ - 呼ぶ名前に同じ名前の ` @ ` があるときは、単語群として読まれ、どの単語が選ばれるか分からないので数えません。
130+ - ** 変数名の空白** (Mc206-3以降):` $名前 =1 ` 、` $名前 【タブ】値 ` 、` (set、 名前、値) ` のように、名前の前か後ろに空白(半角・全角)があると、空白も含めた名前で登録されます。` (名前) ` では読めません。空白だけの名前(` $ 【タブ】 ` で空文字列の定数にする書き方)は、意図したものとして報告しません。
131+ - ** ` (乱数…) ` の指定** (Mc206-3以降):実行時と同じ分け方で、区切りの ` ~ ` が 1 つでない ` (乱数…) ` を報告します(実行すると ` ※ 乱数の指定が変です ※ ` と表示されます)。
123132
124133### notice
125134
@@ -130,11 +139,15 @@ ErrorDescription: dic_a.txt(3) : warning: 「存在しない名前」は、単
130139| ` (名前) ` の名前が見つからないが、実行時に名前が決まる変数などを作る記述が辞書にある | ` 「名前」は、単語群・文・変数・内蔵関数・SAORIのどれにも見つかりません。(実行時に名前が決まる変数や単語群を作る記述があるので、あるのかもしれません)… ` |
131140| ` ( ` に対応しない ` ) ` | ` 対応する ( が無い ) があります。文字としてそのまま表示されます ` |
132141| 行頭が半角の ` * ` ` @ ` ` $ ` | ` 行頭が半角の「*」です。この行は文の本文として扱われます(…) ` |
142+ | ` (set、名前、…) ` の名前が、単語群や文と同じ(Mc206-3以降) | ` 変数「名前」と同じ名前の単語群か文があります。トラブルの元なので避けましょう ` |
143+ | タブ区切りの代入が、自分自身に演算子をつないでいる(` $回数【タブ】(回数)-1 ` 。Mc206-3以降) | ` タブ区切りの代入は計算せず、式を文字列として入れます。自分自身を含むので、実行のたびに式が長くなっていきます… ` |
133144
134145- 飛び先の無い ` > ` は、実行しても、ログに ` not found ` と出て続きを実行するだけです。ひな形が用意する任意のフック(` >他のゴーストから変更 ` など、定義するかどうかは作者しだい)として使われることが多いので、` error ` にしていません。名前の書き間違い(末尾の空白など)は、上の warning で見つかります。
135146- ` > ` の飛び先は、空(ランダムトーク)と ` OnTalk ` は存在しなくても報告しません。` ≫ ` ` ≧ ` は検索なので調べません。飛び先に ` () ` を含むとき(実行時に決まるとき)も調べません。
136147- ` 1)りんご ` ` a) ` のように、` ) ` の直前が数字か英字のときは、箇条書きの番号とみなして報告しません。` φ(……) ` のように、` φ( ` で表示するつもりの ` ( ` と対になる ` ) ` も報告しません。
137148- 辞書の中に ` $(名前)=… ` ` split_to ` ` 単語の追加 ` のような、実行時に名前が決まる変数や単語群を作る記述があると、見つからない名前は notice になります(変数は辞書を読むだけでは無いと言い切れないため)。
149+ - タブ区切りの代入(` $回数【タブ】(回数)-1 ` )は式を計算せず、式の文字列をそのまま入れます(` 5-1 ` のようになり、実行のたびに長くなります)。計算に使うときに式として評価されるので動いてしまい、そう書いている辞書も多いため、notice にとどめます。計算した数を入れたいときは ` $回数=(回数)-1 ` と書きます。自分自身を含まない形(` $名前【タブ】(x)+1 ` )は、表示する文字(` [(x)/3] ` など)と区別できないので調べません。
150+ - ` (set、名前、…) ` の名前が単語群や文と同じ場合は、生成した名前に set する辞書などで数が多くなりやすいので、` $ ` の行(warning)より軽く notice にしています。
138151
139152## 名前の探し方(` (名前) ` の警告)
140153
0 commit comments