くいなちゃん2020年07月07日


プログラミング言語Kuin」の言語仕様13、コンパイルエラーについてです。

1Kuinコンパイルエラー

Kuinのコンパイルエラーは、16進数のエラーコードで表されます。
エラーコードが「0x00010000」以上「0x0001FFFF」以下なら字句構文解析で発生、「0x00020000」以上「0x0002FFFF」以下なら意味解析で発生、「0x00000000」以上「0x0000FFFF」以下ならその他の場所で発生したものになります。
Kuinで発生するコンパイルエラーの一覧は表1-1の通りです。
表1-1: Kuinコンパイルエラー
エラーコード メッセージ
0x00000001 オプション「オプション」の使われ方が正しくありません。
0x00000002 不明なオプション「オプション」が指定されました。
0x00000003 入力ファイル「ファイルパス」の拡張子は「.kn」でなければなりません。
0x00000004 ソースファイル名「ファイルパス」に使えない文字が含まれています。
0x00000005 ファイル「ファイルパス」が開けません。
0x00000006 ファイル「ファイルパス」が保存できません。
0x00000007 システムファイル「ファイルパス」が壊れています。
0x00000008 アイコンファイル「ファイルパス」が壊れています。
0x00000009 リソースファイルの数「リソースファイルの数」が多すぎます。 65535個以下でなければなりません。
0x00010001 同じスコープ内に既に同じ識別子「識別子」が存在します。
0x00010002 上位のスコープ内に既に同じ識別子「識別子」が存在します。
0x00010003 コメントの「{」に対応する「}」が存在しません。
0x00010004 文字リテラルや文字列リテラル中にタブ文字は記述できません。 エスケープシーケンス「\\t」を代用してください。
0x00010005 文字リテラルや文字列リテラル中では改行できません。 エスケープシーケンス「\\n」を代用してください。
0x00010006 識別子には使えない文字「文字」が記述されました。
0x00010007 識別子に正しくない形式で「@」が記述されました。
0x00010008 ソースファイル名の指定「ソースファイル名」に大文字が含まれています。
0x00010009 識別子に正しくない形式で「\\」が記述されました。
0x0001000A 識別子「識別子...」が長すぎます。 128文字以下でなければなりません。
0x0001000B 不正な形式のブロックもしくは文「識別子」が記述されました。
0x0001000C 関数属性には使えない文字「文字」が記述されました。
0x0001000D 関数属性「関数属性...」が長すぎます。 128文字以下でなければなりません。
0x0001000E 文字「文字」が記述されるべき箇所に、不正な文字「文字」が記述されました。
0x0001000F ブロック名」に対応する「end ブロック名」が存在しません。
0x00010010 関数以外のメンバ「メンバ名」をオーバーライドしようとしました。
0x00010011 関数および変数以外のメンバ「メンバ名」を公開しようとしました。
0x00010012 ブロック名」が「end ブロック名」ではなく不正な「end ブロック名」で閉じられました。
0x00010013 正しくない形式のメンバ「メンバ名」が記述されました。
0x00010014 引数以外の変数に不正な「&」が記述されました。
0x00010015 引数に初期化子「::」を記述することはできません。
0x00010016 メンバに初期化子「::」を記述することはできません。
0x00010017 const文には初期化子「::」を記述しなければなりません。
0x00010018 ブロックに対応する「end」が存在しません。
0x00010019 「end 名前」は不正な形式です。
0x0001001A ブロックと対応しない不正な「end 名前」で閉じられました。
0x0001001B 「if」ブロックで「else」節の後に不正な「elif」節や「else」節が記述されました。
0x0001001C 「switch」ブロックで「default」節の後に不正な「case」節や「default」節が記述されました。
0x0001001D 「try」ブロックで「finally」節の後に不正な「catch」節や「finally」節が記述されました。
0x0001001E ブロック名」ブロック以外で不正な「節の名前」節が記述されました。
0x0001001F 「switch」ブロックで「case」「default」「end switch」のいずれかが記述されるべき箇所にそれ以外が記述されました。
0x00010020 単語」が記述されるべき箇所に不正な「単語」が記述されました。
0x00010021 「不正な形式の演算子「演算子」が記述されました。
0x00010022 不正な形式のエスケープシーケンス「\\文字」が記述されました。
0x00010023 文字コード表記は「\\u」に続いて、数字または大文字アルファベットで4桁の16進数を記述しなければなりません。
0x00010024 文字リテラルもしくは文字列リテラルが閉じられていません。
0x00010025 文字リテラル「文字リテラル...」が長すぎます。 1文字分を記述しなければなりません。
0x00010026 文字リテラルが空です。 1文字分を記述しなければなりません。
0x00010027 括弧「(」に対応する「)」が、あるべき場所に存在しません。
0x00010028 数値リテラルに不正な形式の「数値リテラル」が記述されました。
0x00010029 数値リテラル「数値リテラル...」が長すぎます。 1024文字以下でなければなりません。
0x0001002A 16進数リテラルは「0x」から始めなければなりません。
0x0001002B 指数表記リテラルは「e+」もしくは「e-」から始めて指数部を記述しなければなりません。
0x0001002C 浮動小数点リテラル「浮動小数点リテラル」が解釈できませんでした。 値が大きすぎる可能性があります。
0x0001002D ビット型リテラル「ビット型リテラル」の接尾辞は「b8」「b16」「b32」「b64」のいずれかでなければなりません。
0x0001002E 整数リテラル「整数リテラル」がオーバーフローしました。
0x0001002F サブソースファイル「ファイル名」の親ファイルが見つかりませんでした。
0x00010030 サブソースファイル内でファイル「ファイル名」に対し「include」文を使うことはできません。
0x00020001 「main」関数が存在しません。 コンパイルするソースファイルに「func main()」を定義してください。
0x00020002 「main」関数の定義は「func main()」としなければなりません。
0x00020003 メンバもしくは変数「識別子」に、「me」を介さず直接アクセスしたか、関数を超えてアクセスしました。
0x00020004 ファイル名@」について、自身のソースファイルのグローバル要素を参照するときは、「@」の前のソース名を省略しなければなりません。
0x00020005 他のソースファイルの公開されていない要素「識別子」を参照しました。要素の先頭に「+」が付いている必要があります。
0x00020006 識別子「識別子」の定義が見つかりません。名前を間違えている可能性があります。
0x00020007 「alias 識別子」の定義が循環しています。
0x00020008 「class 識別子」の継承が循環しています。
0x00020009 オーバーライドする親クラスのメンバ「メンバ名」が見つかりません。
0x0002000A メンバ名「メンバ名」が親クラスのものと重複しています。 オーバーライドする場合は「*」を付けてください。
0x0002000B 関数以外のメンバ「メンバ名」をオーバーライドしようとしました。
0x0002000C オーバーライドしたメンバ「メンバ名」とアクセス修飾子が一致しません。
0x0002000D オーバーライドしたメンバ「メンバ名」と型もしくは引数名が一致しません。
0x0002000E オーバーライドが許可されていないメンバ「メンバ名」をオーバーライドしようとしました。
0x0002000F 列挙型「列挙型名」の要素「%要素名」の値はコンパイル時に定数にできる「int」型の値でなければなりません。
0x00020010 列挙型「列挙型名」の要素「%要素名」の値が「int」型の有効範囲を超えました。
0x00020011 列挙型「列挙型名」の要素「%要素名」の値「」が別の要素の値と重複しています。
0x00020012 列挙型内に存在しない要素名「%要素名」が記述されました。
0x00020013 グローバル変数「変数名」の値はコンパイル時に定数にできる値でなければなりません。
0x00020014 「const」文「定数名」の値はコンパイル時に定数にできる値でなければなりません。
0x00020015 変数「変数名」の型と値の型が一致しません。
0x00020016 「if」ブロックの条件式は「bool」型でなければなりません。
0x00020017 「elif」節の条件式は「bool」型でなければなりません。
0x00020018 「switch」ブロックの条件式は比較可能な型でなければなりません。
0x00020019 「case」節の型が「switch」ブロックの条件式の型と一致しません。
0x0002001A 「while」ブロックの条件式は「bool」型でなければなりません。
0x0002001B 「for」ブロックの初期値は「int」型でなければなりません。
0x0002001C 「for」ブロックの終値は「int」型でなければなりません。
0x0002001D 「for」ブロックの増減値は「int」型でなければなりません。
0x0002001E 「for」ブロックの増減値はコンパイル時に定数にできる値でなければなりません。
0x0002001F 「for」ブロックの増減値は「0」以外でなければなりません。
0x00020020 「catch」節の条件値はコンパイル時に定数にできる「int」型の値でなければなりません。
0x00020021 「throw」文の例外コードは「int」型でなければなりません。
0x00020022 戻り値を返す関数では「ret」文は値を返さなければなりません。
0x00020023 「ret」文の値の型が関数の戻り値の型と一致しません。
0x00020024 「do」文で最後に行う演算は「::」演算子や関数呼び出しなどの副作用のある演算でなければなりません。
0x00020025 文の名前」文にはブロック名を指定しなければなりません。
0x00020026 「assert」文の条件式は「bool」型でなければなりません。
0x00020027 型を記述すべきところに型以外が記述されました。
0x00020028 値が設定されるべき場所に値が渡されませんでした。
0x00020029 演算子の型が正しくありません。
0x0002002A 代入演算子の左辺値が代入可能な変数ではありません。
0x0002002B 「null」は値比較ができません。
0x0002002C 「enum」の要素名「要素名」から型が推測できませんでした。
0x0002002D 「null」は「~」演算子で連結できません。
0x0002002E 0で除算しました。
0x0002002F 「?(,)」演算子の条件式は「bool」型でなければなりません。
0x00020030 「?(,)」演算子の括弧内の2つの値は同じ型でなければなりません。
0x00020031 「#」演算子はクラスや「list」「dict」などの参照型にしか使えません。
0x00020032 「#」演算子に記述する配列の要素数の値は「int」型でなければなりません。
0x00020033 関数でないものを関数呼び出ししようとしました。
0x00020034 個数個の引数を受け取る関数呼び出しに個数個の引数が指定されました。 関数の型は「」です。
0x00020035 関数呼び出しの番号番目の参照渡しの引数に、参照を取れない値が渡されました。
0x00020036 関数呼び出しの引数の型が異なります。 番号番目の引数で「」を指定すべきところに「」が渡されました。
0x00020037 配列でないものに配列アクセスしようとしました。
0x00020038 配列の添字は「int」型でなければなりません。
0x00020039 参照先のメンバ「メンバ名」が存在しません。
0x0002003A 公開されていないメンバ「メンバ名」を参照しました。
0x0002003B 配列初期化子「[]」の要素の型が一致していません。
0x0002003C 値型の配列初期化子「[]」に「null」が記述されました。
0x0002003D 配列初期化子「[]」のすべての要素が「enum」の要素名のため、型が決定できませんでした。 いずれかの要素名をキャストして型を示してください。
0x0002003E 配列初期化子「[]」のすべての要素が「null」のため、型が決定できませんでした。 いずれかの「null」をキャストして型を示してください。
0x0002003F アクセスできない要素「識別子」にアクセスしました。
0x00020040 「excode」文の式は「[]char」型の定数でなければなりません。
0x00020041 「dict」型のキーは比較可能な型でなければなりません。
0x00020042 クラス「クラス名」のインスタンスは#演算子で生成できません。
1594115101jaf