Index: doc/uC++toCFA/uC++toCFA.tex
===================================================================
--- doc/uC++toCFA/uC++toCFA.tex	(revision 946a6e4d6e22aa9ec049796a1ac9b96286d7e852)
+++ doc/uC++toCFA/uC++toCFA.tex	(revision f033d018f2ee7e05431e99954b470801d2565813)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Sun Oct 15 23:09:58 2023
-%% Update Count     : 5926
+%% Last Modified On : Sun Sep 17 09:10:12 2023
+%% Update Count     : 5883
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -119,5 +119,5 @@
 
 \title{\vspace*{-0.5in}
-\uC to \CFA Cheat Sheet}
+\CC/\uC to \CFA Cheat Sheet}
 %\author{Peter A. Buhr}
 \date{}
@@ -195,5 +195,72 @@
 \end{cfa}
 \noindent
-In subsequent code examples, the left example is \uC and the right example is \CFA.
+In subsequent code examples, the left example is \CC/\uC and the right example is \CFA.
+
+
+\section{Looping}
+
+\begin{cquote}
+\begin{tabular}{l|l}
+\begin{uC++}
+for ( ;; ) { ... } / while ( true ) { ... }
+for ( int i = 0; i < 10; i += 1 ) { ... }
+for ( int i = 5; i < 15; i += 2 ) { ... }
+int i = 0
+for ( i = 0; i < 10; i += 1 ) { ... }
+if ( i == 10 ) { ... }
+\end{uC++}
+&
+\begin{cfa}
+for () { ... } / while () { ... }
+for ( 10 ) { ... } / for ( i; 10 ) { ... }
+for ( i; 5~15~2 ) { ... }
+
+for ( i; 10 ) { ... }
+else { ... } // i == 10
+\end{cfa}
+\end{tabular}
+\end{cquote}
+
+
+\section{Exceptions}
+
+Currently, \CFA uses macros @ExceptionDecl@ and @ExceptionInst@ to declare and instantiate an exception.
+\begin{cquote}
+\begin{tabular}{l|ll}
+\begin{uC++}
+
+struct E {		// local or global scope
+	... // exception fields
+};
+try {
+	...
+	if ( ... ) _Resume E( /* initialization */ );
+	if ( ... ) _Throw E( /* initialization */ );
+	...
+} _CatchResume( E & ) { // should be reference
+	...
+} catch( E & ) {
+	...
+}
+\end{uC++}
+&
+\begin{cfa}
+#include <Exception.hfa>
+@ExceptionDecl@( E,		// must be global scope
+	... // exception fields
+);
+try {
+	...
+	if ( ... ) throwResume @ExceptionInst@( E, /* intialization */ );
+	if ( ... ) throw @ExceptionInst@( E, /* intialization */ );
+	...
+} catchResume( E * ) { // must be pointer
+	...
+} catch( E * ) {
+	...
+}
+\end{cfa}
+\end{tabular}
+\end{cquote}
 
 
@@ -218,161 +285,4 @@
 sin | i | d | c;
 sout | i | d | c
-\end{cfa}
-\end{tabular}
-\end{cquote}
-
-
-\section{Looping}
-
-\begin{cquote}
-\begin{tabular}{l|l}
-\begin{uC++}
-for ( @;;@ ) { ... }  /  while ( @true@ ) { ... }
-for ( int i = 0; i < @10@; i += 1 ) { ... }
-for ( int i = @5@; i < @15@; i += @2@ ) { ... }
-for ( int i = -1; i <@=@ 10; i += 3 ) { ... }
-for ( int i = 10; i > 0; i @-@= 1 ) { ... }
-\end{uC++}
-&
-\begin{cfa}
-for () { ... }  /  while () { ... }
-for ( @10@ ) { ... }  /  for ( i; @10@ ) { ... }
-for ( i; @5@ ~ @15@ ~ @2@ ) { ... }
-for ( i; -1 ~@=@ 10 ~ 3 ) { ... }
-for ( i; 0 @-@~ 10 ) { ... }
-\end{cfa}
-\\
-\hline
-\begin{uC++}
-int i = 0
-for ( i = 0; i < 10; i += 1 ) { ... }
-@if ( i == 10 )@ { ... }
-\end{uC++}
-&
-\begin{cfa}
-
-for ( i; 10 ) { ... }
-@else@ { ... } // i == 10
-\end{cfa}
-\\
-\hline
-\begin{uC++}
-L1: for ( ;; ) {
-	L2: for ( ;; ) {
-		... @break L1@; ... @break L2@; ...
-	}
-}
-\end{uC++}
-&
-\begin{cfa}
-L1: for () {
-	L2: for () {
-		... @break L1@; ... @break L2@; ...
-	}
-}
-\end{cfa}
-\end{tabular}
-\end{cquote}
-
-
-\section{Exception}
-
-Currently, \CFA uses macros @ExceptionDecl@ and @ExceptionInst@ to declare and instantiate an exception.
-\begin{cquote}
-\begin{tabular}{l|ll}
-\begin{uC++}
-
-@_Exception@ E {	// local or global scope
-	... // exception fields
-};
-try {
-	...
-	if ( ... ) @_Resume@ E( /* initialization */ );
-	if ( ... ) @_Throw@ E( /* initialization */ );
-		...
-} @_CatchResume@( E & ) { // should be reference
-	...
-} catch( E & ) {
-	...
-}
-\end{uC++}
-&
-\begin{cfa}
-#include <Exception.hfa>
-@ExceptionDecl@( E,		// must be global scope
-	... // exception fields
-);
-try {
-	...
-	if ( ... ) @throwResume@ @ExceptionInst@( E, /* intialization */ );
-	if ( ... ) @throw@ @ExceptionInst@( E, /* intialization */ );
-	...
-} @catchResume@( E * ) { // must be pointer
-	...
-} catch( E * ) {
-	...
-}
-\end{cfa}
-\end{tabular}
-\end{cquote}
-
-
-\section{Non-local Exception}
-
-\begin{cquote}
-\begin{tabular}{l|ll}
-\begin{uC++}
-
-
-void main() {
-	try {
-		_Enable {
-			... suspend(); ...
-		}
-	} @_CatchResume@( E & ) { // reference
-		...
-	} catch( E & ) {
-		...
-	}
-}
-\end{uC++}
-&
-\begin{cfa}
-#define resumePoll( coroutine ) resume( coroutine ); checked_poll()
-#define suspendPoll suspend; checked_poll()
-void main() {
-	try {
-		enable_ehm();
-		... suspendPoll ...
-		disable_ehm();
-	} @catchResume@( E * ) { // pointer
-		...
-	} catch( E & ) {
-		...
-	}
-}
-\end{cfa}
-\end{tabular}
-\end{cquote}
-
-
-\section{Constructor / Destructor}
-
-\begin{cquote}
-\begin{tabular}{l|l}
-\begin{uC++}
-struct S {
-	... // fields
-	@S@(...) { ... }
-	@~S@(...) { ... }
-};
-\end{uC++}
-&
-\begin{cfa}
-struct S {
-	... // fields
-};
-@?{}@( @S & s,@ ...) { ... }
-@^?{}@( @S & s@ ) { ... }
 \end{cfa}
 \end{tabular}
@@ -422,4 +332,27 @@
 
 
+\section{Constructor / Destructor}
+
+\begin{cquote}
+\begin{tabular}{l|l}
+\begin{uC++}
+struct S {
+	... // fields
+	@S@(...) { ... }
+	@~S@(...) { ... }
+};
+\end{uC++}
+&
+\begin{cfa}
+struct S {
+	... // fields
+};
+@?{}@( @S & s,@ ...) { ... }
+@^?{}@( @S & s@ ) { ... }
+\end{cfa}
+\end{tabular}
+\end{cquote}
+
+
 \section{\texorpdfstring{Structures (object-oriented \protect\vs routine style)}{Structures (object-oriented vs. routine style)}}
 
