コロンの扱いが違う事の意味. for i = 1 to 10 : # 10 回加算 : t = t + a : next アプリケーションの仕様で、プログラムを一行に繋げて使用する必要がある場合は、 コロンを改行文字として扱った方が良い # a = a + 1 : b = b - 2 デバッグ時等、マルチステートメント行全体を注釈にして機能させないようにする 場合は、コロンを改行文字として扱わない方が良いこの設定が有効なのは注釈についてだけです。その他の箇所では、コロンは改行文字と見なされます。
# サンプルプログラム "sc_basic" のユーザステートメント # @print "結果 : ";result ↑ b_remark_colontype が 1 の時、このコロンが注釈の行末となってしまうので、 b_remark_ignorestr を 1 にしてダブルクォートで括られている範囲のコロン を無効にするエラーの回避だけでなく 、次のように注釈を複数行で記述するために使用する事もできます。
rem " 複数行コメント1 複数行コメント2 複数行コメント3 "ダブルクォートは必ず対になっている必要があります。
1 の設定では、ダブルクォートの個数に注意を払う必要があります。対になる範囲がプログラムの実効範囲に掛かってしまうと、「注釈文がエラーの原因」になってしまう可能性があります。注釈が問題になる例. 記述ミス等で、対になるダブルクォートを置き忘れる ↓ # @print "1 @print "2" @print "3" @print "4" ダブルクォートの範囲外でしか改行を認識しないため、 注釈文が次の行に繋がってしまう |
一度チェックを通ったものや、ラベルを使用しないもの等、信頼できる BASIC プログラムしか実行しない場合は、重複チェックを省略すると、翻訳に掛かる時間を短縮する事ができます。 |
テーブルが定数の場合は一度チェックすれば十分なので、デバッグ時以外はチェックしないようにすると、オーバヘッドを削減する事ができます。#ifdef _DEBUG #define USCHECK 1 #else #define USCHECK 0 #endif bas.b_us_check = USCHECK;関数StrCalc_BASIC を連続して実行するような場合に有効です。 この方法を用いる場合は、一度はデバッグモードで実行し、テーブルの正当性を確認しておく必要があります。 |
メンバ | タイミング |
fprologue | BASIC プログラム実行開始時に呼び出されます |
fevery | 各ステートメントを実行する直前に呼び出されます |
fepilogue | BASIC プログラムが正常終了した時に呼び出されます |
空白やタブ文字の除去は、基本機能として計算処理に組み込まれており、計算が行われる度に実行されます。b_removespace = 0 では、計算の度に空白の除去も行う. (1 + (23 * p a r a m)) / 2 → (1+(23*param))/2b_removespace = 1 の設定では、計算式内の空白を翻訳時に除いてしまう事で、空白除去処理を実質的に省略します。 フック関数で空白を区切り文字として扱う場合、b_removespace を有効にすると問題になる事がありますので、アプリケーションの仕様によっては注意が必要です。 2つの要素を空白で区切る仕様の時に b_removespace = 1 とすると、 空白が除かれる事で文字列が繋がってしまうので、識別できなくなってしまう param 12345 → param12345 |
b_srand 、random_seed 、b_ignore_subcnt 、fprologue 、fepilogue 、proc_exparam 以外の設定は、BASIC 実行中に変更しても処理には反映されません。 BASIC の設定は、基本的に BASIC 処理が完了するまで変更しないでください。 |