|
@@ -8943,15 +8943,24 @@ the \code{not} operator and comparison operators must be atomic.
|
|
|
form executes the statements $ss$ and then returns the result of
|
|
|
expression $e$.}
|
|
|
|
|
|
-Add cases to the \code{rco\_exp} and \code{rco\_atom} functions for
|
|
|
-the new features in \LangIf{}. In recursively processing
|
|
|
-subexpressions, recall that you should invoke \code{rco\_atom} when
|
|
|
-the output needs to be an \Atm{} (as specified in the grammar for
|
|
|
-\LangIfANF{}) and invoke \code{rco\_exp} when the output should be
|
|
|
-\Exp{}. Regarding \code{if}, it is particularly important
|
|
|
-\emph{not} to replace its condition with a temporary variable, because
|
|
|
-that would interfere with the generation of high-quality output in the
|
|
|
-upcoming \code{explicate\_control} pass.
|
|
|
+\racket{Add cases to the \code{rco\_exp} and \code{rco\_atom}
|
|
|
+ functions for the new features in \LangIf{}. In recursively
|
|
|
+ processing subexpressions, recall that you should invoke
|
|
|
+ \code{rco\_atom} when the output needs to be an \Atm{} (as specified
|
|
|
+ in the grammar for \LangIfANF{}) and invoke \code{rco\_exp} when the
|
|
|
+ output should be \Exp{}.}
|
|
|
+%
|
|
|
+\python{Add cases to the \code{rco\_exp} function for the new features
|
|
|
+ in \LangIf{}. In recursively processing subexpressions, recall that
|
|
|
+ you should invoke \code{rco\_exp} with the extra argument
|
|
|
+ \code{True} when the output needs to be an \Atm{} (as specified in
|
|
|
+ the grammar for \LangIfANF{}) and \code{False} when the output
|
|
|
+ should be \Exp{}.}
|
|
|
+%
|
|
|
+Regarding \code{if}, it is particularly important \emph{not} to
|
|
|
+replace its condition with a temporary variable, because that would
|
|
|
+interfere with the generation of high-quality output in the upcoming
|
|
|
+\code{explicate\_control} pass.
|
|
|
|
|
|
\newcommand{\LifMonadASTRacket}{
|
|
|
\begin{array}{rcl}
|