Pārlūkot izejas kodu

fix racket version

Jeremy G. Siek 8 mēneši atpakaļ
vecāks
revīzija
9935155d9f
1 mainītis faili ar 61 papildinājumiem un 19 dzēšanām
  1. 61 19
      book.tex

+ 61 - 19
book.tex

@@ -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}}
@@ -2488,8 +2488,7 @@ each of which is an integer constant (called an \emph{immediate
               \MID \key{r11} \MID \key{r12} \MID \key{r13}
               \MID \key{r14} \MID \key{r15}}
 
-\newcommand{\GrammarXInt}{
-\if\edition\racketEd
+\newcommand{\GrammarXIntRacket}{
 \begin{array}{rcl}
 \Reg &::=& \allregisters{} \\
 \Arg &::=&  \key{\$}\Int \MID \key{\%}\Reg \MID \Int\key{(}\key{\%}\Reg\key{)}\\
@@ -2502,8 +2501,9 @@ each of which is an integer constant (called an \emph{immediate
       \key{jmp}\,\itm{label} \MID \\
   && \itm{label}\key{:}\; \Instr 
 \end{array}
-\fi
-\if\edition\pythonEd\pythonColor
+}
+
+\newcommand{\GrammarXIntPython}{
 % no jmp and label in the python version
 \begin{array}{rcl}
 \Reg &::=& \allregisters{} \\
@@ -2514,7 +2514,6 @@ each of which is an integer constant (called an \emph{immediate
   &&  \key{pushq}\;\Arg \MID \key{popq}\;\Arg \MID 
       \key{callq} \; \mathit{label} \MID \key{retq} 
 \end{array}
-\fi
 }
 
 \begin{figure}[tp]
@@ -2522,7 +2521,7 @@ each of which is an integer constant (called an \emph{immediate
 {\if\edition\racketEd    
 \[
 \begin{array}{l}
-  \GrammarXInt \\
+  \GrammarXIntRacket \\
 \begin{array}{lcl}
 \LangXIntM{} &::= & \key{.globl main}\\
       &    & \key{main:} \; \Instr\ldots
@@ -8667,8 +8666,7 @@ $\Atm$ to x86:
 \end{array}
 \]
 
-\newcommand{\GrammarXIf}{
-\if\edition\racketEd
+\newcommand{\GrammarXIfRacket}{
 \begin{array}{lcl}
   \itm{bytereg} &::=& \key{ah} \MID \key{al} \MID \key{bh} \MID \key{bl}
     \MID \key{ch} \MID \key{cl} \MID \key{dh} \MID \key{dl} \\
@@ -8680,8 +8678,9 @@ $\Atm$ to x86:
     \MID \key{movzbq}~\Arg\key{,}~\Arg \\
     &\MID& \key{j}cc~\itm{label} \\
 \end{array}
-\fi
-\if\edition\pythonEd\pythonColor
+}
+
+\newcommand{\GrammarXIfPython}{
 \begin{array}{lcl}
   \itm{bytereg} &::=& \key{ah} \MID \key{al} \MID \key{bh} \MID \key{bl}
     \MID \key{ch} \MID \key{cl} \MID \key{dh} \MID \key{dl} \\
@@ -8694,22 +8693,35 @@ $\Atm$ to x86:
     &\MID& \key{jmp}\,\itm{label} \MID \key{j}cc~\itm{label} 
            \MID \itm{label}\key{:}\; \Instr 
 \end{array}
-\fi
 }
 
 
 \begin{figure}[tp]
-\begin{tcolorbox}[colback=white]
+  \begin{tcolorbox}[colback=white]
+{\if\edition\racketEd    
 \[
 \begin{array}{l}
-  \gray{\GrammarXInt} \\ \hline
-  \GrammarXIf \\ 
+  \gray{\GrammarXIntRacket} \\ \hline
+  \GrammarXIfRacket \\ 
 \begin{array}{lcl}
 \LangXIfM{} &::= &  \key{.globl main} \\
       &    & \key{main:} \; \Instr\ldots 
 \end{array}
 \end{array}
 \]
+}
+{\if\edition\pythonEd    
+\[
+\begin{array}{l}
+  \gray{\GrammarXIntPython} \\ \hline
+  \GrammarXIfPython \\ 
+\begin{array}{lcl}
+\LangXIfM{} &::= &  \key{.globl main} \\
+      &    & \key{main:} \; \Instr\ldots 
+\end{array}
+\end{array}
+\]
+\fi}
 \end{tcolorbox}
 \caption{The concrete syntax of \LangXIf{}  (extends \LangXInt{} of figure~\ref{fig:x86-int-concrete}).}
 \label{fig:x86-1-concrete}
@@ -13518,10 +13530,11 @@ movzbq %al, |$\Var$|
 
 \begin{figure}[tp]
   \begin{tcolorbox}[colback=white]
+{\if\edition\racketEd
 \[
 \begin{array}{l}
-  \gray{\GrammarXInt} \\ \hline
-  \gray{\GrammarXIf} \\ \hline
+  \gray{\GrammarXIntRacket} \\ \hline
+  \gray{\GrammarXIfRacket} \\ \hline
   \GrammarXGlobal \\
 \begin{array}{lcl}
 \LangXGlobalM{} &::= &  \key{.globl main} \\
@@ -13529,6 +13542,20 @@ movzbq %al, |$\Var$|
 \end{array}
 \end{array}
 \]
+\fi}
+{\if\edition\pythonEd\pythonColor    
+\[
+\begin{array}{l}
+  \gray{\GrammarXIntPython} \\ \hline
+  \gray{\GrammarXIfPython} \\ \hline
+  \GrammarXGlobal \\
+\begin{array}{lcl}
+\LangXGlobalM{} &::= &  \key{.globl main} \\
+      &    &  \key{main:} \; \Instr^{*} 
+\end{array}
+\end{array}
+\]
+\fi}
   \end{tcolorbox}
 \caption{The concrete syntax of \LangXGlobal{}  (extends \LangXIf{} shown in figure~\ref{fig:x86-1-concrete}).}
 \label{fig:x86-2-concrete}
@@ -16090,10 +16117,11 @@ this section.  \index{subject}{x86}
 \begin{figure}[tp]
   \begin{tcolorbox}[colback=white]
 \small
+{\if\edition\racketEd
 \[
 \begin{array}{l}
-  \gray{\GrammarXInt} \\ \hline
-  \gray{\GrammarXIf} \\ \hline
+  \gray{\GrammarXIntRacket} \\ \hline
+  \gray{\GrammarXIfRacket} \\ \hline
   \gray{\GrammarXGlobal} \\ \hline
   \GrammarXIndCall \\
 \begin{array}{lcl}
@@ -16101,6 +16129,20 @@ this section.  \index{subject}{x86}
 \end{array}
 \end{array}
 \]
+\fi}
+{\if\edition\pythonEd
+\[
+\begin{array}{l}
+  \gray{\GrammarXIntPython} \\ \hline
+  \gray{\GrammarXIfPython} \\ \hline
+  \gray{\GrammarXGlobal} \\ \hline
+  \GrammarXIndCall \\
+\begin{array}{lcl}
+\LangXIndCallM{} &::= & \Def^{*}
+\end{array}
+\end{array}
+\]
+\fi}
   \end{tcolorbox}
 
 \caption{The concrete syntax of \LangXIndCall{} (extends \LangXGlobal{} of figure~\ref{fig:x86-2-concrete}).}