Jeremy Siek 4 年之前
父节点
当前提交
2113656ab6
共有 1 个文件被更改,包括 25 次插入23 次删除
  1. 25 23
      book.tex

+ 25 - 23
book.tex

@@ -7652,28 +7652,29 @@ language, whose syntax is defined in Figure~\ref{fig:x86-3}.
 \[
 \begin{array}{lcl}
 \Arg &::=&  \gray{  \INT{\Int} \mid \REG{\Reg}
-    \mid (\key{deref}\,\Reg\,\Int) } \\
-   &\mid& \gray{ (\key{byte-reg}\; \Reg) 
-   \mid   (\key{global}\; \itm{name})  }
-   \mid (\key{fun-ref}\; \itm{label})\\
+    \mid \LP\key{deref}\,\Reg\,\Int\RP } \\
+   &\mid& \gray{ \LP\key{byte-reg}\; \Reg\RP 
+   \mid   \LP\key{global}\; \itm{name}\RP  }
+   \mid \LP\key{fun-ref}\; \itm{label}\RP\\
 \itm{cc} & ::= & \gray{  \key{e} \mid \key{l} \mid \key{le} \mid \key{g} \mid \key{ge}  } \\
-\Instr &::=& \gray{  (\key{addq} \; \Arg\; \Arg) \mid
-             (\key{subq} \; \Arg\; \Arg) \mid
-             (\key{negq} \; \Arg) \mid (\key{movq} \; \Arg\; \Arg)  } \\
-      &\mid& \gray{  (\key{callq} \; \mathit{label}) \mid
-             (\key{pushq}\;\Arg) \mid
-             (\key{popq}\;\Arg) \mid
-             (\key{retq})  } \\
-       &\mid& \gray{  (\key{xorq} \; \Arg\;\Arg)
-       \mid (\key{cmpq} \; \Arg\; \Arg) \mid (\key{set}\itm{cc} \; \Arg)  } \\
-       &\mid& \gray{  (\key{movzbq}\;\Arg\;\Arg)
-       \mid  (\key{jmp} \; \itm{label})
-       \mid (\key{j}\itm{cc} \; \itm{label})
-       \mid (\key{label} \; \itm{label})  } \\
-     &\mid& (\key{indirect-callq}\;\Arg ) \mid (\key{tail-jmp}\;\Arg) \\
-     &\mid& (\key{leaq}\;\Arg\;\Reg)\\
-\Def &::= & (\key{define} \; (\itm{label}) \;((\itm{label} \,\key{.}\, (\Instr\ldots))\ldots))\\
-x86_3 &::= & (\key{program} \;\itm{info} \;\Def\ldots)
+\Instr &::=& \gray{  \LP\key{addq} \; \Arg\; \Arg\RP \mid
+             \LP\key{subq} \; \Arg\; \Arg\RP \mid
+             \LP\key{negq} \; \Arg\RP \mid \LP\key{movq} \; \Arg\; \Arg\RP  } \\
+      &\mid& \gray{  \LP\key{callq} \; \mathit{label}\RP \mid
+             \LP\key{pushq}\;\Arg\RP \mid
+             \LP\key{popq}\;\Arg\RP \mid
+             \LP\key{retq}\RP  } \\
+       &\mid& \gray{  \LP\key{xorq} \; \Arg\;\Arg\RP
+       \mid \LP\key{cmpq} \; \Arg\; \Arg\RP \mid \LP\key{set}\itm{cc} \; \Arg\RP  } \\
+       &\mid& \gray{  \LP\key{movzbq}\;\Arg\;\Arg\RP
+       \mid  \LP\key{jmp} \; \itm{label}\RP
+       \mid \LP\key{j}\itm{cc} \; \itm{label}\RP
+       \mid \LP\key{label} \; \itm{label}\RP  } \\
+     &\mid& \LP\key{indirect-callq}\;\Arg \RP \mid \LP\key{tail-jmp}\;\Arg\RP \\
+     &\mid& \LP\key{leaq}\;\Arg\;\Reg\RP\\
+\Block &::= & \Instr\ldots \\
+\Def &::= & \LP\key{define} \; \LP\itm{label}\RP \;\LP\LP\itm{label} \,\key{.}\, \Block\RP\ldots\RP\RP\\
+x86_3 &::= & \Def\ldots
 \end{array}
 \]
 \end{minipage}
@@ -7694,8 +7695,9 @@ x86_3 &::= & (\key{program} \;\itm{info} \;\Def\ldots)
   \Instr &::=& \ldots \mid \INDCALLQ{\itm{label}}{\itm{int}}
     \mid \TAILJMP{\Arg}{\itm{int}}\\
     &\mid& \BININSTR{\code{'leaq}}{\Arg}{\REG{\Reg}}\\
-  \Def &::= & \DEF{\itm{label}}{\code{'()}}{\Type}{\itm{info}}{((\itm{label}\,\key{.}\,\Block)\ldots)} \\
-x86_3 &::= & \PROGRAMDEFS{\itm{info}}{(\Def\ldots)}
+  \Block &::= & \BLOCK{\itm{info}}{\LP\Instr\ldots\RP}\\
+  \Def &::= & \DEF{\itm{label}}{\code{'()}}{\Type}{\itm{info}}{\LP\LP\itm{label}\,\key{.}\,\Block\RP\ldots\RP} \\
+x86_3 &::= & \PROGRAMDEFS{\itm{info}}{\LP\Def\ldots\RP}
 \end{array}
 \]
 \end{minipage}