「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@841) [低] [未処理]
@841■ (#2638) エラーメッセージの指摘箇所がちがう - とけい (2016-09-12 03:40) /低 未処理
【症状】エラーメッセージの指摘箇所がちがう
【再現方法】

●AAA(aの,bに,cを)
 戻る
aのbにc.zをAAA //→エラー1(正常)
AAA(a,b,c.z) //→エラー2


エラー1(正常)
[エラー] com.nadesi.exe.nakopad.temp.nako1.bak(3): 記述ミスがあります。プログラムを見直してください。1個の語句が無意味です。命令の未定義、プラグイン不足の可能性もあります。(「(変数)c」助詞「」)

エラー2(aがおかしいって言ってる)
[エラー] com.nadesi.exe.nakopad.temp.nako1.bak(4): 記述ミスがあります。プログラムを見直してください。1個の語句が無意味です。命令の未定義、プラグイン不足の可能性もあります。(「(変数)a」助詞「」)


【要望】 c.zがおかしいって言ってほしかった
【バージョン】1.562
【その他】どういう解釈になってaのせいになったかも知りたい気がします。

(#2639) Re: エラーメッセージの指摘箇所がちがう - うぇいく (2016-09-12 08:52) /低 未処理
なんとなくわかりました。
定義が、「●AAA(aの,bに,cを)」となっている場合、

エラー1のケースでは、呼び出しの際の引数が
「aの」「bに」「c」「zを」と分解さたうえで、AAAの定義とマッチングされます。
結果、「c」というのが該当するものが無くて残るので、cがエラーです。
※「.」は区切りにはなるけど情報としては残らない区切り文字のようです。なので、「c.」は、引数が「c」で助詞は空になります。「,」と同じ扱い?

エラー2のケースでは、呼び出しの際の引数が、単純に、a,b,c,zの4つの引数を指定している扱いとなるようです。
なでしこの場合、関数型の呼び出し対しては右から引数を適用してゆくため、最後にaが残り、これがエラーになります。

ということのようです。
エラー2については、左端のaか、右端のzがエラーとなることはあっても、途中のcがエラーになるということはなさそうです。

(#2638)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能