Index: tests/.expect/forctrl.txt
===================================================================
--- tests/.expect/forctrl.txt	(revision 096a2ff8969724066f9aa0e4887b3e0ade43c2a3)
+++ 	(revision )
@@ -1,24 +1,0 @@
-empty
-empty
-empty
-
-A
-A A
-A A A A A A A A A A
-B B B B B
-C C C C C
-D D D D D
-E E E E E
-0 1 2 3 4 5 6 7 8 9
-0 1 2 3 4 5 6 7 8 9
-1 3 5 7 9
-10 8 6 4 2
-0.5 1.5 2.5 3.5 4.5
-5.5 4.5 3.5 2.5 1.5
-2 4 6 8 10
-10 8 6 4 2
-3 6 9
-(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
-(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
-(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
-(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
Index: tests/.expect/loopctrl.txt
===================================================================
--- tests/.expect/loopctrl.txt	(revision 76beed8d90766c77d141e10a3618e75829663af4)
+++ tests/.expect/loopctrl.txt	(revision 76beed8d90766c77d141e10a3618e75829663af4)
@@ -0,0 +1,35 @@
+empty
+empty
+empty
+
+zero
+A
+A A A A A A A A A A
+B B B B B
+C C C C C
+D D D D D
+E E E E E
+
+0 1 2 3 4 5 6 7 8 9
+1 3 5 7 9
+10 8 6 4 2
+0.5 1.5 2.5 3.5 4.5
+5.5 4.5 3.5 2.5 1.5
+2 4 6 8 10
+10 8 6 4 2
+
+
+3 6 9
+
+(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
+(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
+
+(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
+(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
+(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)
+(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)
+
+(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)
+(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)
+(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)
+(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)
Index: tests/forctrl.c
===================================================================
--- tests/forctrl.c	(revision 096a2ff8969724066f9aa0e4887b3e0ade43c2a3)
+++ 	(revision )
@@ -1,69 +1,0 @@
-// 
-// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-// 
-// forctrl.c -- 
-// 
-// Author           : Peter A. Buhr
-// Created On       : Wed Aug  8 18:32:59 2018
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Sep 25 17:43:47 2018
-// Update Count     : 44
-// 
-
-#include <fstream.hfa>
-
-struct S { int i, j; };
-void ?{}( S & s ) { s.[i, j] = 0; }
-void ?{}( S & s, int i ) { s.[i, j] = [i, 0]; }
-void ?{}( S & s, int i, int j ) { s.[i, j] = [i, j]; }
-void ?{}( S & s, zero_t ) { s.[i, j] = 0; }
-void ?{}( S & s, one_t ) { s.[i, j] = 1; }
-S ?+?( S t1, S t2 ) { return (S){ t1.i + t2.i, t1.j + t2.j }; }
-int ?<?( S t1, S t2 ) { return t1.i < t2.i && t1.j < t2.j; }
-S ?=?( S & t1, S t2 ) { t1.i = t2.i; t1.j = t2.j; return t1; }
-S ?+=?( S & t1, S t2 ) { t1 = t1 + t2; return t1; }
-S ?+=?( S & t1, one_t ) { t1 = t1 + (S){1}; return t1; }
-ofstream & ?|?( ofstream & os, S v ) { return os | '(' | v.i | v.j | ')'; }
-
-int main() {
-	while () { sout | "empty"; break; }		sout | endl;
-	do { sout | "empty"; break; } while ();	sout | endl;
-	for () { sout | "empty"; break; }		sout | endl;
-
-	for ( 0 ) { sout | "A"; }				sout | endl;
-	for ( 1 ) { sout | "A"; }				sout | endl;
-	for ( 2 ) { sout | "A"; }				sout | endl;
-	for ( 10 ) { sout | "A"; }				sout | endl;
-
-	for ( 1 ~= 10 ~ 2 ) { sout | "B"; }		sout | endl;
-	for ( 10 -~= 1 ~ -2 ) { sout | "C"; }	sout | endl;
-	for ( 0.5 ~ 5.5 ) { sout | "D"; }		sout | endl;
-	for ( 5.5 -~ 0.5 ) { sout | "E"; }		sout | endl;
-
-	for ( i; 10 ) { sout | i; }				sout | endl;
-	for ( j; 10 ) { sout | j; }				sout | endl;
-
-	for ( i; 1 ~= 10 ~ 2 ) { sout | i; }	sout | endl;
-	for ( i; 10 -~= 1 ~ -2 ) { sout | i; }	sout | endl;
-	for ( i; 0.5 ~ 5.5 ) { sout | i; }		sout | endl;
-	for ( i; 5.5 -~ 0.5 ) { sout | i; }		sout | endl;
-
-	for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; } sout | endl;
-	for ( ui; 10u -~= 2u ~ -2u ) { sout | ui; } sout | endl;
-
-	int start = 3, comp = 10, inc = 2;
-	for ( i; start ~ comp ~ inc + 1 ) { sout | i; } sout | endl;
-
-	for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } sout | endl;
-	for ( s; (S){10,10} ) { sout | s; } sout | endl;
-	for ( s; (S){0} ~ (S){10,10} ) { sout | s; } sout | endl;
-	for ( s; (S){0} ~ (S){10,10} ~ (S){1} ) { sout | s; } sout | endl;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa forctrl.c" //
-// End: //
Index: tests/loopctrl.c
===================================================================
--- tests/loopctrl.c	(revision 76beed8d90766c77d141e10a3618e75829663af4)
+++ tests/loopctrl.c	(revision 76beed8d90766c77d141e10a3618e75829663af4)
@@ -0,0 +1,79 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+// 
+// forctrl.c -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Wed Aug  8 18:32:59 2018
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Nov  1 23:11:23 2018
+// Update Count     : 46
+// 
+
+#include <fstream.hfa>
+
+struct S { int i, j; };
+void ?{}( S & s ) { s.[i, j] = 0; }
+void ?{}( S & s, int i ) { s.[i, j] = [i, 0]; }
+void ?{}( S & s, int i, int j ) { s.[i, j] = [i, j]; }
+void ?{}( S & s, zero_t ) { s.[i, j] = 0; }
+void ?{}( S & s, one_t ) { s.[i, j] = 1; }
+int ?<?( S t1, S t2 ) { return t1.i < t2.i && t1.j < t2.j; }
+int ?<=?( S t1, S t2 ) { return t1.i <= t2.i && t1.j <= t2.j; }
+int ?>?( S t1, S t2 ) { return t1.i > t2.i && t1.j > t2.j; }
+int ?>=?( S t1, S t2 ) { return t1.i >= t2.i && t1.j >= t2.j; }
+S ?=?( S & t1, S t2 ) { t1.i = t2.i; t1.j = t2.j; return t1; }
+S ?+=?( S & t1, S t2 ) { t1.i += t2.i; t1.j += t2.j; return t1; }
+S ?+=?( S & t, one_t ) { t.i += 1; t.j += 1; return t; }
+S ?-=?( S & t1, S t2 ) { t1.i -= t2.i; t1.j -= t2.j; return t1; }
+S ?-=?( S & t, one_t ) { t.i -= 1; t.j -= 1; return t; }
+ofstream & ?|?( ofstream & os, S v ) { return os | '(' | v.i | v.j | ')'; }
+
+int main() {
+	while () { sout | "empty"; break; }			sout | endl;
+	do { sout | "empty"; break; } while ();		sout | endl;
+	for () { sout | "empty"; break; }			sout | endl | endl;
+
+	for ( 0 ) { sout | "A"; }					sout | "zero" | endl;
+	for ( 1 ) { sout | "A"; }					sout | endl;
+	for ( 10 ) { sout | "A"; }					sout | endl;
+
+	for ( 1 ~= 10 ~ 2 ) { sout | "B"; }			sout | endl;
+	for ( 10 -~= 1 ~ 2 ) { sout | "C"; }		sout | endl;
+	for ( 0.5 ~ 5.5 ) { sout | "D"; }			sout | endl;
+	for ( 5.5 -~ 0.5 ) { sout | "E"; }			sout | endl | endl;
+
+	for ( i; 10 ) { sout | i; }					sout | endl;
+	for ( i; 1 ~= 10 ~ 2 ) { sout | i; }		sout | endl;
+	for ( i; 10 -~= 1 ~ 2 ) { sout | i; }		sout | endl;
+	for ( i; 0.5 ~ 5.5 ) { sout | i; }			sout | endl;
+	for ( i; 5.5 -~ 0.5 ) { sout | i; }			sout | endl;
+
+	for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; }	sout | endl;
+	for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; }	sout | endl | endl | endl;
+
+	int start = 3, comp = 10, inc = 2;
+	for ( i; start ~ comp ~ inc + 1 ) { sout | i; } sout | endl;
+
+	sout | endl;
+	for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } sout | endl;
+	for ( s; (S){10,10} ) { sout | s; } sout | endl;
+	sout | endl;
+	for ( s; (S){0} ~ (S){10,10} ) { sout | s; } sout | endl;
+	for ( s; (S){0} ~ (S){10,10} ~ (S){1} ) { sout | s; } sout | endl;
+	for ( s; (S){0} ~= (S){10,10} ) { sout | s; } sout | endl;
+	for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } sout | endl;
+	sout | endl;
+	for ( s; (S){10,10} -~ (S){0} ) { sout | s; } sout | endl;
+	for ( s; (S){10,10} -~ (S){0} ~ (S){1} ) { sout | s; } sout | endl;
+	for ( s; (S){10,10} -~= (S){0} ) { sout | s; } sout | endl;
+	for ( s; (S){10,10} -~= (S){0} ~ (S){1} ) { sout | s; } sout | endl;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa loopctrl.c" //
+// End: //
