6.78. kink/program/COMPILE_ERROR¶
6.78.1. compile_error型¶
compile_errorは、プログラムのコンパイルのエラーである。
compile_errorは次の属性からなる。
• Message: エラーメッセージのstr。
• From: エラーの開始位置のlocation。
• To: エラーの終了位置のlocation。
不変条件
From.program == To.program
From.pos <= To.pos
6.78.1.1. Err.message¶
messageは、ErrのMessage属性を戻す。
6.78.1.2. Err.from¶
fromは、ErrのFrom属性を戻す。
6.78.1.3. Err.to¶
toは、ErrのTo属性を戻す。
6.78.1.4. Err.desc¶
descは、プログラマのためにコンパイルエラーを叙述するstrを戻す。
例
:PROGRAM.require_from('kink/program/')
:LOCATION.require_from('kink/program/')
:COMPILE_ERROR.require_from('kink/program/')
:Program <- PROGRAM.new('foo.kn' 'Foo + @@ Bar')
:From <- LOCATION.new(Program 6)
:To <- LOCATION.new(Program 8)
:Err <- COMPILE_ERROR.new('unknown operator' From To)
stdout.print_line(Err.desc.repr) # => "unknown operator: [foo.kn L1 C7] Foo + -->@@ Bar"
6.78.1.5. Err1 == Err2¶
== 演算子、つまりop_eqメソッドは、Err1とErr2が、等しいMessage, From, To属性を持っているかどうかを戻す。
事前条件
Err2はcompile_errorでなければならない。
6.78.2. COMPILE_ERROR.new(Message From To)¶
newは、渡された属性を持つ新しいcompile_errorを戻す。
事前条件
Messageはstrでなければならない。
FromとToはlocation値でなければならない。
From.program == To.program
From.pos <= To.pos
6.78.3. COMPILE_ERROR.is?(Val)¶
is?は、Valがcompile_errorかどうかを戻す。