|
@@ -26,13 +26,14 @@
|
|
|
\newcommand{\LangCIfM}{\ensuremath{\CLang_{\mathsf{If}}}} %C1
|
|
|
\newcommand{\LangVec}{$\Lang_{\mathsf{Tup}}$} %R3
|
|
|
\newcommand{\LangVecM}{\Lang_{\mathsf{Tup}}} %R3
|
|
|
-\newcommand{\LangStruct}{\ensuremath{\Lang^{\mathsf{Struct}}_{\mathsf{Tup}}}} %\Lang^s3
|
|
|
+\newcommand{\LangStruct}{\ensuremath{\Lang_{\mathsf{Struct}}}} %\Lang^s3
|
|
|
\newcommand{\LangCVec}{$\CLang_{\mathsf{Tup}}$} %C2
|
|
|
\newcommand{\LangCVecM}{\CLang_{\mathsf{Tup}}} %C2
|
|
|
\newcommand{\LangVecANF}{\ensuremath{\Lang^{\RCO}_{\mathsf{Tup}}}} %R3
|
|
|
\newcommand{\LangVecANFM}{\Lang^{\RCO}_{\mathsf{Tup}}} %R3
|
|
|
\newcommand{\LangAlloc}{\ensuremath{\Lang_{\mathsf{Alloc}}}} %R3'
|
|
|
\newcommand{\LangAllocANF}{\ensuremath{\Lang^{\RCO}_{\mathsf{Alloc}}}} %R3'
|
|
|
+\newcommand{\LangAllocANFM}{\Lang^{\RCO}_{\mathsf{Alloc}}} %R3'
|
|
|
\newcommand{\LangFun}{$\Lang_{\mathsf{Fun}}$} %R4
|
|
|
\newcommand{\LangFunM}{\Lang_{\mathsf{Fun}}} %R4
|
|
|
\newcommand{\LangCFun}{$\CLang_{\mathsf{Fun}}$} %C3
|
|
@@ -169,6 +170,7 @@
|
|
|
\newcommand{\ADD}[2]{{\key{BinOp}\LP #1\code{,} \key{Add()}\key{,}#2\code{)}}}
|
|
|
\newcommand{\SUB}[2]{{\key{BinOp}\LP \key{Sub()}\key{,}#1\code{,}#2\code{)}}}
|
|
|
\newcommand{\PRINT}[1]{{\key{Expr}\LP\key{Call}\LP\key{Name}\LP\key{'print'}\RP\key{,}\LS#1\RS\RP\RP}}
|
|
|
+\newcommand{\CPRINT}[1]{\key{print}\LP #1\RP}
|
|
|
\newcommand{\EXPR}[1]{{\key{Expr}\LP #1\RP}}
|
|
|
\newcommand{\PROGRAM}[2]{\code{Module}\LP #2\RP}
|
|
|
\newcommand{\CPROGRAM}[2]{\code{CProgram}\LP #2 \RP}
|
|
@@ -187,6 +189,7 @@
|
|
|
\newcommand{\TUPLE}[1]{\key{Tuple}\LP #1 \code{,} \code{Load()} \RP}
|
|
|
\newcommand{\BOOLOP}[3]{\key{BoolOp}\LP #1 \code{,} \LS #2 \code{,} #3 \RS \RP}
|
|
|
\newcommand{\CMP}[3]{\key{Compare}\LP #1\code{,}\LS #2 \RS \code{,} \LS #3 \RS\RP}
|
|
|
+\newcommand{\CCMP}[3]{#2~#1~#3}
|
|
|
\newcommand{\TRUE}{\key{True}}
|
|
|
\newcommand{\FALSE}{\key{False}}
|
|
|
\newcommand{\IF}[3]{\key{IfExp}\LP #1 \code{,} #2 \code{,} #3 \RP}
|
|
@@ -207,14 +210,22 @@
|
|
|
\newcommand{\GLOBAL}[1]{\key{Global}\LP#1\RP}
|
|
|
\newcommand{\CGLOBAL}[1]{#1\LP\key{\%rip}\RP}
|
|
|
\newcommand{\CNEG}[1]{\key{-}~#1}
|
|
|
+\newcommand{\CNOT}[1]{\key{not}~#1}
|
|
|
\newcommand{\CALL}[2]{\key{Call}\LP#1\code{, }#2\RP}
|
|
|
+\newcommand{\APPLY}[2]{\key{Call}\LP#1\code{, }#2\RP}
|
|
|
+\newcommand{\CAPPLY}[2]{#1\LP#2\RP}
|
|
|
+\newcommand{\FUNREF}[1]{\key{FunRef}\LP#1\RP}
|
|
|
\fi % pythonEd
|
|
|
|
|
|
\if\edition\racketEd
|
|
|
\newcommand{\BEGIN}[2]{\LP\key{Begin}~#1~#2\RP}
|
|
|
\newcommand{\CBEGIN}[2]{\LP\key{begin}~#1~#2\RP}
|
|
|
\newcommand{\CNEG}[1]{\LP\key{-}~#1\RP}
|
|
|
+\newcommand{\CNOT}[1]{\LP\key{not}~#1\RP}
|
|
|
\newcommand{\CALL}[2]{\key{Call}\LP #1\code{, } #2 \RP}
|
|
|
+\newcommand{\APPLY}[2]{\key{(Apply}~#1~#2\code{)}}
|
|
|
+\newcommand{\CAPPLY}[2]{\LP~#1~#2\RP}
|
|
|
+\newcommand{\FUNREF}[1]{\LP\key{FunRef}~#1\RP}
|
|
|
\fi
|
|
|
\newcommand{\PRIM}[2]{\LP\key{Prim}~#1~\LP #2\RP\RP}
|
|
|
\newcommand{\PROGRAMDEFSEXP}[3]{\code{(ProgramDefsExp}~#1~#2~#3\code{)}}
|
|
@@ -242,9 +253,7 @@
|
|
|
\newcommand{\ALLOCCLOS}[3]{\LP\key{AllocateClosure}~#1~#2~#3\RP}
|
|
|
|
|
|
\newcommand{\VOID}[1]{\key{(Void)}}
|
|
|
-\newcommand{\APPLY}[2]{\key{(Apply}~#1~#2\code{)}}
|
|
|
\newcommand{\TAILCALL}[2]{\key{(TailCall}~#1~#2\code{)}}
|
|
|
-\newcommand{\FUNREF}[1]{\key{(FunRef}~#1\code{)}}
|
|
|
\newcommand{\CFUNREF}[1]{\key{(fun-ref}~#1\code{)}}
|
|
|
\newcommand{\FUNREFARITY}[2]{\key{(FunRefArity}~#1~#2\code{)}}
|
|
|
\newcommand{\CFUNREFARITY}[2]{\key{(fun-ref-arity}~#1~#2\code{)}}
|
|
@@ -262,18 +271,23 @@
|
|
|
\newcommand{\ASSIGN}[2]{\key{(Assign}~#1~#2\key{)}}
|
|
|
\newcommand{\IFSTMT}[3]{\key{(IfStmt}\,#1~#2~#3\key{)}}
|
|
|
\newcommand{\RETURN}[1]{\key{(Return}~#1\key{)}}
|
|
|
+\newcommand{\CRETURN}[1]{\key{return}~#1\key{;}}
|
|
|
\newcommand{\GOTO}[1]{\key{(Goto}~#1\key{)}}
|
|
|
+\newcommand{\CGOTO}[1]{\key{goto}~#1\key{;}}
|
|
|
\newcommand{\FUNDEF}[5]{\key{(Def}~#1~#2~#3~#4~#5\code{)}}
|
|
|
\fi
|
|
|
\if\edition\pythonEd
|
|
|
\newcommand{\CASSIGN}[2]{#1~\key{=}~#2}
|
|
|
\newcommand{\ASSIGN}[2]{\key{Assign}\LP\LS #1\RS\key{, }#2\RP}
|
|
|
\newcommand{\IFSTMT}[3]{\key{If}\LP #1 \code{, } #2 \code{, } #3 \RP}
|
|
|
+\newcommand{\CIFSTMT}[3]{\key{if}~#1\code{:}~#2~\code{else:}~#3}
|
|
|
\newcommand{\CBEGIN}[2]{\key{begin:}~#1~#2}
|
|
|
\newcommand{\BEGIN}[2]{\key{Begin}\LP#1\code{, }#2\RP}
|
|
|
\newcommand{\WHILESTMT}[2]{\key{While}\LP #1 \code{, } #2 \code{, []}\RP}
|
|
|
\newcommand{\RETURN}[1]{\key{Return}\LP #1 \RP}
|
|
|
+\newcommand{\CRETURN}[1]{\key{return}~#1}
|
|
|
\newcommand{\GOTO}[1]{\key{Goto}\LP #1 \RP}
|
|
|
+\newcommand{\CGOTO}[1]{\key{goto}~#1}
|
|
|
\newcommand{\FUNDEF}[5]{\key{FunctionDef}\LP#1\key{, }#2\key{, }#3\key{, }#5\RP}
|
|
|
\fi
|
|
|
|