重ね重ね申しわけありません。
以下のコメントで「oku」様にご指摘いただいたとおり、MILの行番号カウントにバグがありました。
http://d.hatena.ne.jp/kmaebashi/20100810/p1#c1283752401
MILでは「#」から改行までがコメントなのですが、コメントの終わりの改行でst_current_line_numberをカウントアップしていません。そのため、エラーメッセージで、コメントの分だけ行番号がずれます。
これを直すには、lexicalanalyzer.cの222行目周辺、掲載誌上のリストで言えば33ページ左側のリストの以下の箇所を修正する必要があります。
case COMMENT_STATE: if (ch == '\n') { state = INITIAL_STATE; st_current_line_number++; /* これを追加 */ } break;
またしてもご迷惑をおかけしまして申しわけありません。お詫びいたします。