|
@@ -3989,10 +3989,10 @@ and \key{goto}'s.
|
|
\Atm &::=& \gray{ \Int \mid \Var } \mid \itm{bool} \\
|
|
\Atm &::=& \gray{ \Int \mid \Var } \mid \itm{bool} \\
|
|
\itm{cmp} &::= & \key{eq?} \mid \key{<} \\
|
|
\itm{cmp} &::= & \key{eq?} \mid \key{<} \\
|
|
\Exp &::=& \gray{ \Atm \mid \key{(read)} \mid \key{(-}~\Atm\key{)} \mid \key{(+}~\Atm~\Atm\key{)} } \\
|
|
\Exp &::=& \gray{ \Atm \mid \key{(read)} \mid \key{(-}~\Atm\key{)} \mid \key{(+}~\Atm~\Atm\key{)} } \\
|
|
- &::=& \LP \key{not}~\Atm \RP \mid \LP \itm{cmp}~\Atm~\Atm\RP \\
|
|
|
|
|
|
+ &\mid& \LP \key{not}~\Atm \RP \mid \LP \itm{cmp}~\Atm~\Atm\RP \\
|
|
\Stmt &::=& \gray{ \Var~\key{=}~\Exp\key{;} } \\
|
|
\Stmt &::=& \gray{ \Var~\key{=}~\Exp\key{;} } \\
|
|
-\Tail &::= & \gray{ \key{return}~\Exp\key{;} \mid \Stmt~\Tail } \\
|
|
|
|
- &\mid& \key{goto}~\itm{label}\key{;}\\
|
|
|
|
|
|
+\Tail &::= & \gray{ \key{return}~\Exp\key{;} \mid \Stmt~\Tail }
|
|
|
|
+ \mid \key{goto}~\itm{label}\key{;}\\
|
|
&\mid& \key{if}~\LP \itm{cmp}~\Atm~\Atm \RP~ \key{goto}~\itm{label}\key{;} ~\key{else}~\key{goto}~\itm{label}\key{;} \\
|
|
&\mid& \key{if}~\LP \itm{cmp}~\Atm~\Atm \RP~ \key{goto}~\itm{label}\key{;} ~\key{else}~\key{goto}~\itm{label}\key{;} \\
|
|
C_1 & ::= & \gray{ (\itm{label}\key{:}~ \Tail)^{+} }
|
|
C_1 & ::= & \gray{ (\itm{label}\key{:}~ \Tail)^{+} }
|
|
\end{array}
|
|
\end{array}
|
|
@@ -4016,8 +4016,8 @@ C_1 & ::= & \gray{ (\itm{label}\key{:}~ \Tail)^{+} }
|
|
&\mid& \UNIOP{\key{'not}}{\Atm}
|
|
&\mid& \UNIOP{\key{'not}}{\Atm}
|
|
\mid \BINOP{\key{'}\itm{cmp}}{\Atm}{\Atm} \\
|
|
\mid \BINOP{\key{'}\itm{cmp}}{\Atm}{\Atm} \\
|
|
\Stmt &::=& \gray{ \ASSIGN{\VAR{\Var}}{\Exp} } \\
|
|
\Stmt &::=& \gray{ \ASSIGN{\VAR{\Var}}{\Exp} } \\
|
|
-\Tail &::= & \gray{\RETURN{\Exp} \mid \SEQ{\Stmt}{\Tail} } \\
|
|
|
|
- &\mid& \GOTO{\itm{label}} \\
|
|
|
|
|
|
+\Tail &::= & \gray{\RETURN{\Exp} \mid \SEQ{\Stmt}{\Tail} }
|
|
|
|
+ \mid \GOTO{\itm{label}} \\
|
|
&\mid& \IFSTMT{\BINOP{\itm{cmp}}{\Atm}{\Atm}}{\GOTO{\itm{label}}}{\GOTO{\itm{label}}} \\
|
|
&\mid& \IFSTMT{\BINOP{\itm{cmp}}{\Atm}{\Atm}}{\GOTO{\itm{label}}}{\GOTO{\itm{label}}} \\
|
|
C_1 & ::= & \gray{\PROGRAM{\itm{info}}{\CFG{\key{(}\itm{label}\,\key{.}\,\Tail\key{)}^{+}}}}
|
|
C_1 & ::= & \gray{\PROGRAM{\itm{info}}{\CFG{\key{(}\itm{label}\,\key{.}\,\Tail\key{)}^{+}}}}
|
|
\end{array}
|
|
\end{array}
|