Index: tests/loopctrl.cfa
===================================================================
--- tests/loopctrl.cfa	(revision 5c98a25da59b45c7b277e0d625906a4ed3b3ea4a)
+++ tests/loopctrl.cfa	(revision 091ccdb281cf99c85c2a576b0e6c89217468eb61)
@@ -10,9 +10,118 @@
 // Created On       : Wed Aug  8 18:32:59 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Aug  8 16:00:39 2022
-// Update Count     : 113
+// Last Modified On : Mon Aug  8 17:36:57 2022
+// Update Count     : 116
 // 
 
 #include <fstream.hfa>
+
+void fred() {
+	// Test all possible loop syntax.
+
+	int s, c, i;
+
+	for ( c ) {} // start 0	
+	for ( ~= c ) {} // start 0	
+	for ( -~ c ) {} // start c
+	for ( -~= c ) {} // start c
+
+	for ( @ ~ c ) {} // start 0
+	for ( @ ~= c ) {} // start 0
+	for ( @ -~ c ) {} // start c
+	for ( @ -~= c ) {} // start c
+
+	for ( @ ~ c ~ i ) {} // start 0
+	for ( @ ~= c ~ i ) {} // start 0
+	for ( @ -~ c ~ i ) {} // start c
+	for ( @ -~= c ~ i ) {} // start c
+
+	for ( s ~ c ) {} // start s
+	for ( s ~= c ) {} // start s
+	for ( s -~ c ) {} // start c
+	for ( s -~= c ) {} // start c
+
+	for ( s ~ c ~ i ) {} // start s
+	for ( s ~= c ~ i ) {} // start s
+	for ( s -~ c ~ i ) {} // start c
+	for ( s -~= c ~ i ) {} // start c
+
+	for ( j; c ) {} // start 0
+	for ( j; ~= c ) {} // start 0
+	for ( j; -~ c ) {} // start c
+	for ( j; -~= c ) {} // start c
+
+	for ( j; @ ~ c ) {} // start 0
+	for ( j; @ ~= c ) {} // start 0
+	for ( j; @ -~ c ) {} // start c
+	for ( j; @ -~= c ) {} // start c
+
+	for ( j; @ ~ c ~ i ) {} // start 0
+	for ( j; @ ~= c ~ i ) {} // start 0
+	for ( j; @ -~ c ~ i ) {} // start c
+	for ( j; @ -~= c ~ i ) {} // start c
+
+	for ( j; s ~ c ) {} // start s
+	for ( j; s ~= c ) {} // start s
+	for ( j; s -~ c ) {} // start c
+	for ( j; s -~= c ) {} // start c
+
+	for ( j; s ~ c ~ i ) {} // start s
+	for ( j; s ~= c ~ i ) {} // start s
+	for ( j; s -~ c ~ i ) {} // start c
+	for ( j; s -~= c ~ i ) {} // start c
+
+	// CANNOT DIRECTLY INITIALIZE INDEX VARIABLE, ONLY SINGLE LOOP INDEX VARIABLE IN DECLARATION
+
+	for ( j; c ) {} // start 0
+	for ( int j; c ) {} // start 0
+	for ( int j; ~= c ) {} // start 0
+	for ( int j; -~ c ) {} // start c
+	for ( int j; -~= c ) {} // start c
+
+	for ( int j; @ ~ c ) {} // start 0
+	for ( int j; @ ~= c ) {} // start 0
+	for ( int j; @ -~ c ) {} // start c
+	for ( int j; @ -~= c ) {} // start c
+
+	for ( int j; @ ~ c ~ i ) {} // start 0
+	for ( int j; @ ~= c ~ i ) {} // start 0
+	for ( int j; @ -~ c ~ i ) {} // start c
+	for ( int j; @ -~= c ~ i ) {} // start c
+
+	for ( int j; s ~ c ) {} // start s
+	for ( int j; s ~= c ) {} // start s
+	for ( int j; s -~ c ) {} // start c
+	for ( int j; s -~= c ) {} // start c
+
+	for ( int j; s ~ c ~ i ) {} // start s
+	for ( int j; s ~= c ~ i ) {} // start s
+	for ( int j; s -~ c ~ i ) {} // start c
+	for ( int j; s -~= c ~ i ) {} // start c
+
+	for ( s ~ @ ) {} // start s
+	for ( s -~ @ ) {} // start s
+	for ( s ~ @ ~ i ) {} // start s
+	for ( s -~ @ ~ i ) {} // start s
+	for ( s ~ @ ~ @ ) {} // start s
+
+	for ( j; s ~ @ ) {} // start s
+	for ( j; s -~ @ ) {} // start s
+	for ( j; s ~ @ ~ i ) {} // start s
+	for ( j; s -~ @ ~ i ) {} // start s
+	for ( j; s ~ @ ~ @ ) {} // start s
+
+	for ( int j; s ~ @ ) {} // start s
+	for ( int j; s -~ @ ) {} // start s
+	for ( int j; s ~ @ ~ i ) {} // start s
+	for ( int j; s -~ @ ~ i ) {} // start s
+	for ( int j; s ~ @ ~ @ ) {} // start s
+
+	// enum E { A, B, C, D };
+	// for ( e; A ~= C ) {}
+	// for ( e; A ~= D ) {}
+	// for ( e; A -~= D ~ 2 ) {}
+	// for ( e; E ) {}
+	// for ( e; -~ E ) {}
+}
 
 struct S { int i, j; };
@@ -35,4 +144,6 @@
 
 int main() {
+	// Test some loop options.
+
 	sout | nlOff;										// turn off auto newline
 	while () { sout | "empty"; break; }					sout | nl;
