|
@@ -26,7 +26,7 @@
|
|
|
|
|
|
\def\racketEd{0}
|
|
|
\def\pythonEd{1}
|
|
|
-\def\edition{1}
|
|
|
+\def\edition{0}
|
|
|
|
|
|
% material that is specific to the Racket edition of the book
|
|
|
\newcommand{\racket}[1]{{\if\edition\racketEd{#1}\fi}}
|
|
@@ -3866,12 +3866,17 @@ callq print_int
|
|
|
\fi}
|
|
|
|
|
|
{\if\edition\racketEd
|
|
|
+%
|
|
|
There are two cases for the $\Tail$ nonterminal: \key{Return} and
|
|
|
\key{Seq}. Regarding \key{Return}, we recommend treating it as an
|
|
|
-assignment to the \key{rax} register followed by a jump to the
|
|
|
-conclusion of the program (so the conclusion needs to be labeled).
|
|
|
+assignment to the \key{rax} register followed by a jump to
|
|
|
+the label \key{conclusion}. Later, in Section~\ref{sec:print-x86},
|
|
|
+we discuss the generation of the \key{conclusion} block.
|
|
|
+In the meantime, the interpreter for \LangXVar{} recognizes a jump
|
|
|
+to \key{conclusion} as the end of the program.
|
|
|
For $\SEQ{s}{t}$, you can translate the statement $s$ and tail $t$
|
|
|
recursively and then append the resulting instructions.
|
|
|
+%
|
|
|
\fi}
|
|
|
|
|
|
{\if\edition\pythonEd\pythonColor
|