|
@@ -560,7 +560,7 @@ called \emph{parsing}\index{subject}{parsing}\python{\ and is studied in
|
|
|
chapter~\ref{ch:parsing}}.
|
|
|
\racket{This book does not cover the theory and implementation of parsing.
|
|
|
We refer the readers interested in parsing to the thorough treatment
|
|
|
- of parsing by \citet{Aho:2006wb}.}%
|
|
|
+ of parsing by \citet{Aho:2006wb}. }%
|
|
|
%
|
|
|
\racket{A parser is provided in the support code for translating from
|
|
|
concrete to abstract syntax.}%
|
|
@@ -995,7 +995,7 @@ combine several right-hand sides into a single rule.
|
|
|
|
|
|
The concrete syntax for \LangInt{} is shown in
|
|
|
figure~\ref{fig:r0-concrete-syntax} and the abstract syntax for
|
|
|
-\LangInt{} is shown in figure~\ref{fig:r0-syntax}.%
|
|
|
+\LangInt{} is shown in figure~\ref{fig:r0-syntax}. %
|
|
|
%
|
|
|
\racket{The \code{read-program} function provided in
|
|
|
\code{utilities.rkt} of the support code reads a program from a file
|
|
@@ -1450,7 +1450,7 @@ figure~\ref{fig:interp_Lint}.
|
|
|
[(Prim 'read '())
|
|
|
(define r (read))
|
|
|
(cond [(fixnum? r) r]
|
|
|
- [else (error 'interp_exp "read expected an integer" r)])]
|
|
|
+ [else (error 'interp_exp "read expected an integer: ~v" r)])]
|
|
|
[(Prim '- (list e))
|
|
|
(define v (interp_exp e))
|
|
|
(fx- 0 v)]
|
|
@@ -2975,7 +2975,7 @@ become local variables whose scope is the entire program, which would
|
|
|
confuse variables with the same name.}
|
|
|
%
|
|
|
\racket{We place \key{remove\_complex\_operands} before \key{explicate\_control}
|
|
|
-because the later removes the \key{let} form, but it is convenient to
|
|
|
+because the latter removes the \key{let} form, but it is convenient to
|
|
|
use \key{let} in the output of \key{remove\_complex\_operands}.}
|
|
|
%
|
|
|
\racket{The ordering of \key{uniquify} with respect to
|