● リファレンス
ユーザステートメントの @ を取る
BASICPARAM 構造体のメンバb_naked_us を 1 にした場合、ユーザステートメントの先頭にアットマーク @ を付けなくても済むようになります。
例えば @print というユーザステートメントの場合、
for i = 0 to 9
@print i
next
このような使用方法になりますが、設定を 1 にすると次のような表現にする事ができます。
for i = 0 to 9
print i
next
この設定では @ の形式は使えなくなりますが、用途によっては @ を付けない方が統一感があり、より自然な記述になります。
なお、@ の有無は BASIC プログラム実行時のパフォーマンスに影響しません。
注意事項
次のような注意事項があります。
- 設定を 1 にした場合、@ を付けない事は絶対条件となります。@ の表現を使用すると STATUS_UNDEFINED_USERSTATEMENT を返します。
- ユーザステートメント名の比較分析に優先順が付きます。
- 通常ステートメントよりも低い優先順になります。そのため、通常ステートメントと同じ名前を使用する事ができなくなります。
また、b_us_check が 1 の場合、ユーザステートメントが通常ステートメントと同じ名前であるかチェックを行います(USERSTATEMENT 構造体の「ユーザステートメント名の正当性チェック」参照の事)。
- 代入式よりも高い優先順になります。そのため、ユーザステートメントと同じ変数名を使用した代入式が認識されなくなります。
設定が 0 の場合は、先頭の @ がユーザステートメントのシンボルと見なされます。@ 付きのステートメントは専用のステージで分析処理が行われるので、優先順の問題は発生しません。
設定が 1 の場合はシンボルが無いので、分析が終了するまで何の文字列なのか判別できません。そのため、通常ステートメントや代入式と同じステージで処理が行われます。
|