Index: sts/.expect/io.nast.txt
===================================================================
--- tests/.expect/io.nast.txt	(revision a9ea758cc1936eb22255a1db92a21cfa784f2096)
+++ 	(revision )
@@ -1,88 +1,0 @@
-opening delimiters
-x (1 x [2 x {3 x =4 x $5 x £6 x ¥7 x ¡8 x ¿9 x «10
-
-closing delimiters
-1, x 2. x 3; x 4! x 5? x 6% x 7¢ x 8» x 9) x 10] x 11} x
-
-opening/closing delimiters
-x`1`x'2'x"3"x:4:x 5 x	6	x
-7
-x
-8
-x
-9
-x
-10
-x
-
-override opening/closing delimiters
-x ( 1 ) x 2 , x 3 :x: 4
-
-spacing
-0 1 2 3
-0123
-0123
-
-expressions
-9 6 28 0 7 1 2
-
-input bacis types
-
-output basic types
-false
-A 23 93
-1 2 3 4 5 6 7 8
-1.1 1.2 1.3
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-
-tuples
-1, 2, 3 4, 5, 6
-
-toggle separator
-1.11.21.3
-1.1+2.3i1.1-2.3i1.1-2.3i
-1.1+2.3i 1.1-2.3i1.1-2.3i
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-1.1+2.3i1.1-2.3i 1.1-2.3i
-abcxyz
-abcxyz
-
-change separator
-from " " to ", $"
-1.1, $1.2, $1.3
-1.1+2.3i, $1.1-2.3i, $1.1-2.3i
-abc, $xyz
-1, 2, 3, $4, 5, 6
-
-from ", $" to " "
-1.1 1.2 1.3
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-abc xyz
-1, 2, 3 4, 5, 6
-
-check sepOn/sepOff
-1 2 3
-12 3
-1 2 3
-1 2 3
-
-1 2 3
-
-check enable/disable
-123
-1 23
-1 2 3
-123
-1 2 3
-123
-1 2 3
-
-1 2 3 4 5 6 " "
-1, 2, 3 4, 5, 6 " "
-1, 2, 3 4, 5, 6
-
-3, 4, a, 7.2
-3, 4, a, 7.2
-3 4 a 7.2
-3 4 a 7.234a7.23 4 a 7.2
-3-4-a-7.2^3^4^3-4-a-7.2
Index: sts/.expect/io1.oast.txt
===================================================================
--- tests/.expect/io1.oast.txt	(revision a9ea758cc1936eb22255a1db92a21cfa784f2096)
+++ 	(revision )
@@ -1,27 +1,0 @@
-opening delimiters
-x (1 x [2 x {3 x =4 x $5 x £6 x ¥7 x ¡8 x ¿9 x «10
-
-closing delimiters
-1, x 2. x 3; x 4! x 5? x 6% x 7¢ x 8» x 9) x 10] x 11} x
-
-opening/closing delimiters
-x`1`x'2'x"3"x:4:x 5 x	6	x
-7
-x
-8
-x
-9
-x
-10
-x
-
-override opening/closing delimiters
-x ( 1 ) x 2 , x 3 :x: 4
-
-spacing
-0 1 2 3
-0123
-0123
-
-expressions
-9 6 28 0 7 1 2
Index: tests/.expect/io1.txt
===================================================================
--- tests/.expect/io1.txt	(revision 47e18f3d8c2a4b1f2f8ca96579ebf118fe285085)
+++ tests/.expect/io1.txt	(revision 47e18f3d8c2a4b1f2f8ca96579ebf118fe285085)
@@ -0,0 +1,25 @@
+9 6 28 0 7 1 2
+0 1 2 3
+0123
+0123
+
+opening delimiters
+x (1 x [2 x {3 x =4 x $5 x £6 x ¥7 x ¡8 x ¿9 x «10
+
+closing delimiters
+1, x 2. x 3; x 4! x 5? x 6% x 7 ¢ x 8 » x 9) x 10] x 11} x
+
+opening/closing delimiters
+x`1`x'2'x"3"x:4:x 5 x	6	x
+7
+x
+8
+x
+9
+x
+10
+x
+
+override opening/closing delimiters
+x ( 1 ) x 2 , x 3 :x: 4
+
Index: sts/.expect/io2.oast.txt
===================================================================
--- tests/.expect/io2.oast.txt	(revision a9ea758cc1936eb22255a1db92a21cfa784f2096)
+++ 	(revision )
@@ -1,60 +1,0 @@
-input bacis types
-
-output basic types
-false
-A 23 93
-1 2 3 4 5 6 7 8
-1.1 1.2 1.3
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-
-tuples
-1, 2, 3 4, 5, 6
-
-toggle separator
-1.11.21.3
-1.1+2.3i1.1-2.3i1.1-2.3i
-1.1+2.3i 1.1-2.3i1.1-2.3i
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-1.1+2.3i1.1-2.3i 1.1-2.3i
-abcxyz
-abcxyz
-
-change separator
-from " " to ", $"
-1.1, $1.2, $1.3
-1.1+2.3i, $1.1-2.3i, $1.1-2.3i
-abc, $xyz
-1, 2, 3, $4, 5, 6
-
-from ", $" to " "
-1.1 1.2 1.3
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-abc xyz
-1, 2, 3 4, 5, 6
-
-check sepOn/sepOff
-1 2 3
-12 3
-1 2 3
-1 2 3
-
-1 2 3
-
-check enable/disable
-123
-1 23
-1 2 3
-123
-1 2 3
-123
-1 2 3
-
-1 2 3 4 5 6 " "
-1, 2, 3 4, 5, 6 " "
-1, 2, 3 4, 5, 6
-
-3, 4, a, 7.2
-3, 4, a, 7.2
-3 4 a 7.2
-3 4 a 7.234a7.23 4 a 7.2
-3-4-a-7.2^3^4^3-4-a-7.2
Index: tests/.expect/io2.txt
===================================================================
--- tests/.expect/io2.txt	(revision 47e18f3d8c2a4b1f2f8ca96579ebf118fe285085)
+++ tests/.expect/io2.txt	(revision 47e18f3d8c2a4b1f2f8ca96579ebf118fe285085)
@@ -0,0 +1,60 @@
+input bacis types
+
+output basic types
+false
+A 23 93
+1 2 3 4 5 6 7 8
+1.1 1.2 1.3
+1.1+2.3i 1.1-2.3i 1.1-2.3i
+
+tuples
+1, 2, 3 4, 5, 6
+
+toggle separator
+1.11.21.3
+1.1+2.3i1.1-2.3i1.1-2.3i
+1.1+2.3i 1.1-2.3i1.1-2.3i
+1.1+2.3i 1.1-2.3i 1.1-2.3i
+1.1+2.3i1.1-2.3i 1.1-2.3i
+abcxyz
+abcxyz
+
+change separator
+from " " to ", $"
+1.1, $1.2, $1.3
+1.1+2.3i, $1.1-2.3i, $1.1-2.3i
+abc, $xyz
+1, 2, 3, $4, 5, 6
+
+from ", $" to " "
+1.1 1.2 1.3
+1.1+2.3i 1.1-2.3i 1.1-2.3i
+abc xyz
+1, 2, 3 4, 5, 6
+
+check sepOn/sepOff
+1 2 3
+12 3
+1 2 3
+1 2 3
+
+1 2 3
+
+check enable/disable
+123
+1 23
+1 2 3
+123
+1 2 3
+123
+1 2 3
+
+1 2 3 4 5 6 " "
+1, 2, 3 4, 5, 6 " "
+1, 2, 3 4, 5, 6
+
+3, 4, a, 7.2
+3, 4, a, 7.2
+3 4 a 7.2
+3 4 a 7.234a7.23 4 a 7.2
+3-4-a-7.2^3^4^3-4-a-7.2
Index: sts/io.cfa
===================================================================
--- tests/io.cfa	(revision a9ea758cc1936eb22255a1db92a21cfa784f2096)
+++ 	(revision )
@@ -1,191 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// io.cfa --
-//
-// Author           : Peter A. Buhr
-// Created On       : Wed Mar  2 16:56:02 2016
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Feb 21 10:56:33 2021
-// Update Count     : 121
-//
-
-#include <fstream.hfa>
-
-#define xstr(s) str(s)
-#define str(s) #s
-
-int main() {
-	sout | nlOff;										// auto nl off
-
-	sout | "opening delimiters" | nl;
-	sout | "x (" | 1;
-	sout | "x [" | 2;
-	sout | "x {" | 3;
-	sout | "x =" | 4;
-	sout | "x $" | 5;
-	sout | "x £" | 6;
-	sout | "x ¥" | 7;
-	sout | "x ¡" | 8;
-	sout | "x ¿" | 9;
-	sout | "x «" | 10;
-	sout | nl | nl;
-
-	sout | "closing delimiters" | nl;
-	sout | 1 | ", x";
-	sout | 2 | ". x";
-	sout | 3 | "; x";
-	sout | 4 | "! x";
-	sout | 5 | "? x";
-	sout | 6 | "% x";
-	sout | 7 | "¢ x";
-	sout | 8 | "» x";
-	sout | 9 | ") x";
-	sout | 10 | "] x";
-	sout | 11 | "} x";
-	sout | nl | nl;
-
-	sout | "opening/closing delimiters" | nl;
-	sout | "x`" | 1 | "`x'" | 2;
-	sout | "'x\"" | 3 | "\"x:" | 4;
-	sout | ":x " | 5 | " x\t" | 6;
-	sout | "\tx\f" | 7 | "\fx\v" | 8;
-	sout | "\vx\n" | 9 | "\nx\r" | 10;
-	sout | "\rx";
-	sout | nl | nl;
-
-	sout | nlOn;										// auto nl on
-
-	sout | "override opening/closing delimiters";
-	sout | "x ( " | 1 | " ) x" | 2 | " , x" | 3 | " :x: " | 4;
-	sout | nl;
-
-	sout | "spacing";
-	sout | 0 | 1 | 2 | 3;
-	sout | '0' | '1' | '2' | '3';
-	sout | 0 | "" | 1 | "" | 2 | "" | 3;
-	sout | nl;
-
-	sout | "expressions";
-	int x = 3, y = 5, z = 7;
-	sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2);
-	sout | nl;
-
-	_Bool b;											// basic types
-	char c;
-	signed char sc;
-	unsigned char usc;
-	short int si;
-	unsigned short int usi;
-	int i;
-	unsigned int ui;
-	long int li;
-	unsigned long int uli;
-	long long int lli;
-	unsigned long long int ulli;
-	float f;
-	double d;
-	long double ld;
-	float _Complex fc;
-	double _Complex dc;
-	long double _Complex ldc;
-	enum { size = 10 };
-	char s1[size], s2[size];
-
-	ifstream in = { xstr(IN_DIR) "io.data" };			// create / open file
-
-	sout | "input bacis types";
-	in	 | b;											// boolean
-	in	 | c | sc | usc;								// character
-	in	 | si | usi | i | ui | li | uli | lli | ulli;	// integral
-	in	 | f | d | ld;									// floating point
-	in	 | fc | dc | ldc;								// floating-point complex
-	in	 | s1 | wdi( size, s2 );						// C string, length unchecked and checked
-	sout | nl;
-
-	sout | "output basic types";
-	sout | b;											// boolean
-	sout | c | ' ' | sc | ' ' | usc;					// character
-	sout | si | usi | i | ui | li | uli | lli | ulli;	// integral
-	sout | f | d | ld;									// floating point
-	sout | fc | dc | ldc;								// complex
-	sout | nl;
-
-	sout | "tuples";
-	[int, [ int, int ] ] t1 = [ 1, [ 2, 3 ] ], t2 = [ 4, [ 5, 6 ] ];
-	sout | t1 | t2;										// print tuple
-	sout | nl;
-
-	sout | "toggle separator";
-	sout | f | "" | d | "" | ld;						// floating point without separator
-	sout | sepDisable | fc | dc | ldc;					// complex without separator
-	sout | fc | sepOn | dc | ldc;						// local separator add
-	sout | sepEnable | fc | dc | ldc;					// complex with separator
-	sout | fc | sepOff | dc | ldc;						// local separator removal
-	sout | s1 | sepOff | s2;							// local separator removal
-	sout | s1 | "" | s2;								// local separator removal
-	sout | nl;
-
-	sout | "change separator";
-	sout | "from \"" | sep | "\"" | nonl;
-	sepSet( sout, ", $" );								// change separator, maximum of 15 characters
-	sout | " to \"" | sep | "\"";
-	sout | f | d | ld;
-	sout | fc | dc | ldc;
-	sout | s1 | s2;
-	sout | t1 | t2;										// print tuple
-	sout | nl;
-	sout | "from \"" | sep | "\" " | nonl;
-	sepSet( sout, " " );								// restore separator
-	sout | "to \"" | sep | "\"";
-	sout | f | d | ld;
-	sout | fc | dc | ldc;
-	sout | s1 | s2;
-	sout | t1 | t2;										// print tuple
-	sout | nl;
-
-	sout | "check sepOn/sepOff";
-	sout | sepOn | 1 | 2 | 3 | sepOn;					// no separator at start/end of line
-	sout | 1 | sepOff | 2 | 3;							// locally turn off implicit separator
-	sout | sepOn | sepOn | 1 | 2 | 3 | sepOn | sepOff | sepOn | '\n' | nonl; // no separator at start/end of line
-	sout | 1 | 2 | 3 | "\n\n" | sepOn | nonl;			// no separator at start of next line
-	sout | 1 | 2 | 3;
-	sout | nl;
-
-	sout | "check enable/disable";
-	sout | sepDisable | 1 | 2 | 3;						// globally turn off implicit separation
-	sout | 1 | sepOn | 2 | 3;							// locally turn on implicit separator
-	sout | sepEnable | 1 | 2 | 3 | sepDisable;			// globally turn on/off implicit separation
-	sout | 1 | 2 | 3 | sepEnable;						// globally turn on implicit separation
-	sout | 1 | 2 | 3 | sepOn | sepDisable;				// ignore seperate at end of line
-	sout | 1 | 2 | 3 | sepOn | sepEnable;				// separator at end of line
-	sout | 1 | 2 | 3;
-	sout | nl;
-
-//	sout | fmt( d, "%8.3f" );
-
-	sepSetTuple( sout, " " );							// set tuple separator from ", " to " "
-	sout | t1 | t2 | " \"" | sep | "\"";
-	sepSetTuple( sout, ", " );							// reset tuple separator to ", "
-	sout | t1 | t2 | " \"" | sep | "\"";
-	sout | t1 | t2;										// print tuple
-	sout | nl;
-
-	[int, int, const char *, double] t3 = { 3, 4, "a", 7.2 };
-	sout | [ 3, 4, (const char*)"a", 7.2 ];             // workaround trac#207: the const cast should not be needed
-	sout | t3;
-	sepSetTuple( sout, " " );
-	sout | t3;
-	sout | sepOn | t3 | sepDisable | t3 | sepEnable | t3;
-	sepSet( sout, "^" );
-	sepSetTuple( sout, "-" );
-	sout | t3 | 3 | 4 | t3;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa -DIN_DIR=\".in/\" io.cfa" //
-// End: //
Index: tests/io1.cfa
===================================================================
--- tests/io1.cfa	(revision a9ea758cc1936eb22255a1db92a21cfa784f2096)
+++ tests/io1.cfa	(revision 47e18f3d8c2a4b1f2f8ca96579ebf118fe285085)
@@ -10,6 +10,6 @@
 // Created On       : Wed Mar  2 16:56:02 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Feb 21 10:07:07 2021
-// Update Count     : 119
+// Last Modified On : Mon Mar  4 21:42:47 2019
+// Update Count     : 115
 //
 
@@ -17,6 +17,12 @@
 
 int main() {
-	sout | nlOff;										// auto nl off
+	int x = 3, y = 5, z = 7;
+	sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2);
+	sout | 0 | 1 | 2 | 3;
+	sout | '0' | '1' | '2' | '3';
+	sout | 0 | "" | 1 | "" | 2 | "" | 3;
+	sout | nl;
 
+	sout | nlOff;
 	sout | "opening delimiters" | nl;
 	sout | "x (" | 1;
@@ -55,19 +61,8 @@
 	sout | nl | nl;
 
-	sout | nlOn;										// auto nl on
-
+	sout | nlOn;
 	sout | "override opening/closing delimiters";
 	sout | "x ( " | 1 | " ) x" | 2 | " , x" | 3 | " :x: " | 4;
 	sout | nl;
-
-	sout | "spacing";
-	sout | 0 | 1 | 2 | 3;
-	sout | '0' | '1' | '2' | '3';
-	sout | 0 | "" | 1 | "" | 2 | "" | 3;
-	sout | nl;
-
-	sout | "expressions";
-	int x = 3, y = 5, z = 7;
-	sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2);
 }
 
