[2122] Re:プログラミング言語を作る2章質問
投稿者:(ぱ)こと管理人
2018/04/15 23:14:00
>はじめまして。
はじめまして。読んでいただきありがとうございます。
>1点目:P.56で、エラーリカバリの実現として、mycalc.yファイルの書き換えとして
>lineのルールにerror CRの並びを追加しています。この通りにしてみたもののmycalcの
>動きに変わりはありませんでした。で質問ですが、この修正で意図したエラーリカバリ
>とは、本文直前の文の記述がある、「一度のコンパイルでできるだけ多くのエラーを
>見つけることではないこと」を指しているのでしょうか?つまり何らかの作用により
>yaccが出すメッセージを見やすくする対応のものでしょうか?
この修正は、その直前の記述である「ただ、電卓の場合、対話的に使うものですから、
入力ミスで即座に死んでしまうのはユーザにとって不親切でしょう」という
問題に対する対応です。
>それとも、mycalc.lにもともと実装されている、エラー出力lexical error後の
>exitを消しても、yyclearin;,yyerrok;の作用でError!Error!Error!の
>エラー表示に陥らなくなることを指して、エラーリカバリと呼んでいるのでしょうか?
よって、エラー時にexit()しなくなる、というのが目的です。
>2点目:P.74で、括弧対応の話で、私の環境ではmycalc.yの11行目、
>トークンの並びにLP,RPを追加しなくては動きませんでした。
>こちら11行目に追加することが、筆者の意図とした変更なのかよくわかっていません。
すみません、こちらはこれが私の意図した変更ですが、
p.74で「たったこれだけのことで~」と書いておきながら他の修正が要るというのは
問題ですね。正誤表に加えておきました。
ご指摘いただき、ありがとうございました。