2003f Editorのリポジトリ内 に移転しました。
2003f Editor では、2003lk、tinka、centそれぞれの本家実装で、エラーにならないものは、同様にエラーにしないようにしている。
エラーにならないものの、推奨しない書きかたには警告を表示するようにした。ここでは実装した警告を挙げる
malkrz
がfi
の直後にない時- 命令よりも先に、
'c'i
または'i'c
のどちらかが明示的に指定されていない時 l'
、nll
またはxok
によるラベル定義で、ラベル名がキーワード名(kak
含)と重複する時l'
の直前が命令ではない('c'i
等の)時nll
の直後が命令ではない時- 定義されたラベルが、一度も使用されていない時
inj f0 f1 f1@
や同様のlat
latsna
での未定義動作を書いた時- (未実装)
kue
されたラベルが、他ファイルで一度も使用されていない時
- 変数宣言で、変数名が数字の時:
anax 1
- 変数宣言で、変数名が
kue
、xok
またはfi
の時:anax fi
- 変数宣言で、変数名が
/[FRVXa-z0-9'_-]+/
に一致しない時:anax あ
- 変数宣言で、配列のサイズが
+
か-
で始まる時:anax p@+10
- 変数宣言で、@が2つ以上含まれる時:
anax p@10@2
(p@10
として解釈される) - 変数宣言が、関数の中で先頭ではない時
- 変数名が重複している時:
anax p anax p
- 配列として宣言された変数を通常の変数として使用した時
- 通常の変数として宣言されたものを配列として使用した時
xok
で指定したラベル名が数字で始まる時、キーワードと重複する時、または/^(fi|fal(-rinyv)?|dosnud)\d+$/
に一致する時:xok krz
- 関数名が、キーワードと重複する時、または
/^(fi|fal(-rinyv)?|dosnud)\d+$/
に一致する時:cersva krz
- 関数の引数名がキーワードと重複する時:
cersva p krz
_fasal
関数が引数を持つ時:cersva _fasal p
- 関数の引数名が重複している時:
cersva p F F
- 関数呼出や
xok
で内部ラベル(dosnud1
など)を使用した時 - 関数呼出で与える引数の数が関数宣言と一致しない時
- (未実装) 値を返さない関数の返り値を使用しようとした時
重要度の低いもの
- 宣言された変数または引数が、一度も使用されていない時
- 宣言された関数または
xok
で指定したラベルが、一度も使用されていない時 rinyv
〜situv
の間に何もない時:rinyv situv
- (未実装)
kue
されたラベルが、他ファイルで一度も使用されていない時
本家のエラー処理が中途半端なもの
- 変数宣言で、配列のサイズが数字ではない時:
anax p@F
(本家ではjava.lang.NumberFormatExceptionになる) - 宣言されていない変数を使用した時 (本家ではkotlin.KotlinNullPointerExceptionになる)
- 関数宣言または
xok
で指定されたラベルが、内部ラベルと重複した時 (本家では2003lkパーサがラベル重複定義エラーを吐く)
C#実装のみ参照した。Rust実装は未確認
- サブルーチン名が
krzq
、kRzq
、achq
、roftq
または/[^\sFRVXa-z0-9,.?!':+|=$\\@&#"()《》_-]/
を含む時 xok
で指定された関数名がkrzq
、kRzq
、achq
またはroftq
である時fi
〜if
、cecio
〜oicec
、fal
〜laf
内でサブルーチンまたはxok
を宣言した時- サブルーチン名と
xok
で指定された関数名が重複した時
重要度の低いもの
- サブルーチンの中が空の時:
<p>
fi
〜if
またはol
、ol
〜if
、cecio
〜oicec
、fal
〜laf
の間に何もない時- 定義されたサブルーチンまたは
xok
で指定した関数が、一度も使用されていない時
malkrz
がfi
の直後にない時l'
、nll
またはxok
によるラベル定義で、ラベル名がキーワード名(kak
含、'i'c
、'c'i
含まない)または/^(lar(-sit)?)\d+$/
を含む時l'
の直前が命令ではない('c'i
等の)時nll
の直後が命令ではない時lar
とral
の対応関係が一致しない時、またはネストされた時 (ラベル重複定義やラベル未定義を引き起す場合はエラー、そうでない場合は警告)- 内部ラベル(
lar1
など)を使用した時 - 定義されたラベルが、一度も使用されていない時
inj f0 f1 f1@
や同様のlat
latsna
での未定義動作を書いた時- (未実装)
kue
されたラベルが、他ファイルで一度も使用されていない時