#include "mk.h"


// compile error.
const MK_CHAR *compileErrorMessage[] = 
{
/* 0 */ 	"There is no error. ", 

/* 1 */ 	"$1 is unidentified. ", 
/* 2 */ 	"$1 is unidentified. $2 is necessary. ", 
/* 3 */ 	"$2 was found after $1. $3 is necessary. ", 

/* 4 */ 	"$1 ($2) is already defined in $3. ", 

/* 5 */ 	"Succession relations of $1(class) are unjust. ", 
/* 6 */ 	"SuperClass $2 of $1 is undefined. ", 

/* 7 */ 	"$2 corresponding to $1 is not found. ", 

/* 8 */ 	"$2 is not found in the terminal of $1. ", 

/* 9 */ 	"An error occurred at the time of the compilation of the definition of $1 ($2). ", 
/*10 */ 	"An error occurred at the time of a compilation of the substance of $1 ($2). ", 
/*11 */ 	"An error occurred during analysis of $1. ", 

/*12 */ 	"I found $2 in the middle of $1. ", 

/*13 */ 	"A ceremony after the $1 operator is unjust. ", 
/*14 */ 	"A ceremony before the $1 operator is unjust. ", 

/*15 */ 	"Argument name $1 repeats. ", 

/*16 */ 	"$2 was found in the terminal of $1. ", 

/*17 */ 	"A format of $1 is unjust. ", 
/*18 */ 	"$2 to continue after $1 is dirty. ", 

/*19 */     "An error occurred during analysis of $1. The token following after that is $2, $3. ", 

/*20 */ 	"A mark was added to token $1 except the numerical value. ", 

/*21 */ 	"Unidentified letter $1 was found. ", 

/*22 */ 	"$1 : No such file. ", 

/*23 */ 	"There is internal error[$1:$2]. ",
};

#if 0
// compile error.
const MK_CHAR *compileErrorMessage[] = 
{
/*  0 */	"errorはありません。",

/*  1 */	"$1は不明です。",
/*  2 */	"$1は不明です。$2が必要です。",
/*  3 */	"$1の後に$2が見つかりました。$3が必要です。",

/*  4 */	"$1($2)は$3内で既に定義されています。",

/*  5 */	"$1(class)の継承関係が不正です。",
/*  6 */	"$1の基底クラス$2は未定義です。",

/*  7 */	"$1に対応する$2が見つかりません。",

/*  8 */	"$1の終端に$2が見つかりません。",

/*  9 */	"$1($2)の定義のコンパイル時にエラーが発生しました。",
/* 10 */	"$1($2)の実体のコンパイル時にエラーが発生しました。",
/* 11 */	"$1の解析中にエラーが発生しました。",

/* 12 */	"$1の途中で$2を見つけました。",

/* 13 */	"$1演算子の後の式が不正です。",
/* 14 */	"$1演算子の前の式が不正です。",

/* 15 */	"引数名$1が重複しています。",

/* 16 */	"$1の終端に$2が見つかりました。",

/* 17 */	"$1の書式が不正です。",
/* 18 */	"$1の後に続く$2が不正です。",

/* 19 */    "$1の解析中にエラーが発生しました。以降に続くトークンは$2, $3です。",

/* 20 */	"数値以外のトークン$1に符号が付加されました。",

/* 21 */	"不明な文字 $1 が見つかりました。",

/* 22 */	"$1がオープンできません。",

/* 23 */	"内部エラーです $1($2)。",

};
#endif

const MK_CHAR *linkErrorMessage[] = 
{
	"",
};

// vm error
const MK_CHAR *vmErrorMessage[] =
{
/* 0 */ 	"There is not error. ", 

/* 1 */ 	"Variable $1 is not defined in $2. ", 
/* 2 */ 	"Method $1 is not defined in $2. ", 
/* 3 */ 	"Class $1 is not defined. ", 
/* 4 */ 	"A while block corresponding to $1 is not found. ", 
/* 5 */ 	"There are too many arguments handed to method $1. ", 
/* 6 */ 	"I cannot access $1 symbol $2. ", 
/* 7 */ 	"I cannot access $1 method $2. ", 

/* 8 */ 	"It is internal error. A stack position was renewed in a $1 method. ", 
/* 9 */ 	"It is internal error. Unsupported type [$2:$1] was called. ", 
/*10 */ 	"The operand that I cannot use as a member was incorporated. ", 
/*11 */ 	"The nest of the method / block structure call is too deep. ",
/*12 */		"No super class defined in class $1.",
/*13 */     "Can not be assigned to the object with final type.",
};

#if 0
// vm error
const MK_CHAR *vmErrorMessage[] =
{
/*  0 */	"errorはありません。",

/*  1 */	"変数$1は$2内で定義されていません。",
/*  2 */	"メソッド$1は$2内で定義されていません。",
/*  3 */	"クラス$1は定義されていません。",
/*  4 */	"$1に対応するwhileブロックが見つかりません。",
/*  5 */	"メソッド$1に渡された引数が多すぎます。",
/*  6 */	"$1シンボル$2にアクセスすることはできません。",
/*  7 */	"$1メソッド$2にアクセスすることはできません。",

/*  8 */	"内部エラーです。$1メソッド内でスタック位置が書き換えられました。",
/*  9 */	"内部エラーです。サポートされていない型$1($2)が呼び出されました。",
/* 10 */	"メンバとして使用できないオペランドが組み込まれました。",
/* 11 */	"メソッド/ブロック構造呼び出しのネストが深すぎます。",
/* 12 */	"クラス$1のスーパークラスは定義されていません。",
/* 13 */	"final修飾されたオブジェクトへの代入はできません。",
};
#endif

const MK_CHAR *compileWarningMessage[] = 
{
	"",
};

const MK_CHAR *linkWarningMessage[] = 
{
	"",
};

// vm error
const MK_CHAR *vmWarningMessage[] =
{
	"",
};
