Index: src/CodeGen/CodeGenerator.h
===================================================================
--- src/CodeGen/CodeGenerator.h	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/CodeGen/CodeGenerator.h	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Tue Jun 02 13:43:29 2015
-// Update Count     : 14
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Mon Jun  8 14:34:43 2015
+// Update Count     : 15
 //
 
@@ -17,5 +17,4 @@
 #define CODEGENV_H
 
-#include <strstream>
 #include <list>
 
Index: src/CodeGen/GenType.cc
===================================================================
--- src/CodeGen/GenType.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/CodeGen/GenType.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,9 +10,9 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jun  4 14:04:58 2015
-// Update Count     : 4
-//
-
-#include <strstream>
+// Last Modified On : Mon Jun  8 14:36:02 2015
+// Update Count     : 9
+//
+
+#include <sstream>
 #include <cassert>
 
@@ -68,5 +68,5 @@
 
 	void GenType::genArray( const Type::Qualifiers &qualifiers, Type *base, Expression *dimension, bool isVarLen, bool isStatic ) {
-		std::ostrstream os;
+		std::ostringstream os;
 		if ( typeString != "" ) {
 			if ( typeString[ 0 ] == '*' ) {
@@ -102,5 +102,5 @@
 		os << "]";
 
-		typeString = std::string( os.str(), os.pcount() );
+		typeString = os.str();
   
 		base->accept( *this );
@@ -127,5 +127,5 @@
 
 	void GenType::visit( FunctionType *funcType ) {
-		std::ostrstream os;
+		std::ostringstream os;
 
 		if ( typeString != "" ) {
@@ -159,5 +159,5 @@
 		} // if
   
-		typeString = std::string( os.str(), os.pcount() );
+		typeString = os.str();
 
 		if ( funcType->get_returnVals().size() == 0 ) {
Index: src/Common/SemanticError.h
===================================================================
--- src/Common/SemanticError.h	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Common/SemanticError.h	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue May 19 07:22:23 2015
-// Update Count     : 1
+// Last Modified On : Mon Jun  8 14:38:53 2015
+// Update Count     : 4
 //
 
@@ -19,5 +19,5 @@
 #include <exception>
 #include <string>
-#include <strstream>
+#include <sstream>
 #include <list>
 #include <iostream>
@@ -42,8 +42,8 @@
 template< typename T >
 SemanticError::SemanticError( const std::string &error, const T *obj ) {
-	std::ostrstream os;
+	std::ostringstream os;
 	os << "Error: " << error;
 	obj->print( os );
-	errors.push_back( std::string( os.str(), os.pcount() ) );
+	errors.push_back( os.str() );
 }
 
Index: src/Common/UniqueName.cc
===================================================================
--- src/Common/UniqueName.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Common/UniqueName.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,10 +10,10 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue May 19 07:23:41 2015
-// Update Count     : 1
+// Last Modified On : Mon Jun  8 14:47:49 2015
+// Update Count     : 3
 //
 
 #include <string>
-#include <strstream>
+#include <sstream>
 
 #include "UniqueName.h"
@@ -23,7 +23,7 @@
 
 std::string UniqueName::newName( const std::string &additional ) {
-	std::ostrstream os;
+	std::ostringstream os;
 	os << base << additional << count++;
-	return std::string( os.str(), os.pcount() );
+	return os.str();
 }
 
Index: src/Common/utility.h
===================================================================
--- src/Common/utility.h	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Common/utility.h	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jun  4 21:29:57 2015
-// Update Count     : 9
+// Last Modified On : Mon Jun  8 14:43:54 2015
+// Update Count     : 13
 //
 
@@ -18,5 +18,5 @@
 
 #include <iostream>
-#include <strstream>
+#include <sstream>
 #include <iterator>
 #include <string>
@@ -130,10 +130,7 @@
 template < typename T > 
 std::string toString ( T value ) {
-	std::ostrstream os;
-  
+	std::ostringstream os;
 	os << value; // << std::ends;
-	os.freeze( false );
-
-	return std::string(os.str(), os.pcount());
+	return os.str();
 }
 
Index: src/ControlStruct/LabelGenerator.cc
===================================================================
--- src/ControlStruct/LabelGenerator.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/ControlStruct/LabelGenerator.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -9,11 +9,11 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Wed Jun 03 14:23:26 2015
-// Update Count     : 9
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Mon Jun  8 14:45:07 2015
+// Update Count     : 12
 //
 
 #include <iostream>
-#include <strstream>
+#include <sstream>
 
 #include "LabelGenerator.h"
@@ -30,8 +30,7 @@
 
 	Label LabelGenerator::newLabel(std::string suffix) {
-		std::ostrstream os;
+		std::ostringstream os;
 		os << "__L" << current++ << "__" << suffix;
-		os.freeze( false );
-		std::string ret = std::string (os.str(), os.pcount());
+		std::string ret = os.str();
 		return Label( ret );
 	}
Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Parser/ExpressionNode.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:17:07 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jun  7 07:58:00 2015
-// Update Count     : 135
+// Last Modified On : Mon Jun  8 17:33:40 2015
+// Update Count     : 147
 // 
 
@@ -93,6 +93,5 @@
 static inline bool checkX( char c ) { return c == 'x' || c == 'X'; }
 
-// Very difficult to separate extra parts of constants during lexing because actions are not allow in the middle of
-// patterns:
+// Difficult to separate extra parts of constants during lexing because actions are not allow in the middle of patterns:
 //
 //		prefix action constant action suffix
@@ -130,5 +129,5 @@
 				} // if
 			} else {									// decimal constant ?
-				sscanf( (char *)value.c_str(), "%lld", &v );
+				sscanf( (char *)value.c_str(), "%llu", &v );
 				//printf( "%llu %llu\n", v, v );
 			} // if
@@ -136,24 +135,24 @@
 			if ( v <= INT_MAX ) {						// signed int
 				size = 0;
-			} else if ( v <= UINT_MAX ) {				// unsigned int
+			} else if ( v <= UINT_MAX && ! dec ) {		// unsigned int
 				size = 0;
-				if ( ! dec ) Unsigned = true;			// unsigned
+				Unsigned = true;						// unsigned
 			} else if ( v <= LONG_MAX ) {				// signed long int
 				size = 1;
-			} else if ( v <= ULONG_MAX ) {				// signed long int
+			} else if ( v <= ULONG_MAX && ( ! dec || LONG_MAX == LLONG_MAX ) ) { // signed long int
 				size = 1;
-				if ( ! dec ) Unsigned = true;			// unsigned long int
+				Unsigned = true;						// unsigned long int
 			} else if ( v <= LLONG_MAX ) {				// signed long long int
 				size = 2;
-			} else {									// signed long long int
+			} else {									// unsigned long long int
 				size = 2;
-				if ( ! dec ) Unsigned = true;			// unsigned long long int
+				Unsigned = true;						// unsigned long long int
 			} // if
 
 			if ( checkU( value[last] ) ) {				// suffix 'u' ?
 				Unsigned = true;
-				if ( checkL( value[ last - 1 ] ) ) {	// suffix 'l' ?
+				if ( last > 0 && checkL( value[ last - 1 ] ) ) { // suffix 'l' ?
 					size = 1;
-					if ( checkL( value[ last - 1 ] ) ) { // suffix 'll' ?
+					if ( last > 1 && checkL( value[ last - 2 ] ) ) { // suffix 'll' ?
 						size = 2;
 					} // if
@@ -161,9 +160,13 @@
 			} else if ( checkL( value[ last ] ) ) {		// suffix 'l' ?
 				size = 1;
-				if ( checkL( value[ last - 1 ] ) ) {	// suffix 'll' ?
+				if ( last > 0 && checkL( value[ last - 1 ] ) ) { // suffix 'll' ?
 					size = 2;
-				} // if
-				if ( checkU( value[ last - 1 ] ) ) {	// suffix 'u' ?
-					Unsigned = true;
+					if ( last > 1 && checkU( value[ last - 2 ] ) ) { // suffix 'u' ?
+						Unsigned = true;
+					} // if
+				} else {
+					if ( last > 0 && checkU( value[ last - 1 ] ) ) { // suffix 'u' ?
+						Unsigned = true;
+					} // if
 				} // if
 			} // if
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Parser/ParseNode.h	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:28:16 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jun  7 07:42:50 2015
-// Update Count     : 64
+// Last Modified On : Sun Jun  7 22:02:00 2015
+// Update Count     : 65
 //
 
@@ -337,5 +337,5 @@
 
 	bool get_hasEllipsis() const;
-	std::string get_name() const { return name; }
+	const std::string &get_name() const { return name; }
 	LinkageSpec::Type get_linkage() const { return linkage; }
 	DeclarationNode *extractAggregate() const;
Index: src/Parser/lex.cc
===================================================================
--- src/Parser/lex.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Parser/lex.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1390,8 +1390,8 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Sun Jun  7 07:14:16 2015
- * Update Count     : 374
- */
-#line 19 "lex.ll"
+ * Last Modified On : Mon Jun  8 20:24:15 2015
+ * Update Count     : 381
+ */
+#line 20 "lex.ll"
 // This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive
 // have been performed and removed from the source. The only exceptions are preprocessor directives passed to
@@ -1409,24 +1409,17 @@
 std::string *strtext;									// accumulate parts of character and string constant value
 
+#define RETURN_LOCN(x)		yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return(x)
+#define RETURN_VAL(x)		yylval.tok.str = new std::string( yytext ); RETURN_LOCN(x)
+#define RETURN_CHAR(x)		yylval.tok.str = NULL; RETURN_LOCN(x)
+#define RETURN_STR(x)		yylval.tok.str = strtext; RETURN_LOCN(x)
+
 #define WHITE_RETURN(x)									// do nothing
 #define NEWLINE_RETURN()	WHITE_RETURN('\n')
-#define RETURN_VAL(x)		yylval.tok.str = new std::string( yytext ); \
-		                        yylval.tok.loc.file = yyfilename; \
-		                        yylval.tok.loc.line = yylineno; \
-		                        return(x)
-#define RETURN_STR(x)		yylval.tok.str = strtext; \
-		                        yylval.tok.loc.file = yyfilename; \
-		                        yylval.tok.loc.line = yylineno; \
-		                        return(x)
-
-#define KEYWORD_RETURN(x)	RETURN_VAL(x)				// keyword
+#define ASCIIOP_RETURN()	RETURN_CHAR((int)yytext[0])	// single character operator
+#define NAMEDOP_RETURN(x)	RETURN_VAL(x)				// multichar operator, with a name
+#define NUMERIC_RETURN(x)	rm_underscore(); RETURN_VAL(x) // numeric constant
+#define KEYWORD_RETURN(x)	RETURN_CHAR(x)				// keyword
 #define IDENTIFIER_RETURN()	RETURN_VAL((typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname))
-//#define ATTRIBUTE_RETURN()	RETURN_VAL((typedefTable.isIdentifier(yytext) ? ATTR_IDENTIFIER : typedefTable.isTypedef(yytext) ? ATTR_TYPEDEFname : ATTR_TYPEGENname))
 #define ATTRIBUTE_RETURN()	RETURN_VAL(ATTR_IDENTIFIER)
-
-#define ASCIIOP_RETURN()	RETURN_VAL((int)yytext[0])	// single character operator
-#define NAMEDOP_RETURN(x)	RETURN_VAL(x)				// multichar operator, with a name
-
-#define NUMERIC_RETURN(x)	rm_underscore(); RETURN_VAL(x) // numeric constant
 
 void rm_underscore() {
@@ -1455,5 +1448,5 @@
 
 
-#line 1458 "Parser/lex.cc"
+#line 1451 "Parser/lex.cc"
 
 #define INITIAL 0
@@ -1518,6 +1511,4 @@
 #endif
 
-    static void yyunput (int c,char *buf_ptr  );
-    
 #ifndef yytext_ptr
 static void yy_flex_strncpy (char *,yyconst char *,int );
@@ -1649,8 +1640,8 @@
 	register int yy_act;
     
-#line 142 "lex.ll"
+#line 136 "lex.ll"
 
 				   /* line directives */
-#line 1655 "Parser/lex.cc"
+#line 1646 "Parser/lex.cc"
 
 	if ( !(yy_init) )
@@ -1749,5 +1740,5 @@
 /* rule 1 can match eol */
 YY_RULE_SETUP
-#line 144 "lex.ll"
+#line 138 "lex.ll"
 {
 	/* " stop highlighting */
@@ -1776,5 +1767,5 @@
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 167 "lex.ll"
+#line 161 "lex.ll"
 ;
 	YY_BREAK
@@ -1782,5 +1773,5 @@
 case 3:
 YY_RULE_SETUP
-#line 170 "lex.ll"
+#line 164 "lex.ll"
 { BEGIN COMMENT; }
 	YY_BREAK
@@ -1788,10 +1779,10 @@
 /* rule 4 can match eol */
 YY_RULE_SETUP
-#line 171 "lex.ll"
+#line 165 "lex.ll"
 ;
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 172 "lex.ll"
+#line 166 "lex.ll"
 { BEGIN 0; }
 	YY_BREAK
@@ -1800,5 +1791,5 @@
 /* rule 6 can match eol */
 YY_RULE_SETUP
-#line 175 "lex.ll"
+#line 169 "lex.ll"
 ;
 	YY_BREAK
@@ -1806,10 +1797,10 @@
 case 7:
 YY_RULE_SETUP
-#line 178 "lex.ll"
+#line 172 "lex.ll"
 { WHITE_RETURN(' '); }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 179 "lex.ll"
+#line 173 "lex.ll"
 { WHITE_RETURN(' '); }
 	YY_BREAK
@@ -1817,5 +1808,5 @@
 /* rule 9 can match eol */
 YY_RULE_SETUP
-#line 180 "lex.ll"
+#line 174 "lex.ll"
 { NEWLINE_RETURN(); }
 	YY_BREAK
@@ -1823,425 +1814,425 @@
 case 10:
 YY_RULE_SETUP
+#line 177 "lex.ll"
+{ KEYWORD_RETURN(ALIGNAS); }			// C11
+	YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 178 "lex.ll"
+{ KEYWORD_RETURN(ALIGNOF); }			// C11
+	YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 179 "lex.ll"
+{ KEYWORD_RETURN(ALIGNOF); }			// GCC
+	YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 180 "lex.ll"
+{ KEYWORD_RETURN(ALIGNOF); }			// GCC
+	YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 181 "lex.ll"
+{ KEYWORD_RETURN(ASM); }
+	YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 182 "lex.ll"
+{ KEYWORD_RETURN(ASM); }				// GCC
+	YY_BREAK
+case 16:
+YY_RULE_SETUP
 #line 183 "lex.ll"
-{ KEYWORD_RETURN(ALIGNAS); }			// C11
-	YY_BREAK
-case 11:
+{ KEYWORD_RETURN(ASM); }				// GCC
+	YY_BREAK
+case 17:
 YY_RULE_SETUP
 #line 184 "lex.ll"
-{ KEYWORD_RETURN(ALIGNOF); }			// C11
-	YY_BREAK
-case 12:
+{ KEYWORD_RETURN(ATOMIC); }				// C11
+	YY_BREAK
+case 18:
 YY_RULE_SETUP
 #line 185 "lex.ll"
-{ KEYWORD_RETURN(ALIGNOF); }			// GCC
-	YY_BREAK
-case 13:
+{ KEYWORD_RETURN(ATTRIBUTE); }			// GCC
+	YY_BREAK
+case 19:
 YY_RULE_SETUP
 #line 186 "lex.ll"
-{ KEYWORD_RETURN(ALIGNOF); }			// GCC
-	YY_BREAK
-case 14:
+{ KEYWORD_RETURN(ATTRIBUTE); }			// GCC
+	YY_BREAK
+case 20:
 YY_RULE_SETUP
 #line 187 "lex.ll"
-{ KEYWORD_RETURN(ASM); }
-	YY_BREAK
-case 15:
+{ KEYWORD_RETURN(AUTO); }
+	YY_BREAK
+case 21:
 YY_RULE_SETUP
 #line 188 "lex.ll"
-{ KEYWORD_RETURN(ASM); }				// GCC
-	YY_BREAK
-case 16:
+{ KEYWORD_RETURN(BOOL); }				// C99
+	YY_BREAK
+case 22:
 YY_RULE_SETUP
 #line 189 "lex.ll"
-{ KEYWORD_RETURN(ASM); }				// GCC
-	YY_BREAK
-case 17:
+{ KEYWORD_RETURN(BREAK); }
+	YY_BREAK
+case 23:
 YY_RULE_SETUP
 #line 190 "lex.ll"
-{ KEYWORD_RETURN(ATOMIC); }				// C11
-	YY_BREAK
-case 18:
+{ KEYWORD_RETURN(CASE); }
+	YY_BREAK
+case 24:
 YY_RULE_SETUP
 #line 191 "lex.ll"
-{ KEYWORD_RETURN(ATTRIBUTE); }			// GCC
-	YY_BREAK
-case 19:
+{ KEYWORD_RETURN(CATCH); }				// CFA
+	YY_BREAK
+case 25:
 YY_RULE_SETUP
 #line 192 "lex.ll"
-{ KEYWORD_RETURN(ATTRIBUTE); }			// GCC
-	YY_BREAK
-case 20:
+{ KEYWORD_RETURN(CHAR); }
+	YY_BREAK
+case 26:
 YY_RULE_SETUP
 #line 193 "lex.ll"
-{ KEYWORD_RETURN(AUTO); }
-	YY_BREAK
-case 21:
+{ KEYWORD_RETURN(CHOOSE); }				// CFA
+	YY_BREAK
+case 27:
 YY_RULE_SETUP
 #line 194 "lex.ll"
-{ KEYWORD_RETURN(BOOL); }				// C99
-	YY_BREAK
-case 22:
+{ KEYWORD_RETURN(COMPLEX); }			// C99
+	YY_BREAK
+case 28:
 YY_RULE_SETUP
 #line 195 "lex.ll"
-{ KEYWORD_RETURN(BREAK); }
-	YY_BREAK
-case 23:
+{ KEYWORD_RETURN(COMPLEX); }			// GCC
+	YY_BREAK
+case 29:
 YY_RULE_SETUP
 #line 196 "lex.ll"
-{ KEYWORD_RETURN(CASE); }
-	YY_BREAK
-case 24:
+{ KEYWORD_RETURN(COMPLEX); }			// GCC
+	YY_BREAK
+case 30:
 YY_RULE_SETUP
 #line 197 "lex.ll"
-{ KEYWORD_RETURN(CATCH); }				// CFA
-	YY_BREAK
-case 25:
+{ KEYWORD_RETURN(CONST); }
+	YY_BREAK
+case 31:
 YY_RULE_SETUP
 #line 198 "lex.ll"
-{ KEYWORD_RETURN(CHAR); }
-	YY_BREAK
-case 26:
+{ KEYWORD_RETURN(CONST); }				// GCC
+	YY_BREAK
+case 32:
 YY_RULE_SETUP
 #line 199 "lex.ll"
-{ KEYWORD_RETURN(CHOOSE); }				// CFA
-	YY_BREAK
-case 27:
+{ KEYWORD_RETURN(CONST); }				// GCC
+	YY_BREAK
+case 33:
 YY_RULE_SETUP
 #line 200 "lex.ll"
-{ KEYWORD_RETURN(COMPLEX); }			// C99
-	YY_BREAK
-case 28:
+{ KEYWORD_RETURN(CONTEXT); }			// CFA
+	YY_BREAK
+case 34:
 YY_RULE_SETUP
 #line 201 "lex.ll"
-{ KEYWORD_RETURN(COMPLEX); }			// GCC
-	YY_BREAK
-case 29:
+{ KEYWORD_RETURN(CONTINUE); }
+	YY_BREAK
+case 35:
 YY_RULE_SETUP
 #line 202 "lex.ll"
-{ KEYWORD_RETURN(COMPLEX); }			// GCC
-	YY_BREAK
-case 30:
+{ KEYWORD_RETURN(DEFAULT); }
+	YY_BREAK
+case 36:
 YY_RULE_SETUP
 #line 203 "lex.ll"
-{ KEYWORD_RETURN(CONST); }
-	YY_BREAK
-case 31:
+{ KEYWORD_RETURN(DO); }
+	YY_BREAK
+case 37:
 YY_RULE_SETUP
 #line 204 "lex.ll"
-{ KEYWORD_RETURN(CONST); }				// GCC
-	YY_BREAK
-case 32:
+{ KEYWORD_RETURN(DOUBLE); }
+	YY_BREAK
+case 38:
 YY_RULE_SETUP
 #line 205 "lex.ll"
-{ KEYWORD_RETURN(CONST); }				// GCC
-	YY_BREAK
-case 33:
+{ KEYWORD_RETURN(DTYPE); }				// CFA
+	YY_BREAK
+case 39:
 YY_RULE_SETUP
 #line 206 "lex.ll"
-{ KEYWORD_RETURN(CONTEXT); }			// CFA
-	YY_BREAK
-case 34:
+{ KEYWORD_RETURN(ELSE); }
+	YY_BREAK
+case 40:
 YY_RULE_SETUP
 #line 207 "lex.ll"
-{ KEYWORD_RETURN(CONTINUE); }
-	YY_BREAK
-case 35:
+{ KEYWORD_RETURN(ENUM); }
+	YY_BREAK
+case 41:
 YY_RULE_SETUP
 #line 208 "lex.ll"
-{ KEYWORD_RETURN(DEFAULT); }
-	YY_BREAK
-case 36:
+{ KEYWORD_RETURN(EXTENSION); }			// GCC
+	YY_BREAK
+case 42:
 YY_RULE_SETUP
 #line 209 "lex.ll"
-{ KEYWORD_RETURN(DO); }
-	YY_BREAK
-case 37:
+{ KEYWORD_RETURN(EXTERN); }
+	YY_BREAK
+case 43:
 YY_RULE_SETUP
 #line 210 "lex.ll"
-{ KEYWORD_RETURN(DOUBLE); }
-	YY_BREAK
-case 38:
+{ KEYWORD_RETURN(FALLTHRU); }			// CFA
+	YY_BREAK
+case 44:
 YY_RULE_SETUP
 #line 211 "lex.ll"
-{ KEYWORD_RETURN(DTYPE); }				// CFA
-	YY_BREAK
-case 39:
+{ KEYWORD_RETURN(FINALLY); }			// CFA
+	YY_BREAK
+case 45:
 YY_RULE_SETUP
 #line 212 "lex.ll"
-{ KEYWORD_RETURN(ELSE); }
-	YY_BREAK
-case 40:
+{ KEYWORD_RETURN(FLOAT); }
+	YY_BREAK
+case 46:
 YY_RULE_SETUP
 #line 213 "lex.ll"
-{ KEYWORD_RETURN(ENUM); }
-	YY_BREAK
-case 41:
+{ KEYWORD_RETURN(FLOAT); }				// GCC
+	YY_BREAK
+case 47:
 YY_RULE_SETUP
 #line 214 "lex.ll"
-{ KEYWORD_RETURN(EXTENSION); }			// GCC
-	YY_BREAK
-case 42:
+{ KEYWORD_RETURN(FOR); }
+	YY_BREAK
+case 48:
 YY_RULE_SETUP
 #line 215 "lex.ll"
-{ KEYWORD_RETURN(EXTERN); }
-	YY_BREAK
-case 43:
+{ KEYWORD_RETURN(FORALL); }				// CFA
+	YY_BREAK
+case 49:
 YY_RULE_SETUP
 #line 216 "lex.ll"
-{ KEYWORD_RETURN(FALLTHRU); }			// CFA
-	YY_BREAK
-case 44:
+{ KEYWORD_RETURN(FORTRAN); }
+	YY_BREAK
+case 50:
 YY_RULE_SETUP
 #line 217 "lex.ll"
-{ KEYWORD_RETURN(FINALLY); }			// CFA
-	YY_BREAK
-case 45:
+{ KEYWORD_RETURN(FTYPE); }				// CFA
+	YY_BREAK
+case 51:
 YY_RULE_SETUP
 #line 218 "lex.ll"
-{ KEYWORD_RETURN(FLOAT); }
-	YY_BREAK
-case 46:
+{ KEYWORD_RETURN(GENERIC); }			// C11
+	YY_BREAK
+case 52:
 YY_RULE_SETUP
 #line 219 "lex.ll"
-{ KEYWORD_RETURN(FLOAT); }				// GCC
-	YY_BREAK
-case 47:
+{ KEYWORD_RETURN(GOTO); }
+	YY_BREAK
+case 53:
 YY_RULE_SETUP
 #line 220 "lex.ll"
-{ KEYWORD_RETURN(FOR); }
-	YY_BREAK
-case 48:
+{ KEYWORD_RETURN(IF); }
+	YY_BREAK
+case 54:
 YY_RULE_SETUP
 #line 221 "lex.ll"
-{ KEYWORD_RETURN(FORALL); }				// CFA
-	YY_BREAK
-case 49:
+{ KEYWORD_RETURN(IMAGINARY); }			// C99
+	YY_BREAK
+case 55:
 YY_RULE_SETUP
 #line 222 "lex.ll"
-{ KEYWORD_RETURN(FORTRAN); }
-	YY_BREAK
-case 50:
+{ KEYWORD_RETURN(IMAGINARY); }			// GCC
+	YY_BREAK
+case 56:
 YY_RULE_SETUP
 #line 223 "lex.ll"
-{ KEYWORD_RETURN(FTYPE); }				// CFA
-	YY_BREAK
-case 51:
+{ KEYWORD_RETURN(IMAGINARY); }			// GCC
+	YY_BREAK
+case 57:
 YY_RULE_SETUP
 #line 224 "lex.ll"
-{ KEYWORD_RETURN(GENERIC); }			// C11
-	YY_BREAK
-case 52:
+{ KEYWORD_RETURN(INLINE); }				// C99
+	YY_BREAK
+case 58:
 YY_RULE_SETUP
 #line 225 "lex.ll"
-{ KEYWORD_RETURN(GOTO); }
-	YY_BREAK
-case 53:
+{ KEYWORD_RETURN(INLINE); }				// GCC
+	YY_BREAK
+case 59:
 YY_RULE_SETUP
 #line 226 "lex.ll"
-{ KEYWORD_RETURN(IF); }
-	YY_BREAK
-case 54:
+{ KEYWORD_RETURN(INLINE); }				// GCC
+	YY_BREAK
+case 60:
 YY_RULE_SETUP
 #line 227 "lex.ll"
-{ KEYWORD_RETURN(IMAGINARY); }			// C99
-	YY_BREAK
-case 55:
+{ KEYWORD_RETURN(INT); }
+	YY_BREAK
+case 61:
 YY_RULE_SETUP
 #line 228 "lex.ll"
-{ KEYWORD_RETURN(IMAGINARY); }			// GCC
-	YY_BREAK
-case 56:
+{ KEYWORD_RETURN(INT); }				// GCC
+	YY_BREAK
+case 62:
 YY_RULE_SETUP
 #line 229 "lex.ll"
-{ KEYWORD_RETURN(IMAGINARY); }			// GCC
-	YY_BREAK
-case 57:
+{ KEYWORD_RETURN(LABEL); }				// GCC
+	YY_BREAK
+case 63:
 YY_RULE_SETUP
 #line 230 "lex.ll"
-{ KEYWORD_RETURN(INLINE); }				// C99
-	YY_BREAK
-case 58:
+{ KEYWORD_RETURN(LONG); }
+	YY_BREAK
+case 64:
 YY_RULE_SETUP
 #line 231 "lex.ll"
-{ KEYWORD_RETURN(INLINE); }				// GCC
-	YY_BREAK
-case 59:
+{ KEYWORD_RETURN(LVALUE); }				// CFA
+	YY_BREAK
+case 65:
 YY_RULE_SETUP
 #line 232 "lex.ll"
-{ KEYWORD_RETURN(INLINE); }				// GCC
-	YY_BREAK
-case 60:
+{ KEYWORD_RETURN(NORETURN); }			// C11
+	YY_BREAK
+case 66:
 YY_RULE_SETUP
 #line 233 "lex.ll"
-{ KEYWORD_RETURN(INT); }
-	YY_BREAK
-case 61:
+{ KEYWORD_RETURN(REGISTER); }
+	YY_BREAK
+case 67:
 YY_RULE_SETUP
 #line 234 "lex.ll"
-{ KEYWORD_RETURN(INT); }				// GCC
-	YY_BREAK
-case 62:
+{ KEYWORD_RETURN(RESTRICT); }			// C99
+	YY_BREAK
+case 68:
 YY_RULE_SETUP
 #line 235 "lex.ll"
-{ KEYWORD_RETURN(LABEL); }				// GCC
-	YY_BREAK
-case 63:
+{ KEYWORD_RETURN(RESTRICT); }			// GCC
+	YY_BREAK
+case 69:
 YY_RULE_SETUP
 #line 236 "lex.ll"
-{ KEYWORD_RETURN(LONG); }
-	YY_BREAK
-case 64:
+{ KEYWORD_RETURN(RESTRICT); }			// GCC
+	YY_BREAK
+case 70:
 YY_RULE_SETUP
 #line 237 "lex.ll"
-{ KEYWORD_RETURN(LVALUE); }				// CFA
-	YY_BREAK
-case 65:
+{ KEYWORD_RETURN(RETURN); }
+	YY_BREAK
+case 71:
 YY_RULE_SETUP
 #line 238 "lex.ll"
-{ KEYWORD_RETURN(NORETURN); }			// C11
-	YY_BREAK
-case 66:
+{ KEYWORD_RETURN(SHORT); }
+	YY_BREAK
+case 72:
 YY_RULE_SETUP
 #line 239 "lex.ll"
-{ KEYWORD_RETURN(REGISTER); }
-	YY_BREAK
-case 67:
+{ KEYWORD_RETURN(SIGNED); }
+	YY_BREAK
+case 73:
 YY_RULE_SETUP
 #line 240 "lex.ll"
-{ KEYWORD_RETURN(RESTRICT); }			// C99
-	YY_BREAK
-case 68:
+{ KEYWORD_RETURN(SIGNED); }				// GCC
+	YY_BREAK
+case 74:
 YY_RULE_SETUP
 #line 241 "lex.ll"
-{ KEYWORD_RETURN(RESTRICT); }			// GCC
-	YY_BREAK
-case 69:
+{ KEYWORD_RETURN(SIGNED); }				// GCC
+	YY_BREAK
+case 75:
 YY_RULE_SETUP
 #line 242 "lex.ll"
-{ KEYWORD_RETURN(RESTRICT); }			// GCC
-	YY_BREAK
-case 70:
+{ KEYWORD_RETURN(SIZEOF); }
+	YY_BREAK
+case 76:
 YY_RULE_SETUP
 #line 243 "lex.ll"
-{ KEYWORD_RETURN(RETURN); }
-	YY_BREAK
-case 71:
+{ KEYWORD_RETURN(STATIC); }
+	YY_BREAK
+case 77:
 YY_RULE_SETUP
 #line 244 "lex.ll"
-{ KEYWORD_RETURN(SHORT); }
-	YY_BREAK
-case 72:
+{ KEYWORD_RETURN(STATICASSERT); }		// C11
+	YY_BREAK
+case 78:
 YY_RULE_SETUP
 #line 245 "lex.ll"
-{ KEYWORD_RETURN(SIGNED); }
-	YY_BREAK
-case 73:
+{ KEYWORD_RETURN(STRUCT); }
+	YY_BREAK
+case 79:
 YY_RULE_SETUP
 #line 246 "lex.ll"
-{ KEYWORD_RETURN(SIGNED); }				// GCC
-	YY_BREAK
-case 74:
+{ KEYWORD_RETURN(SWITCH); }
+	YY_BREAK
+case 80:
 YY_RULE_SETUP
 #line 247 "lex.ll"
-{ KEYWORD_RETURN(SIGNED); }				// GCC
-	YY_BREAK
-case 75:
+{ KEYWORD_RETURN(THREADLOCAL); }		// C11
+	YY_BREAK
+case 81:
 YY_RULE_SETUP
 #line 248 "lex.ll"
-{ KEYWORD_RETURN(SIZEOF); }
-	YY_BREAK
-case 76:
+{ KEYWORD_RETURN(THROW); }				// CFA
+	YY_BREAK
+case 82:
 YY_RULE_SETUP
 #line 249 "lex.ll"
-{ KEYWORD_RETURN(STATIC); }
-	YY_BREAK
-case 77:
+{ KEYWORD_RETURN(TRY); }				// CFA
+	YY_BREAK
+case 83:
 YY_RULE_SETUP
 #line 250 "lex.ll"
-{ KEYWORD_RETURN(STATICASSERT); }		// C11
-	YY_BREAK
-case 78:
+{ KEYWORD_RETURN(TYPE); }				// CFA
+	YY_BREAK
+case 84:
 YY_RULE_SETUP
 #line 251 "lex.ll"
-{ KEYWORD_RETURN(STRUCT); }
-	YY_BREAK
-case 79:
+{ KEYWORD_RETURN(TYPEDEF); }
+	YY_BREAK
+case 85:
 YY_RULE_SETUP
 #line 252 "lex.ll"
-{ KEYWORD_RETURN(SWITCH); }
-	YY_BREAK
-case 80:
+{ KEYWORD_RETURN(TYPEOF); }				// GCC
+	YY_BREAK
+case 86:
 YY_RULE_SETUP
 #line 253 "lex.ll"
-{ KEYWORD_RETURN(THREADLOCAL); }		// C11
-	YY_BREAK
-case 81:
+{ KEYWORD_RETURN(TYPEOF); }				// GCC
+	YY_BREAK
+case 87:
 YY_RULE_SETUP
 #line 254 "lex.ll"
-{ KEYWORD_RETURN(THROW); }				// CFA
-	YY_BREAK
-case 82:
+{ KEYWORD_RETURN(TYPEOF); }				// GCC
+	YY_BREAK
+case 88:
 YY_RULE_SETUP
 #line 255 "lex.ll"
-{ KEYWORD_RETURN(TRY); }				// CFA
-	YY_BREAK
-case 83:
+{ KEYWORD_RETURN(UNION); }
+	YY_BREAK
+case 89:
 YY_RULE_SETUP
 #line 256 "lex.ll"
-{ KEYWORD_RETURN(TYPE); }				// CFA
-	YY_BREAK
-case 84:
+{ KEYWORD_RETURN(UNSIGNED); }
+	YY_BREAK
+case 90:
 YY_RULE_SETUP
 #line 257 "lex.ll"
-{ KEYWORD_RETURN(TYPEDEF); }
-	YY_BREAK
-case 85:
+{ KEYWORD_RETURN(VOID); }
+	YY_BREAK
+case 91:
 YY_RULE_SETUP
 #line 258 "lex.ll"
-{ KEYWORD_RETURN(TYPEOF); }				// GCC
-	YY_BREAK
-case 86:
+{ KEYWORD_RETURN(VOLATILE); }
+	YY_BREAK
+case 92:
 YY_RULE_SETUP
 #line 259 "lex.ll"
-{ KEYWORD_RETURN(TYPEOF); }				// GCC
-	YY_BREAK
-case 87:
+{ KEYWORD_RETURN(VOLATILE); }			// GCC
+	YY_BREAK
+case 93:
 YY_RULE_SETUP
 #line 260 "lex.ll"
-{ KEYWORD_RETURN(TYPEOF); }				// GCC
-	YY_BREAK
-case 88:
+{ KEYWORD_RETURN(VOLATILE); }			// GCC
+	YY_BREAK
+case 94:
 YY_RULE_SETUP
 #line 261 "lex.ll"
-{ KEYWORD_RETURN(UNION); }
-	YY_BREAK
-case 89:
-YY_RULE_SETUP
-#line 262 "lex.ll"
-{ KEYWORD_RETURN(UNSIGNED); }
-	YY_BREAK
-case 90:
-YY_RULE_SETUP
-#line 263 "lex.ll"
-{ KEYWORD_RETURN(VOID); }
-	YY_BREAK
-case 91:
-YY_RULE_SETUP
-#line 264 "lex.ll"
-{ KEYWORD_RETURN(VOLATILE); }
-	YY_BREAK
-case 92:
-YY_RULE_SETUP
-#line 265 "lex.ll"
-{ KEYWORD_RETURN(VOLATILE); }			// GCC
-	YY_BREAK
-case 93:
-YY_RULE_SETUP
-#line 266 "lex.ll"
-{ KEYWORD_RETURN(VOLATILE); }			// GCC
-	YY_BREAK
-case 94:
-YY_RULE_SETUP
-#line 267 "lex.ll"
 { KEYWORD_RETURN(WHILE); }
 	YY_BREAK
@@ -2249,25 +2240,25 @@
 case 95:
 YY_RULE_SETUP
-#line 270 "lex.ll"
+#line 264 "lex.ll"
 { IDENTIFIER_RETURN(); }
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 271 "lex.ll"
+#line 265 "lex.ll"
 { ATTRIBUTE_RETURN(); }
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 272 "lex.ll"
+#line 266 "lex.ll"
 { BEGIN BKQUOTE; }
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 273 "lex.ll"
+#line 267 "lex.ll"
 { IDENTIFIER_RETURN(); }
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 274 "lex.ll"
+#line 268 "lex.ll"
 { BEGIN 0; }
 	YY_BREAK
@@ -2275,35 +2266,35 @@
 case 100:
 YY_RULE_SETUP
+#line 271 "lex.ll"
+{ NUMERIC_RETURN(ZERO); }				// CFA
+	YY_BREAK
+case 101:
+YY_RULE_SETUP
+#line 272 "lex.ll"
+{ NUMERIC_RETURN(ONE); }				// CFA
+	YY_BREAK
+case 102:
+YY_RULE_SETUP
+#line 273 "lex.ll"
+{ NUMERIC_RETURN(INTEGERconstant); }
+	YY_BREAK
+case 103:
+YY_RULE_SETUP
+#line 274 "lex.ll"
+{ NUMERIC_RETURN(INTEGERconstant); }
+	YY_BREAK
+case 104:
+YY_RULE_SETUP
+#line 275 "lex.ll"
+{ NUMERIC_RETURN(INTEGERconstant); }
+	YY_BREAK
+case 105:
+YY_RULE_SETUP
+#line 276 "lex.ll"
+{ NUMERIC_RETURN(FLOATINGconstant); }
+	YY_BREAK
+case 106:
+YY_RULE_SETUP
 #line 277 "lex.ll"
-{ NUMERIC_RETURN(ZERO); }				// CFA
-	YY_BREAK
-case 101:
-YY_RULE_SETUP
-#line 278 "lex.ll"
-{ NUMERIC_RETURN(ONE); }				// CFA
-	YY_BREAK
-case 102:
-YY_RULE_SETUP
-#line 279 "lex.ll"
-{ NUMERIC_RETURN(INTEGERconstant); }
-	YY_BREAK
-case 103:
-YY_RULE_SETUP
-#line 280 "lex.ll"
-{ NUMERIC_RETURN(INTEGERconstant); }
-	YY_BREAK
-case 104:
-YY_RULE_SETUP
-#line 281 "lex.ll"
-{ NUMERIC_RETURN(INTEGERconstant); }
-	YY_BREAK
-case 105:
-YY_RULE_SETUP
-#line 282 "lex.ll"
-{ NUMERIC_RETURN(FLOATINGconstant); }
-	YY_BREAK
-case 106:
-YY_RULE_SETUP
-#line 283 "lex.ll"
 { NUMERIC_RETURN(FLOATINGconstant); }
 	YY_BREAK
@@ -2311,10 +2302,10 @@
 case 107:
 YY_RULE_SETUP
-#line 286 "lex.ll"
+#line 280 "lex.ll"
 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 287 "lex.ll"
+#line 281 "lex.ll"
 { *strtext += std::string( yytext ); }
 	YY_BREAK
@@ -2322,5 +2313,5 @@
 /* rule 109 can match eol */
 YY_RULE_SETUP
-#line 288 "lex.ll"
+#line 282 "lex.ll"
 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
 	YY_BREAK
@@ -2329,10 +2320,10 @@
 case 110:
 YY_RULE_SETUP
-#line 292 "lex.ll"
+#line 286 "lex.ll"
 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 293 "lex.ll"
+#line 287 "lex.ll"
 { *strtext += std::string( yytext ); }
 	YY_BREAK
@@ -2340,5 +2331,5 @@
 /* rule 112 can match eol */
 YY_RULE_SETUP
-#line 294 "lex.ll"
+#line 288 "lex.ll"
 { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
 	YY_BREAK
@@ -2347,5 +2338,5 @@
 case 113:
 YY_RULE_SETUP
-#line 298 "lex.ll"
+#line 292 "lex.ll"
 { rm_underscore(); *strtext += std::string( yytext ); }
 	YY_BREAK
@@ -2353,10 +2344,10 @@
 /* rule 114 can match eol */
 YY_RULE_SETUP
-#line 299 "lex.ll"
+#line 293 "lex.ll"
 {}						// continuation (ALSO HANDLED BY CPP)
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 300 "lex.ll"
+#line 294 "lex.ll"
 { *strtext += std::string( yytext ); } // unknown escape character
 	YY_BREAK
@@ -2364,55 +2355,55 @@
 case 116:
 YY_RULE_SETUP
+#line 297 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 117:
+YY_RULE_SETUP
+#line 298 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 118:
+YY_RULE_SETUP
+#line 299 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 119:
+YY_RULE_SETUP
+#line 300 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 120:
+YY_RULE_SETUP
+#line 301 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 121:
+YY_RULE_SETUP
+#line 302 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 122:
+YY_RULE_SETUP
 #line 303 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 117:
+{ ASCIIOP_RETURN(); }					// also operator
+	YY_BREAK
+case 123:
 YY_RULE_SETUP
 #line 304 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 118:
+case 124:
 YY_RULE_SETUP
 #line 305 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 119:
+case 125:
 YY_RULE_SETUP
 #line 306 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 120:
+{ ASCIIOP_RETURN(); }					// also operator
+	YY_BREAK
+case 126:
 YY_RULE_SETUP
 #line 307 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 121:
-YY_RULE_SETUP
-#line 308 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 122:
-YY_RULE_SETUP
-#line 309 "lex.ll"
-{ ASCIIOP_RETURN(); }					// also operator
-	YY_BREAK
-case 123:
-YY_RULE_SETUP
-#line 310 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 124:
-YY_RULE_SETUP
-#line 311 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 125:
-YY_RULE_SETUP
-#line 312 "lex.ll"
-{ ASCIIOP_RETURN(); }					// also operator
-	YY_BREAK
-case 126:
-YY_RULE_SETUP
-#line 313 "lex.ll"
 { NAMEDOP_RETURN(ELLIPSIS); }
 	YY_BREAK
@@ -2420,20 +2411,20 @@
 case 127:
 YY_RULE_SETUP
-#line 316 "lex.ll"
+#line 310 "lex.ll"
 { RETURN_VAL('['); }
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 317 "lex.ll"
+#line 311 "lex.ll"
 { RETURN_VAL(']'); }
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 318 "lex.ll"
+#line 312 "lex.ll"
 { RETURN_VAL('{'); }
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 319 "lex.ll"
+#line 313 "lex.ll"
 { RETURN_VAL('}'); }
 	YY_BREAK
@@ -2441,175 +2432,175 @@
 case 131:
 YY_RULE_SETUP
+#line 316 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 132:
+YY_RULE_SETUP
+#line 317 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 133:
+YY_RULE_SETUP
+#line 318 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 134:
+YY_RULE_SETUP
+#line 319 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 135:
+YY_RULE_SETUP
+#line 320 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 136:
+YY_RULE_SETUP
+#line 321 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 137:
+YY_RULE_SETUP
 #line 322 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 132:
+case 138:
 YY_RULE_SETUP
 #line 323 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 133:
+case 139:
 YY_RULE_SETUP
 #line 324 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 134:
+case 140:
 YY_RULE_SETUP
 #line 325 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 135:
+case 141:
 YY_RULE_SETUP
 #line 326 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 136:
+case 142:
 YY_RULE_SETUP
 #line 327 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 137:
+case 143:
 YY_RULE_SETUP
 #line 328 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 138:
+case 144:
 YY_RULE_SETUP
 #line 329 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 139:
-YY_RULE_SETUP
-#line 330 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 140:
+case 145:
 YY_RULE_SETUP
 #line 331 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 141:
+{ NAMEDOP_RETURN(ICR); }
+	YY_BREAK
+case 146:
 YY_RULE_SETUP
 #line 332 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 142:
+{ NAMEDOP_RETURN(DECR); }
+	YY_BREAK
+case 147:
 YY_RULE_SETUP
 #line 333 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 143:
+{ NAMEDOP_RETURN(EQ); }
+	YY_BREAK
+case 148:
 YY_RULE_SETUP
 #line 334 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 144:
+{ NAMEDOP_RETURN(NE); }
+	YY_BREAK
+case 149:
 YY_RULE_SETUP
 #line 335 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 145:
+{ NAMEDOP_RETURN(LS); }
+	YY_BREAK
+case 150:
+YY_RULE_SETUP
+#line 336 "lex.ll"
+{ NAMEDOP_RETURN(RS); }
+	YY_BREAK
+case 151:
 YY_RULE_SETUP
 #line 337 "lex.ll"
-{ NAMEDOP_RETURN(ICR); }
-	YY_BREAK
-case 146:
+{ NAMEDOP_RETURN(LE); }
+	YY_BREAK
+case 152:
 YY_RULE_SETUP
 #line 338 "lex.ll"
-{ NAMEDOP_RETURN(DECR); }
-	YY_BREAK
-case 147:
+{ NAMEDOP_RETURN(GE); }
+	YY_BREAK
+case 153:
 YY_RULE_SETUP
 #line 339 "lex.ll"
-{ NAMEDOP_RETURN(EQ); }
-	YY_BREAK
-case 148:
+{ NAMEDOP_RETURN(ANDAND); }
+	YY_BREAK
+case 154:
 YY_RULE_SETUP
 #line 340 "lex.ll"
-{ NAMEDOP_RETURN(NE); }
-	YY_BREAK
-case 149:
+{ NAMEDOP_RETURN(OROR); }
+	YY_BREAK
+case 155:
 YY_RULE_SETUP
 #line 341 "lex.ll"
-{ NAMEDOP_RETURN(LS); }
-	YY_BREAK
-case 150:
+{ NAMEDOP_RETURN(ARROW); }
+	YY_BREAK
+case 156:
 YY_RULE_SETUP
 #line 342 "lex.ll"
-{ NAMEDOP_RETURN(RS); }
-	YY_BREAK
-case 151:
+{ NAMEDOP_RETURN(PLUSassign); }
+	YY_BREAK
+case 157:
 YY_RULE_SETUP
 #line 343 "lex.ll"
-{ NAMEDOP_RETURN(LE); }
-	YY_BREAK
-case 152:
+{ NAMEDOP_RETURN(MINUSassign); }
+	YY_BREAK
+case 158:
 YY_RULE_SETUP
 #line 344 "lex.ll"
-{ NAMEDOP_RETURN(GE); }
-	YY_BREAK
-case 153:
+{ NAMEDOP_RETURN(MULTassign); }
+	YY_BREAK
+case 159:
 YY_RULE_SETUP
 #line 345 "lex.ll"
-{ NAMEDOP_RETURN(ANDAND); }
-	YY_BREAK
-case 154:
+{ NAMEDOP_RETURN(DIVassign); }
+	YY_BREAK
+case 160:
 YY_RULE_SETUP
 #line 346 "lex.ll"
-{ NAMEDOP_RETURN(OROR); }
-	YY_BREAK
-case 155:
+{ NAMEDOP_RETURN(MODassign); }
+	YY_BREAK
+case 161:
 YY_RULE_SETUP
 #line 347 "lex.ll"
-{ NAMEDOP_RETURN(ARROW); }
-	YY_BREAK
-case 156:
+{ NAMEDOP_RETURN(ANDassign); }
+	YY_BREAK
+case 162:
 YY_RULE_SETUP
 #line 348 "lex.ll"
-{ NAMEDOP_RETURN(PLUSassign); }
-	YY_BREAK
-case 157:
+{ NAMEDOP_RETURN(ORassign); }
+	YY_BREAK
+case 163:
 YY_RULE_SETUP
 #line 349 "lex.ll"
-{ NAMEDOP_RETURN(MINUSassign); }
-	YY_BREAK
-case 158:
+{ NAMEDOP_RETURN(ERassign); }
+	YY_BREAK
+case 164:
 YY_RULE_SETUP
 #line 350 "lex.ll"
-{ NAMEDOP_RETURN(MULTassign); }
-	YY_BREAK
-case 159:
+{ NAMEDOP_RETURN(LSassign); }
+	YY_BREAK
+case 165:
 YY_RULE_SETUP
 #line 351 "lex.ll"
-{ NAMEDOP_RETURN(DIVassign); }
-	YY_BREAK
-case 160:
-YY_RULE_SETUP
-#line 352 "lex.ll"
-{ NAMEDOP_RETURN(MODassign); }
-	YY_BREAK
-case 161:
-YY_RULE_SETUP
-#line 353 "lex.ll"
-{ NAMEDOP_RETURN(ANDassign); }
-	YY_BREAK
-case 162:
-YY_RULE_SETUP
-#line 354 "lex.ll"
-{ NAMEDOP_RETURN(ORassign); }
-	YY_BREAK
-case 163:
-YY_RULE_SETUP
-#line 355 "lex.ll"
-{ NAMEDOP_RETURN(ERassign); }
-	YY_BREAK
-case 164:
-YY_RULE_SETUP
-#line 356 "lex.ll"
-{ NAMEDOP_RETURN(LSassign); }
-	YY_BREAK
-case 165:
-YY_RULE_SETUP
-#line 357 "lex.ll"
 { NAMEDOP_RETURN(RSassign); }
 	YY_BREAK
@@ -2617,15 +2608,15 @@
 case 166:
 YY_RULE_SETUP
-#line 360 "lex.ll"
+#line 354 "lex.ll"
 { IDENTIFIER_RETURN(); }				// unary
 	YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 361 "lex.ll"
+#line 355 "lex.ll"
 { IDENTIFIER_RETURN(); }
 	YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 362 "lex.ll"
+#line 356 "lex.ll"
 { IDENTIFIER_RETURN(); }		// binary
 	YY_BREAK
@@ -2658,5 +2649,5 @@
 case 169:
 YY_RULE_SETUP
-#line 389 "lex.ll"
+#line 383 "lex.ll"
 {
 	// 1 or 2 character unary operator ?
@@ -2673,13 +2664,13 @@
 case 170:
 YY_RULE_SETUP
-#line 401 "lex.ll"
+#line 395 "lex.ll"
 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
 	YY_BREAK
 case 171:
 YY_RULE_SETUP
-#line 403 "lex.ll"
+#line 397 "lex.ll"
 ECHO;
 	YY_BREAK
-#line 2684 "Parser/lex.cc"
+#line 2675 "Parser/lex.cc"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(COMMENT):
@@ -3013,45 +3004,4 @@
 
 	return yy_is_jam ? 0 : yy_current_state;
-}
-
-    static void yyunput (int c, register char * yy_bp )
-{
-	register char *yy_cp;
-    
-    yy_cp = (yy_c_buf_p);
-
-	/* undo effects of setting up yytext */
-	*yy_cp = (yy_hold_char);
-
-	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-		{ /* need to shift things up to make room */
-		/* +2 for EOB chars. */
-		register int number_to_move = (yy_n_chars) + 2;
-		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
-		register char *source =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
-
-		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			*--dest = *--source;
-
-		yy_cp += (int) (dest - source);
-		yy_bp += (int) (dest - source);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
-
-		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-			YY_FATAL_ERROR( "flex scanner push-back overflow" );
-		}
-
-	*--yy_cp = (char) c;
-
-    if ( c == '\n' ){
-        --yylineno;
-    }
-
-	(yytext_ptr) = yy_bp;
-	(yy_hold_char) = *yy_cp;
-	(yy_c_buf_p) = yy_cp;
 }
 
@@ -3697,5 +3647,5 @@
 #define YYTABLES_NAME "yytables"
 
-#line 403 "lex.ll"
+#line 397 "lex.ll"
 
 
Index: src/Parser/lex.h
===================================================================
--- src/Parser/lex.h	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Parser/lex.h	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep 22 08:58:10 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun  6 07:44:39 2015
-// Update Count     : 338
+// Last Modified On : Mon Jun  8 20:28:48 2015
+// Update Count     : 341
 //
 
@@ -18,5 +18,5 @@
 
 int yylex();
-void yyerror(char *);
+void yyerror( const char * );
 
 // External declarations for information sharing between lexer and scanner
@@ -35,5 +35,5 @@
 class Token {
   public:
-    std::string *str;
+    std::string *str;									// must be pointer as used in union
     Location loc;
 
@@ -44,5 +44,4 @@
 
 // Local Variables: //
-// fill-column: 110 //
 // tab-width: 4 //
 // mode: c++ //
Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Parser/lex.ll	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,9 +10,10 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Sun Jun  7 07:14:16 2015
- * Update Count     : 374
+ * Last Modified On : Mon Jun  8 20:24:15 2015
+ * Update Count     : 381
  */
 
 %option yylineno
+%option nounput
 
 %{
@@ -32,24 +33,17 @@
 std::string *strtext;									// accumulate parts of character and string constant value
 
+#define RETURN_LOCN(x)		yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return(x)
+#define RETURN_VAL(x)		yylval.tok.str = new std::string( yytext ); RETURN_LOCN(x)
+#define RETURN_CHAR(x)		yylval.tok.str = NULL; RETURN_LOCN(x)
+#define RETURN_STR(x)		yylval.tok.str = strtext; RETURN_LOCN(x)
+
 #define WHITE_RETURN(x)									// do nothing
 #define NEWLINE_RETURN()	WHITE_RETURN('\n')
-#define RETURN_VAL(x)		yylval.tok.str = new std::string( yytext ); \
-		                        yylval.tok.loc.file = yyfilename; \
-		                        yylval.tok.loc.line = yylineno; \
-		                        return(x)
-#define RETURN_STR(x)		yylval.tok.str = strtext; \
-		                        yylval.tok.loc.file = yyfilename; \
-		                        yylval.tok.loc.line = yylineno; \
-		                        return(x)
-
-#define KEYWORD_RETURN(x)	RETURN_VAL(x)				// keyword
+#define ASCIIOP_RETURN()	RETURN_CHAR((int)yytext[0])	// single character operator
+#define NAMEDOP_RETURN(x)	RETURN_VAL(x)				// multichar operator, with a name
+#define NUMERIC_RETURN(x)	rm_underscore(); RETURN_VAL(x) // numeric constant
+#define KEYWORD_RETURN(x)	RETURN_CHAR(x)				// keyword
 #define IDENTIFIER_RETURN()	RETURN_VAL((typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname))
-//#define ATTRIBUTE_RETURN()	RETURN_VAL((typedefTable.isIdentifier(yytext) ? ATTR_IDENTIFIER : typedefTable.isTypedef(yytext) ? ATTR_TYPEDEFname : ATTR_TYPEGENname))
 #define ATTRIBUTE_RETURN()	RETURN_VAL(ATTR_IDENTIFIER)
-
-#define ASCIIOP_RETURN()	RETURN_VAL((int)yytext[0])	// single character operator
-#define NAMEDOP_RETURN(x)	RETURN_VAL(x)				// multichar operator, with a name
-
-#define NUMERIC_RETURN(x)	rm_underscore(); RETURN_VAL(x) // numeric constant
 
 void rm_underscore() {
Index: src/Parser/module.mk
===================================================================
--- src/Parser/module.mk	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Parser/module.mk	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -11,6 +11,6 @@
 ## Created On       : Sat May 16 15:29:09 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Thu Jun  4 09:39:00 2015
-## Update Count     : 86
+## Last Modified On : Mon Jun  8 20:23:47 2015
+## Update Count     : 87
 ###############################################################################
 
Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Parser/parser.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -9266,16 +9266,13 @@
 // ----end of grammar----
 
-void yyerror( char *string ) {
-	using std::cout;
-	using std::endl;
-	cout << "Error ";
+void yyerror( const char * ) {
+	std::cout << "Error ";
 	if ( yyfilename ) {
-		cout << "in file " << yyfilename << " ";
-	}
-	cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << endl;
+	    std::cout << "in file " << yyfilename << " ";
+	} // if
+	std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
 }
 
 // Local Variables: //
-// fill-column: 110 //
 // tab-width: 4 //
 // mode: c++ //
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Parser/parser.yy	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun  6 20:18:36 2015
-// Update Count     : 1026
+// Last Modified On : Mon Jun  8 20:31:07 2015
+// Update Count     : 1030
 // 
 
@@ -2717,16 +2717,13 @@
 // ----end of grammar----
 
-void yyerror( char *string ) {
-	using std::cout;
-	using std::endl;
-	cout << "Error ";
+void yyerror( const char * ) {
+	std::cout << "Error ";
 	if ( yyfilename ) {
-		cout << "in file " << yyfilename << " ";
-	}
-	cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << endl;
+	    std::cout << "in file " << yyfilename << " ";
+	} // if
+	std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
 }
 
 // Local Variables: //
-// fill-column: 110 //
 // tab-width: 4 //
 // mode: c++ //
Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Sat May 16 23:52:08 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Thu May 21 16:21:09 2015
-// Update Count     : 12
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Mon Jun  8 14:53:58 2015
+// Update Count     : 14
 //
 
@@ -209,5 +209,5 @@
 		pruneAlternatives( alternatives.begin(), alternatives.end(), front_inserter( alternatives ), indexer );
 		if ( alternatives.begin() == oldBegin ) {
-			std::ostrstream stream;
+			std::ostringstream stream;
 			stream << "Can't choose between alternatives for expression ";
 			expr->print( stream );
@@ -216,5 +216,5 @@
 			findMinCost( alternatives.begin(), alternatives.end(), back_inserter( winners ) );
 			printAlts( winners, stream, 8 );
-			throw SemanticError( std::string( stream.str(), stream.pcount() ) );
+			throw SemanticError( stream.str() );
 		}
 		alternatives.erase( oldBegin, alternatives.end() );
Index: src/ResolvExpr/RenameVars.cc
===================================================================
--- src/ResolvExpr/RenameVars.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/ResolvExpr/RenameVars.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,9 +10,9 @@
 // Created On       : Sun May 17 12:05:18 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun May 17 12:07:59 2015
-// Update Count     : 2
+// Last Modified On : Mon Jun  8 14:51:35 2015
+// Update Count     : 4
 //
 
-#include <strstream>
+#include <sstream>
 
 #include "RenameVars.h"
@@ -120,7 +120,7 @@
 			mapStack.push_front( mapStack.front() );
 			for ( std::list< TypeDecl* >::iterator i = type->get_forall().begin(); i != type->get_forall().end(); ++i ) {
-				std::ostrstream output;
+				std::ostringstream output;
 				output << "_" << level << "_" << (*i)->get_name();
-				std::string newname( output.str(), output.pcount() );
+				std::string newname( output.str() );
 				mapStack.front()[ (*i)->get_name() ] = newname;
 				(*i)->set_name( newname );
Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/ResolvExpr/Resolver.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Sun May 17 12:17:01 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Mon Jun 01 13:47:16 2015
-// Update Count     : 21
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sun Jun  7 21:50:37 2015
+// Update Count     : 23
 //
 
Index: src/SymTab/Mangler.cc
===================================================================
--- src/SymTab/Mangler.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SymTab/Mangler.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 21:40:29 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue May 19 16:50:47 2015
-// Update Count     : 3
+// Last Modified On : Mon Jun  8 15:12:12 2015
+// Update Count     : 8
 //
 
@@ -160,7 +160,6 @@
 		} else {
 			printQualifiers( typeInst );
-			std::ostrstream numStream;
+			std::ostringstream numStream;
 			numStream << varNum->second.first;
-			mangleName << (numStream.pcount() + 1);
 			switch ( (TypeDecl::Kind )varNum->second.second ) {
 			  case TypeDecl::Any:
@@ -174,5 +173,5 @@
 				break;
 			} // switch
-			mangleName << std::string( numStream.str(), numStream.pcount() );
+			mangleName << numStream.str();
 		} // if
 	}
@@ -220,5 +219,5 @@
 					sub_mangler.varNums = varNums;
 					(*assert)->accept( sub_mangler );
-					assertionNames.push_back( std::string( sub_mangler.mangleName.str(), sub_mangler.mangleName.pcount() ) );
+					assertionNames.push_back( sub_mangler.mangleName.str() );
 				} // for
 			} // for
Index: src/SymTab/Mangler.h
===================================================================
--- src/SymTab/Mangler.h	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SymTab/Mangler.h	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 21:44:03 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue May 19 16:49:21 2015
-// Update Count     : 3
+// Last Modified On : Mon Jun  8 14:47:14 2015
+// Update Count     : 5
 //
 
@@ -17,5 +17,5 @@
 #define MANGLER_H
 
-#include <strstream>
+#include <sstream>
 #include "SynTree/SynTree.h"
 #include "SynTree/Visitor.h"
@@ -43,7 +43,7 @@
 		virtual void visit( TupleType *tupleType );
   
-		std::string get_mangleName() { return std::string( mangleName.str(), mangleName.pcount() ); }
+		std::string get_mangleName() { return mangleName.str(); }
 	  private:
-		std::ostrstream mangleName;
+		std::ostringstream mangleName;
 		typedef std::map< std::string, std::pair< int, int > > VarMapType;
 		VarMapType varNums;
Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SymTab/Validate.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Sun May 17 21:50:04 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Mon May 25 14:27:15 2015
-// Update Count     : 21
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Mon Jun  8 17:19:35 2015
+// Update Count     : 22
 //
 
@@ -651,10 +651,8 @@
 
 	void addDecls( std::list< Declaration * > &declsToAdd, std::list< Statement * > &statements, std::list< Statement * >::iterator i ) {
-		if ( ! declsToAdd.empty() ) {
-			for ( std::list< Declaration * >::iterator decl = declsToAdd.begin(); decl != declsToAdd.end(); ++decl ) {
-				statements.insert( i, new DeclStmt( noLabels, *decl ) );
-			} // for
-			declsToAdd.clear();
-		} // if
+		for ( std::list< Declaration * >::iterator decl = declsToAdd.begin(); decl != declsToAdd.end(); ++decl ) {
+			statements.insert( i, new DeclStmt( noLabels, *decl ) );
+		} // for
+		declsToAdd.clear();
 	}
 
Index: src/SynTree/BasicType.cc
===================================================================
--- src/SynTree/BasicType.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SynTree/BasicType.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun  6 11:52:43 2015
-// Update Count     : 2
+// Last Modified On : Sun Jun  7 08:44:36 2015
+// Update Count     : 5
 //
 
Index: src/SynTree/Constant.cc
===================================================================
--- src/SynTree/Constant.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SynTree/Constant.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun  6 12:17:22 2015
-// Update Count     : 2
+// Last Modified On : Sun Jun  7 08:45:30 2015
+// Update Count     : 5
 //
 
@@ -29,7 +29,6 @@
 	os << value;
 	if ( type ) {
-		os << " (type: ";
+		os << " ";
 		type->print( os );
-		os << ")";
 	} // if
 }
Index: src/SynTree/DeclStmt.cc
===================================================================
--- src/SynTree/DeclStmt.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SynTree/DeclStmt.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 18 08:16:03 2015
-// Update Count     : 2
+// Last Modified On : Mon Jun  8 17:24:38 2015
+// Update Count     : 3
 //
 
@@ -29,8 +29,7 @@
 
 void DeclStmt::print( std::ostream &os, int indent ) {
+	assert( decl != 0 );
 	os << "Declaration of ";
-	if ( decl ) {
-		decl->print( os, indent );
-	} // if
+	decl->print( os, indent );
 }
 
Index: src/SynTree/Declaration.h
===================================================================
--- src/SynTree/Declaration.h	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SynTree/Declaration.h	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Mon May 25 14:08:10 2015
-// Update Count     : 6
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sun Jun  7 22:03:43 2015
+// Update Count     : 7
 //
 
@@ -38,5 +38,5 @@
 	virtual ~Declaration();
 
-	std::string get_name() const { return name; }
+	const std::string &get_name() const { return name; }
 	void set_name( std::string newValue ) { name = newValue; }
 	StorageClass get_storageClass() const { return storageClass; }
Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SynTree/Expression.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun  6 23:43:22 2015
-// Update Count     : 15
+// Last Modified On : Sun Jun  7 08:40:46 2015
+// Update Count     : 16
 //
 
@@ -72,5 +72,5 @@
 
 void ConstantExpr::print( std::ostream &os, int indent ) const {
-	os << "constant expression: " ;
+	os << "constant expression " ;
 	constant.print( os );
 	Expression::print( os, indent );
Index: src/SynTree/Expression.h
===================================================================
--- src/SynTree/Expression.h	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SynTree/Expression.h	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 18 08:46:15 2015
-// Update Count     : 3
+// Last Modified On : Sun Jun  7 22:03:44 2015
+// Update Count     : 4
 //
 
@@ -125,5 +125,5 @@
 	virtual ~NameExpr();
 
-	std::string get_name() const { return name; }
+	const std::string &get_name() const { return name; }
 	void set_name( std::string newValue ) { name = newValue; }
 
Index: src/SynTree/FunctionDecl.cc
===================================================================
--- src/SynTree/FunctionDecl.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SynTree/FunctionDecl.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu May 21 21:31:16 2015
-// Update Count     : 11
+// Last Modified On : Sun Jun  7 08:36:44 2015
+// Update Count     : 12
 //
 
@@ -52,5 +52,5 @@
 	
 	if ( get_name() != "" ) {
-		os << get_name() << ": a ";
+		os << get_name() << ": ";
 	} // if
 	if ( get_linkage() != LinkageSpec::Cforall ) {
@@ -91,5 +91,5 @@
 	
 	if ( get_name() != "" ) {
-		os << get_name() << ": a ";
+		os << get_name() << ": ";
 	} // if
 	if ( isInline ) {
Index: src/SynTree/NamedTypeDecl.cc
===================================================================
--- src/SynTree/NamedTypeDecl.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SynTree/NamedTypeDecl.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 18 10:13:19 2015
-// Update Count     : 1
+// Last Modified On : Sun Jun  7 08:36:09 2015
+// Update Count     : 2
 //
 
@@ -37,5 +37,5 @@
 	
 	if ( get_name() != "" ) {
-		os << get_name() << ": a ";
+		os << get_name() << ": ";
 	} // if
 	if ( get_storageClass() != NoStorageClass ) {
@@ -61,5 +61,5 @@
 	
 	if ( get_name() != "" ) {
-		os << get_name() << ": a ";
+		os << get_name() << ": ";
 	} // if
 	if ( get_storageClass() != NoStorageClass ) {
Index: src/SynTree/ReferenceToType.cc
===================================================================
--- src/SynTree/ReferenceToType.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SynTree/ReferenceToType.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue May 19 16:52:40 2015
-// Update Count     : 3
+// Last Modified On : Sun Jun  7 08:31:48 2015
+// Update Count     : 4
 //
 
@@ -101,5 +101,5 @@
 	
 	Type::print( os, indent );
-	os << "instance of " << typeString() << " " << get_name() << " (" << ( isFtype ? "" : "not" ) << " a function type) ";
+	os << "instance of " << typeString() << " " << get_name() << " (" << ( isFtype ? "" : "not" ) << " function type) ";
 	if ( ! parameters.empty() ) {
 		os << endl << std::string( indent, ' ' ) << "with parameters" << endl;
Index: src/SynTree/Type.h
===================================================================
--- src/SynTree/Type.h	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/SynTree/Type.h	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun  6 14:12:14 2015
-// Update Count     : 2
+// Last Modified On : Sun Jun  7 21:50:38 2015
+// Update Count     : 12
 //
 
@@ -214,5 +214,5 @@
 	virtual ~ReferenceToType();
 
-	std::string get_name() const { return name; }
+	const std::string &get_name() const { return name; }
 	void set_name( std::string newValue ) { name = newValue; }
 	std::list< Expression* >& get_parameters() { return parameters; }
@@ -372,5 +372,5 @@
 	virtual ~AttrType();
 
-	std::string get_name() const { return name; }
+	const std::string &get_name() const { return name; }
 	void set_name( const std::string &newValue ) { name = newValue; }
 	Expression *get_expr() const { return expr; }
Index: src/Tests/ResolvExpr/Abstype.c
===================================================================
--- src/Tests/ResolvExpr/Abstype.c	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/ResolvExpr/Abstype.c	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,4 +1,2 @@
-// "cfa-cpp -nx Abstype.c"
-
 type T | { T x( T ); };
 
@@ -9,5 +7,5 @@
 
 forall( type T ) lvalue T *?( T * );
-int ?++( int *);
+int ?++( int * );
 int ?=?( int *, int );
 forall( dtype DT ) DT * ?=?( DT **, DT * );
Index: src/Tests/ResolvExpr/make-rules
===================================================================
--- src/Tests/ResolvExpr/make-rules	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/ResolvExpr/make-rules	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,21 +1,20 @@
 CFA = ../../cfa-cpp
 
-DIFF = /software/gnu/bin/diff
+EXPECTED := ${wildcard ${EXPECTDIR}/*.tst}
+TESTS := ${EXPECTED:${EXPECTDIR}/%=${OUTPUTDIR}/%}
+TEST_IN := ${TESTS:.tst=.c}
 
-# Basic SynTree printing
-EXPECTED := ${wildcard $(EXPECTDIR)/*.tst}
-TESTS := $(EXPECTED:$(EXPECTDIR)/%=$(OUTPUTDIR)/%)
-TEST_IN := $(TESTS:.tst=.c)
+.SILENT :
 
-$(OUTPUTDIR)/%.tst:%.c $(CFA)
-	-$(CFA) $(CFAOPT) < $< > $@ 2>&1
+${OUTPUTDIR}/%.tst : %.c ${CFA}
+	-${CFA} ${CFAOPT} < $< > $@ 2>&1
 
-$(OUTPUTDIR)/report: $(TESTS) $(EXPECTED)
+${OUTPUTDIR}/report : ${TESTS} ${EXPECTED}
 	rm -f $@
-	@for i in $(TESTS); do \
-	  echo "---"`basename $$i`"---" | tee -a $@; \
-	  $(DIFF) -B -w -u $(EXPECTDIR)/`basename $$i` $$i | tee -a $@; \
+	@for i in ${TESTS}; do \
+	     echo "---"`basename $$i`"---" | tee -a $@; \
+	     diff -B -w ${EXPECTDIR}/`basename $$i` $$i | tee -a $@; \
 	done
 
-clean:
-	rm -rf $(OUTPUTDIR)
+clean :
+	rm -rf ${OUTPUTDIR}
Index: src/Tests/SynTree/Expected-SymTab/Array.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Array.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected-SymTab/Array.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -5,7 +5,4 @@
 Adding object m2
 Adding object m4
-Adding typedef T
---- Entering scope
---- Leaving scope containing
 Adding function fred
 --- Entering scope
@@ -16,8 +13,4 @@
 Adding object T
 --- Leaving scope containing
-T (__T__A0i) (2)
-a1 (__a1__A0i) (2)
-a2 (__a2__A0i) (2)
-a4 (__a4__A0i) (2)
 --- Leaving scope containing
 Adding function mary
@@ -30,8 +23,4 @@
 --- Leaving scope containing
 --- Leaving scope containing
-T (__T__Pi) (1)
-p1 (__p1__CPi) (1)
-p2 (__p2__Pi) (1)
-p3 (__p3__CPi) (1)
 Adding function tom
 --- Entering scope
@@ -48,6 +37,2 @@
 --- Leaving scope containing
 --- Leaving scope containing
-T (__T__Pi) (1)
-p1 (__p1__CPi) (1)
-p2 (__p2__Pi) (1)
-p3 (__p3__CPi) (1)
Index: src/Tests/SynTree/Expected-SymTab/Context.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Context.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected-SymTab/Context.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,52 +1,45 @@
-Adding context has_q
 --- Entering scope
-Adding type T
 --- Entering scope
 --- Leaving scope containing
+Adding type T
 Adding function q
 --- Entering scope
 --- Leaving scope containing
 --- Leaving scope containing
-q (__q__F_2tT_2tT_) (1)
 T
+Adding context has_q
 Adding function f
 --- Entering scope
-Adding type z
 --- Entering scope
 --- Leaving scope containing
-Adding function q
+Adding type z
+Adding function ?=?
 --- Entering scope
 --- Leaving scope containing
 --- Entering scope
-Adding context has_r
 --- Entering scope
+--- Entering scope
+--- Leaving scope containing
 Adding type T
 --- Entering scope
 --- Leaving scope containing
 Adding type U
---- Entering scope
---- Leaving scope containing
 Adding function r
 --- Entering scope
 --- Leaving scope containing
 --- Leaving scope containing
-r (__r__F_2tT_2tTPF_2tT_2tT2tU__) (3)
 T
 U
+Adding context has_r
+--- Entering scope
+--- Leaving scope containing
 Adding type x
 --- Entering scope
 --- Leaving scope containing
 Adding type y
---- Entering scope
 --- Leaving scope containing
-Adding function r
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-r (__r__F_2tx_2txPF_2tx_2tx2ty__) (2)
 x
 y
 has_r
 --- Leaving scope containing
-q (__q__F_2tz_2tz_) (1)
 z
Index: src/Tests/SynTree/Expected-SymTab/Enum.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Enum.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected-SymTab/Enum.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -17,9 +17,4 @@
 Adding object fruit
 --- Leaving scope containing
-Apple (__Apple__C7eFruits) (2)
-Banana (__Banana__C7eFruits) (2)
-Mango (__Mango__C7eFruits) (2)
-Pear (__Pear__C7eFruits) (2)
-fruit (__fruit__7eFruits) (2)
 Fruits
 --- Leaving scope containing
Index: src/Tests/SynTree/Expected-SymTab/Forall.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Forall.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected-SymTab/Forall.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,14 +1,8 @@
-in default case, (shouldn't be here)
-in default case, (shouldn't be here)
-Adding typedef f
+Adding function swap
 --- Entering scope
-Adding type T
 --- Entering scope
 --- Leaving scope containing
---- Leaving scope containing
-T
-Adding function swap
---- Entering scope
 Adding type T
+Adding function ?=?
 --- Entering scope
 --- Leaving scope containing
@@ -18,14 +12,10 @@
 Adding object temp
 --- Leaving scope containing
-temp (__temp__2tT) (2)
 --- Leaving scope containing
-left (__left__2tT) (1)
-right (__right__2tT) (1)
 T
-Adding context sumable
 --- Entering scope
-Adding type T
 --- Entering scope
 --- Leaving scope containing
+Adding type T
 Adding object 0
 Adding function ?+?
@@ -39,12 +29,9 @@
 --- Leaving scope containing
 --- Leaving scope containing
-0 (__0__C2tT) (1)
-?++ (__?++__F_2tT_2tT_) (1)
-?+=? (__?+=?__F_2tT_2tT2tT_) (1)
-?+? (__?+?__F_2tT_2tT2tT_) (1)
 T
-Adding type T1
+Adding context sumable
 --- Entering scope
 --- Leaving scope containing
+Adding type T1
 Adding object 0
 Adding function ?+?
@@ -57,6 +44,27 @@
 --- Entering scope
 --- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type P1
+--- Entering scope
+--- Leaving scope containing
+Adding type P2
+--- Leaving scope containing
+P1
+P2
 Adding type T2
 --- Entering scope
+--- Leaving scope containing
+Adding type T3
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object i
+Adding object j
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
 Adding type P1
 --- Entering scope
@@ -68,67 +76,17 @@
 P1
 P2
-Adding type T3
+Adding type T2
+Adding object w1
+Adding object g2
 --- Entering scope
 --- Leaving scope containing
-Adding object 0
-Adding function ?+?
---- Entering scope
---- Leaving scope containing
-Adding function ?++
---- Entering scope
---- Leaving scope containing
-Adding function ?+=?
---- Entering scope
---- Leaving scope containing
-Adding struct __anonymous0
---- Entering scope
-Adding object i
-Adding object j
---- Leaving scope containing
-i (__i__3tP1) (1)
-j (__j__3tP2) (1)
-Adding type T2
---- Entering scope
-Adding type P1
---- Entering scope
---- Leaving scope containing
-Adding type P2
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-P1
-P2
-Adding object 0
-Adding function ?+?
---- Entering scope
---- Leaving scope containing
-Adding function ?++
---- Entering scope
---- Leaving scope containing
-Adding function ?+=?
---- Entering scope
---- Leaving scope containing
-Adding object w1
-Adding typedef w2
---- Entering scope
---- Leaving scope containing
-Adding object g2
 Adding type w3
---- Entering scope
---- Leaving scope containing
 Adding object g3
 Adding function sum
 --- Entering scope
-Adding type T
 --- Entering scope
 --- Leaving scope containing
-Adding object 0
-Adding function ?+?
---- Entering scope
---- Leaving scope containing
-Adding function ?++
---- Entering scope
---- Leaving scope containing
-Adding function ?+=?
+Adding type T
+Adding function ?=?
 --- Entering scope
 --- Leaving scope containing
@@ -138,18 +96,15 @@
 Adding object total
 Adding object i
+--- Entering scope
 --- Leaving scope containing
-i (__i__i) (2)
-total (__total__2tT) (2)
 --- Leaving scope containing
-0 (__0__2tT) (1)
-?++ (__?++__F_2tT_2tT_) (1)
-?+=? (__?+=?__F_2tT_2tT2tT_) (1)
-?+? (__?+?__F_2tT_2tT2tT_) (1)
-a (__a__P2tT) (1)
-n (__n__i) (1)
+--- Leaving scope containing
 T
 Adding function twice
 --- Entering scope
+--- Entering scope
+--- Leaving scope containing
 Adding type T
+Adding function ?=?
 --- Entering scope
 --- Leaving scope containing
@@ -168,9 +123,4 @@
 --- Leaving scope containing
 --- Leaving scope containing
-0 (__0__C2tT) (1)
-?++ (__?++__F_2tT_2tT_) (1)
-?+=? (__?+=?__F_2tT_2tT2tT_) (1)
-?+? (__?+?__F_2tT_2tT2tT_) (1)
-t (__t__2tT) (1)
 T
 Adding function main
@@ -182,7 +132,3 @@
 Adding object f
 --- Leaving scope containing
-a (__a__A0i) (2)
-f (__f__f) (2)
-x (__x__i) (2)
-y (__y__i) (2)
 --- Leaving scope containing
Index: src/Tests/SynTree/Expected-SymTab/Scope.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Scope.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected-SymTab/Scope.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,28 +1,19 @@
-in default case, (shouldn't be here)
-in default case, (shouldn't be here)
-in default case, (shouldn't be here)
 Adding object x
-Adding typedef y
---- Entering scope
---- Leaving scope containing
-Adding typedef t
---- Entering scope
---- Leaving scope containing
 Adding object z
-Adding struct __anonymous0
+Adding fwd decl for struct __anonymous0
 --- Entering scope
 Adding object a
 Adding object b
 --- Leaving scope containing
-a (__a__i) (1)
-b (__b__d) (1)
-Adding type u
+Adding struct __anonymous0
+--- Entering scope
 --- Entering scope
 --- Leaving scope containing
+--- Leaving scope containing
+Adding type u
 Adding function f
 --- Entering scope
 Adding object y
 --- Leaving scope containing
-y (__y__i) (1)
 Adding object q
 Adding function w
@@ -31,7 +22,7 @@
 Adding object v
 --- Entering scope
-Adding type x
 --- Entering scope
 --- Leaving scope containing
+Adding type x
 Adding function t
 --- Entering scope
@@ -40,29 +31,23 @@
 Adding object z
 --- Leaving scope containing
-t (__t__F_2tx_2tu_) (2)
-u (__u__2tu) (2)
-z (__z__2tx) (2)
 x
 --- Leaving scope containing
-v (__v__2tu) (1)
-y (__y__2ty) (1)
 Adding object p
-Adding context has_u
 --- Entering scope
-Adding type z
 --- Entering scope
 --- Leaving scope containing
+Adding type z
 Adding function u
 --- Entering scope
 --- Leaving scope containing
 --- Leaving scope containing
-u (__u__F_2tz_2tz_) (1)
 z
+Adding context has_u
 Adding function q
 --- Entering scope
-Adding type t
 --- Entering scope
 --- Leaving scope containing
-Adding function u
+Adding type t
+Adding function ?=?
 --- Entering scope
 --- Leaving scope containing
@@ -71,8 +56,5 @@
 Adding object y
 --- Leaving scope containing
-y (__y__2tt) (2)
 --- Leaving scope containing
-the_t (__the_t__2tt) (1)
-u (__u__F_2tt_2tt_) (1)
 t
 Adding function f
@@ -81,44 +63,26 @@
 --- Entering scope
 Adding object y
-Adding typedef x
+--- Entering scope
+Adding object y
+--- Entering scope
+Adding object x
+Adding object z
+--- Leaving scope containing
+Adding object x
+--- Leaving scope containing
+Adding object q
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
 --- Entering scope
 --- Leaving scope containing
+Adding object x
 --- Entering scope
 Adding object y
-Adding typedef z
---- Entering scope
---- Leaving scope containing
---- Entering scope
-Adding object x
-Adding typedef y
---- Entering scope
 --- Leaving scope containing
 Adding object z
 --- Leaving scope containing
-x (__x__2tz) (4)
-z (__z__2ty) (4)
-y
-Adding object x
---- Leaving scope containing
-x (__x__2tz) (3)
-y (__y__2tx) (3)
-z
-Adding object q
---- Leaving scope containing
-q (__q__2tx) (2)
-y (__y__i) (2)
-x
---- Leaving scope containing
-p (__p__2ty) (1)
-Adding function g
---- Entering scope
---- Entering scope
-Adding typedef x
---- Entering scope
---- Leaving scope containing
-Adding object z
---- Leaving scope containing
-z (__z__2tx) (2)
-x
 --- Leaving scope containing
 Adding function q
@@ -128,3 +92,2 @@
 --- Leaving scope containing
 --- Leaving scope containing
-i (__i__i) (1)
Index: src/Tests/SynTree/Expected-SymTab/ScopeErrors.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/ScopeErrors.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected-SymTab/ScopeErrors.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -8,5 +8,4 @@
 Adding object thisIsNotAnError
 --- Leaving scope containing
-thisIsNotAnError (__thisIsNotAnError__i) (2)
 --- Leaving scope containing
 Adding function thisIsAlsoNotAnError
@@ -16,5 +15,4 @@
 --- Leaving scope containing
 --- Leaving scope containing
-x (__x__d) (1)
 Adding function thisIsStillNotAnError
 --- Entering scope
@@ -29,6 +27,5 @@
 --- Leaving scope containing
 Adding function butThisIsAnError
-Error: duplicate definition for thisIsAnError: a signed int 
-Error: duplicate function definition for butThisIsAnError: a function
+Error: duplicate function definition for butThisIsAnError: function
   with parameters
     double 
@@ -36,3 +33,4 @@
     double 
   with body 
+    CompoundStmt
 
Index: src/Tests/SynTree/Expected-SymTab/Tuple.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Tuple.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected-SymTab/Tuple.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -12,25 +12,24 @@
 Adding object d
 --- Leaving scope containing
-a (__a__i) (1)
-b (__b__i) (1)
-c (__c__Pi) (1)
-d (__d__Pc) (1)
-Adding struct inner
+Adding fwd decl for struct inner
 --- Entering scope
 Adding object f2
 Adding object f3
 --- Leaving scope containing
-f2 (__f2__i) (1)
-f3 (__f3__i) (1)
-Adding struct outer
+Adding struct inner
+Adding fwd decl for struct outer
 --- Entering scope
 Adding object f1
+--- Entering scope
+--- Leaving scope containing
 Adding object i
 Adding object f4
 --- Leaving scope containing
-f1 (__f1__i) (1)
-f4 (__f4__d) (1)
-i (__i__6sinner) (1)
+Adding struct outer
+--- Entering scope
+--- Leaving scope containing
 Adding object s
+--- Entering scope
+--- Leaving scope containing
 Adding object sp
 Adding object t1
@@ -42,11 +41,8 @@
 Adding object fmt
 --- Leaving scope containing
-fmt (__fmt__Pc) (1)
-rc (__rc__i) (1)
 Adding function printf
 --- Entering scope
 Adding object fmt
 --- Leaving scope containing
-fmt (__fmt__Pc) (1)
 Adding function f1
 --- Entering scope
@@ -57,7 +53,4 @@
 --- Leaving scope containing
 --- Leaving scope containing
-w (__w__i) (1)
-x (__x__s) (1)
-y (__y__Ui) (1)
 Adding function g1
 --- Entering scope
@@ -69,10 +62,5 @@
 Adding object z
 --- Leaving scope containing
-p (__p__s) (2)
-x (__x__s) (2)
-y (__y__Ui) (2)
-z (__z__Tii_) (2)
 --- Leaving scope containing
-r (__r__Ticli_) (1)
 Adding function main
 --- Entering scope
@@ -85,13 +73,7 @@
 Adding object c
 Adding object d
+--- Entering scope
+--- Leaving scope containing
 Adding object t
 --- Leaving scope containing
-a (__a__i) (2)
-b (__b__i) (2)
-c (__c__i) (2)
-d (__d__i) (2)
-t (__t__6souter) (2)
 --- Leaving scope containing
-argc (__argc__i) (1)
-argv (__argv__PPc) (1)
-rc (__rc__i) (1)
Index: src/Tests/SynTree/Expected/Array.tst
===================================================================
--- src/Tests/SynTree/Expected/Array.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/Array.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,50 +1,51 @@
-a1: a open array of signed int 
-a2: a variable length array of signed int 
-a4: a array of   Constant Expression: 3signed int 
-m1: a open array of array of   Constant Expression: 3signed int 
-m2: a variable length array of variable length array of signed int 
-m4: a array of   Constant Expression: 3array of   Constant Expression: 3signed int 
-T: a typedef for signed int 
-fred: a function
+a1: open array of signed int 
+a2: variable length array of signed int 
+a4: array of double with dimension of constant expression 3.0 double 
+m1: open array of array of signed int with dimension of constant expression 3 signed int 
+m2: variable length array of variable length array of signed int 
+m4: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+T: typedef for signed int 
+fred: function
+      accepting unspecified arguments
     returning 
       signed int 
     with body 
-      Declaration of a1: a open array of signed int 
-      Declaration of a2: a variable length array of signed int 
-      Declaration of a4: a array of         Constant Expression: 3signed int 
-      Declaration of T: a array of         Constant Expression: 3signed int 
+      CompoundStmt
+        Declaration of a1: open array of signed int 
+        Declaration of a2: variable length array of signed int 
+        Declaration of a4: array of signed int with dimension of constant expression 3 signed int 
+        Declaration of T: array of signed int with dimension of constant expression 3 signed int 
 
-mary: a function
+mary: function
     with parameters
-      T: a array of         Constant Expression: 3signed int 
-      p1: a const array of         Constant Expression: 3signed int 
-      p2: a static array of         Constant Expression: 3signed int 
-      p3: a const static array of         Constant Expression: 3signed int 
+      T: array of signed int with dimension of constant expression 3 signed int 
+      p1: const array of signed int with dimension of constant expression 3 signed int 
+      p2: static array of signed int with dimension of constant expression 3 signed int 
+      p3: const static array of signed int with dimension of constant expression 3 signed int 
     returning 
       signed int 
     with body 
+      CompoundStmt
 
-      Null Statement
+tom: function
+      accepting unspecified arguments
+    returning 
+      pointer to array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
 
-tom: a function
-    returning 
-      pointer to array of         Constant Expression: 3signed int 
-    with body 
-
-      Null Statement
-
-jane: a function
+jane: function
+      accepting unspecified arguments
     returning 
       pointer to function
           with parameters
-            T: a array of               Constant Expression: 3signed int 
-            p1: a const array of               Constant Expression: 3signed int 
-            p2: a static array of               Constant Expression: 3signed int 
-            p3: a const static array of               Constant Expression: 3signed int 
+            T: array of signed int with dimension of constant expression 3 signed int 
+            p1: const array of signed int with dimension of constant expression 3 signed int 
+            p2: static array of signed int with dimension of constant expression 3 signed int 
+            p3: const static array of signed int with dimension of constant expression 3 signed int 
           returning 
             signed int 
 
     with body 
+      CompoundStmt
 
-      Null Statement
-
Index: src/Tests/SynTree/Expected/Constant0-1.tst
===================================================================
--- src/Tests/SynTree/Expected/Constant0-1.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/Constant0-1.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,69 +1,69 @@
-0: a signed int 
-0: a const signed int 
-0: a static const signed int 
-1: a signed int 
-1: a const signed int 
-1: a static const signed int 
-0: a signed int 
-1: a signed int 
-0: a const signed int 
-1: a const signed int 
-0: a static const signed int 
-1: a static const signed int 
+0: signed int 
+0: const signed int 
+0: static const signed int 
+1: signed int 
+1: const signed int 
+1: static const signed int 
+0: signed int 
+1: signed int 
+0: const signed int 
+1: const signed int 
+0: static const signed int 
+1: static const signed int 
 struct __anonymous0
     with members
-      i: a signed int 
+      i: signed int 
 
-0: a instance of struct __anonymous0 
+0: instance of struct __anonymous0 
 struct __anonymous1
     with members
-      i: a signed int 
+      i: signed int 
 
-1: a const instance of struct __anonymous1 
+1: const instance of struct __anonymous1 
 struct __anonymous2
     with members
-      i: a signed int 
+      i: signed int 
 
-1: a static const instance of struct __anonymous2 
-1: a signed int 
-0: a pointer to signed int 
-1: a signed int 
-1: a signed int 
-0: a pointer to signed int 
-0: a pointer to signed int 
-0: a pointer to signed int 
-0: a const pointer to signed int 
-0: a const pointer to signed int 
-0: a const pointer to signed int 
+1: static const instance of struct __anonymous2 
+1: signed int 
+0: pointer to signed int 
+1: signed int 
+1: signed int 
+0: pointer to signed int 
+0: pointer to signed int 
+0: pointer to signed int 
+0: const pointer to signed int 
+0: const pointer to signed int 
+0: const pointer to signed int 
 struct __anonymous3
     with members
-      i: a signed int 
+      i: signed int 
 
-0: a pointer to instance of struct __anonymous3 
-x: a pointer to signed int 
-0: a pointer to signed int 
-x: a const pointer to signed int 
-0: a const pointer to signed int 
-x: a static const pointer to signed int 
-0: a static const pointer to signed int 
+0: pointer to instance of struct __anonymous3 
+x: pointer to signed int 
+0: pointer to signed int 
+x: const pointer to signed int 
+0: const pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
 struct __anonymous4
     with members
-      i: a signed int 
+      i: signed int 
 
-0: a pointer to instance of struct __anonymous4 
+0: pointer to instance of struct __anonymous4 
 struct __anonymous5
     with members
-      i: a signed int 
+      i: signed int 
 
-0: a const pointer to instance of struct __anonymous5 
+0: const pointer to instance of struct __anonymous5 
 struct __anonymous6
     with members
-      i: a signed int 
+      i: signed int 
 
-0: a static const pointer to instance of struct __anonymous6 
-x: a static pointer to signed int 
-0: a static pointer to signed int 
-x: a static const pointer to signed int 
-0: a static const pointer to signed int 
-x: a const pointer to pointer to signed int 
-0: a const pointer to pointer to signed int 
+0: static const pointer to instance of struct __anonymous6 
+x: static pointer to signed int 
+0: static pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+x: const pointer to pointer to signed int 
+0: const pointer to pointer to signed int 
Index: src/Tests/SynTree/Expected/Context.tst
===================================================================
--- src/Tests/SynTree/Expected/Context.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/Context.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,53 +1,62 @@
 context has_q
     with parameters
-      T: a type
+      T: type
 
     with members
-      q: a function
+      q: function
           with parameters
-            instance of type T 
+            instance of type T (not function type) 
           returning 
-            instance of type T 
+            instance of type T (not function type) 
 
 
-f: a function
-    with forall
-      z: a type
+f: forall
+      z: type
         with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type z (not function type) 
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
           instance of context has_q 
             with parameters
-              instance of type z 
+              instance of type z (not function type) 
 
 
+    function
+      accepting unspecified arguments
     returning 
       void 
     with body 
-      Declaration of context has_r
-          with parameters
-            T: a type
-            U: a type
+      CompoundStmt
+        Declaration of context has_r
+            with parameters
+              T: type
+              U: type
 
-          with members
-            r: a function
-                with parameters
-                  instance of type T 
-                  function
-                      with parameters
-                        instance of type T 
-                        instance of type U 
-                      returning 
-                        instance of type T 
+            with members
+              r: function
+                  with parameters
+                    instance of type T (not function type) 
+                    function
+                        with parameters
+                          instance of type T (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type T (not function type) 
 
-                returning 
-                  instance of type T 
+                  returning 
+                    instance of type T (not function type) 
 
 
-      Declaration of x: a extern type
-      Declaration of y: a extern type
-        with assertions
-          instance of context has_r 
-            with parameters
-              instance of type x 
-              instance of type y 
+        Declaration of x: auto type
+        Declaration of y: auto type
+          with assertions
+            instance of context has_r 
+              with parameters
+                instance of type x (not function type) 
+                instance of type y (not function type) 
 
 
Index: src/Tests/SynTree/Expected/DeclarationSpecifier.tst
===================================================================
--- src/Tests/SynTree/Expected/DeclarationSpecifier.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/DeclarationSpecifier.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,193 +1,217 @@
-Int: a typedef for short signed int 
-x1: a const volatile short signed int 
-x2: a static const volatile short signed int 
-x3: a static const volatile short signed int 
-x4: a static const volatile short signed int 
-x4: a static const volatile short signed int 
-x5: a static const volatile short signed int 
-x6: a static const volatile short signed int 
-x7: a static const volatile short signed int 
-x8: a static const volatile short signed int 
+Int: typedef for short signed int 
+x1: const volatile short signed int 
+x2: static const volatile short signed int 
+x3: static const volatile short signed int 
+x4: static const volatile short signed int 
+x4: static const volatile short signed int 
+x5: static const volatile short signed int 
+x6: static const volatile short signed int 
+x7: static const volatile short signed int 
+x8: static const volatile short signed int 
 struct __anonymous0
     with members
-      i: a signed int 
-
-x10: a const volatile instance of struct __anonymous0 
+      i: signed int 
+
+x10: const volatile instance of struct __anonymous0 
 struct __anonymous1
     with members
-      i: a signed int 
-
-x11: a const volatile instance of struct __anonymous1 
+      i: signed int 
+
+x11: const volatile instance of struct __anonymous1 
 struct __anonymous2
     with members
-      i: a signed int 
-
-x12: a const volatile instance of struct __anonymous2 
+      i: signed int 
+
+x12: const volatile instance of struct __anonymous2 
 struct __anonymous3
     with members
-      i: a signed int 
-
-x13: a static const volatile instance of struct __anonymous3 
+      i: signed int 
+
+x13: static const volatile instance of struct __anonymous3 
 struct __anonymous4
     with members
-      i: a signed int 
-
-x14: a static const volatile instance of struct __anonymous4 
+      i: signed int 
+
+x14: static const volatile instance of struct __anonymous4 
 struct __anonymous5
     with members
-      i: a signed int 
-
-x15: a static const volatile instance of struct __anonymous5 
+      i: signed int 
+
+x15: static const volatile instance of struct __anonymous5 
 struct __anonymous6
     with members
-      i: a signed int 
-
-x16: a static const volatile instance of struct __anonymous6 
+      i: signed int 
+
+x16: static const volatile instance of struct __anonymous6 
 struct __anonymous7
     with members
-      i: a signed int 
-
-x17: a static const volatile instance of struct __anonymous7 
-x20: a const volatile instance of type Int 
-x21: a static const volatile instance of type Int 
-x22: a static const volatile instance of type Int 
-x23: a static const volatile instance of type Int 
-x24: a static const volatile instance of type Int 
-x25: a static const volatile instance of type Int 
-x26: a static const volatile instance of type Int 
-x27: a static const volatile instance of type Int 
+      i: signed int 
+
+x17: static const volatile instance of struct __anonymous7 
+x20: const volatile instance of type Int (not function type) 
+x21: static const volatile instance of type Int (not function type) 
+x22: static const volatile instance of type Int (not function type) 
+x23: static const volatile instance of type Int (not function type) 
+x24: static const volatile instance of type Int (not function type) 
+x25: static const volatile instance of type Int (not function type) 
+x26: static const volatile instance of type Int (not function type) 
+x27: static const volatile instance of type Int (not function type) 
 struct __anonymous8
     with members
-      i: a instance of type Int 
-
-x29: a const volatile instance of struct __anonymous8 
+      i: instance of type Int (not function type) 
+
+x29: const volatile instance of struct __anonymous8 
 struct __anonymous9
     with members
-      i: a instance of type Int 
-
-x30: a const volatile instance of struct __anonymous9 
+      i: instance of type Int (not function type) 
+
+x30: const volatile instance of struct __anonymous9 
 struct __anonymous10
     with members
-      i: a instance of type Int 
-
-x31: a const volatile instance of struct __anonymous10 
+      i: instance of type Int (not function type) 
+
+x31: const volatile instance of struct __anonymous10 
 struct __anonymous11
     with members
-      i: a instance of type Int 
-
-x32: a static const volatile instance of struct __anonymous11 
+      i: instance of type Int (not function type) 
+
+x32: static const volatile instance of struct __anonymous11 
 struct __anonymous12
     with members
-      i: a instance of type Int 
-
-x33: a static const volatile instance of struct __anonymous12 
+      i: instance of type Int (not function type) 
+
+x33: static const volatile instance of struct __anonymous12 
 struct __anonymous13
     with members
-      i: a instance of type Int 
-
-x34: a static const volatile instance of struct __anonymous13 
+      i: instance of type Int (not function type) 
+
+x34: static const volatile instance of struct __anonymous13 
 struct __anonymous14
     with members
-      i: a instance of type Int 
-
-x35: a static const volatile instance of struct __anonymous14 
+      i: instance of type Int (not function type) 
+
+x35: static const volatile instance of struct __anonymous14 
 struct __anonymous15
     with members
-      i: a instance of type Int 
-
-x36: a static const volatile instance of struct __anonymous15 
-f01: a inline static function
-    returning 
-      const volatile signed int 
-
-f02: a inline static function
-    returning 
-      const volatile signed int 
-
-f03: a inline static function
-    returning 
-      const volatile signed int 
-
-f04: a inline static function
-    returning 
-      const volatile signed int 
-
-f05: a inline static function
-    returning 
-      const volatile signed int 
-
-f06: a inline static function
-    returning 
-      const volatile signed int 
-
-f07: a inline static function
-    returning 
-      const volatile signed int 
-
-f08: a inline static function
-    returning 
-      const volatile signed int 
-
-f11: a inline static function
-    returning 
-      const volatile signed int 
-
-f12: a inline static function
-    returning 
-      const volatile signed int 
-
-f13: a inline static function
-    returning 
-      const volatile signed int 
-
-f14: a inline static function
-    returning 
-      const volatile signed int 
-
-f15: a inline static function
-    returning 
-      const volatile signed int 
-
-f16: a inline static function
-    returning 
-      const volatile signed int 
-
-f17: a inline static function
-    returning 
-      const volatile signed int 
-
-f18: a inline static function
-    returning 
-      const volatile signed int 
-
-f21: a inline static function
-    returning 
-      const volatile short signed int 
-
-f22: a inline static function
-    returning 
-      const volatile short signed int 
-
-f23: a inline static function
-    returning 
-      const volatile short signed int 
-
-f24: a inline static function
-    returning 
-      const volatile short signed int 
-
-f25: a inline static function
-    returning 
-      const volatile short signed int 
-
-f26: a inline static function
-    returning 
-      const volatile short signed int 
-
-f27: a inline static function
-    returning 
-      const volatile short signed int 
-
-f28: a inline static function
+      i: instance of type Int (not function type) 
+
+x36: static const volatile instance of struct __anonymous15 
+f01: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f02: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f03: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f04: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f05: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f06: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f07: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f08: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f11: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f12: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f13: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f14: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f15: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f16: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f17: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f18: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile signed int 
+
+f21: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile short signed int 
+
+f22: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile short signed int 
+
+f23: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile short signed int 
+
+f24: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile short signed int 
+
+f25: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile short signed int 
+
+f26: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile short signed int 
+
+f27: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile short signed int 
+
+f28: inline static function
+      accepting unspecified arguments
     returning 
       const volatile short signed int 
@@ -195,7 +219,8 @@
 struct __anonymous16
     with members
-      i: a signed int 
-
-f31: a inline static function
+      i: signed int 
+
+f31: inline static function
+      accepting unspecified arguments
     returning 
       const volatile instance of struct __anonymous16 
@@ -203,7 +228,8 @@
 struct __anonymous17
     with members
-      i: a signed int 
-
-f32: a inline static function
+      i: signed int 
+
+f32: inline static function
+      accepting unspecified arguments
     returning 
       const volatile instance of struct __anonymous17 
@@ -211,7 +237,8 @@
 struct __anonymous18
     with members
-      i: a signed int 
-
-f33: a inline static function
+      i: signed int 
+
+f33: inline static function
+      accepting unspecified arguments
     returning 
       const volatile instance of struct __anonymous18 
@@ -219,7 +246,8 @@
 struct __anonymous19
     with members
-      i: a signed int 
-
-f34: a inline static function
+      i: signed int 
+
+f34: inline static function
+      accepting unspecified arguments
     returning 
       const volatile instance of struct __anonymous19 
@@ -227,7 +255,8 @@
 struct __anonymous20
     with members
-      i: a signed int 
-
-f35: a inline static function
+      i: signed int 
+
+f35: inline static function
+      accepting unspecified arguments
     returning 
       const volatile instance of struct __anonymous20 
@@ -235,7 +264,8 @@
 struct __anonymous21
     with members
-      i: a signed int 
-
-f36: a inline static function
+      i: signed int 
+
+f36: inline static function
+      accepting unspecified arguments
     returning 
       const volatile instance of struct __anonymous21 
@@ -243,7 +273,8 @@
 struct __anonymous22
     with members
-      i: a signed int 
-
-f37: a inline static function
+      i: signed int 
+
+f37: inline static function
+      accepting unspecified arguments
     returning 
       const volatile instance of struct __anonymous22 
@@ -251,40 +282,49 @@
 struct __anonymous23
     with members
-      i: a signed int 
-
-f38: a inline static function
+      i: signed int 
+
+f38: inline static function
+      accepting unspecified arguments
     returning 
       const volatile instance of struct __anonymous23 
 
-f41: a inline static function
-    returning 
-      const volatile instance of type Int 
-
-f42: a inline static function
-    returning 
-      const volatile instance of type Int 
-
-f43: a inline static function
-    returning 
-      const volatile instance of type Int 
-
-f44: a inline static function
-    returning 
-      const volatile instance of type Int 
-
-f45: a inline static function
-    returning 
-      const volatile instance of type Int 
-
-f46: a inline static function
-    returning 
-      const volatile instance of type Int 
-
-f47: a inline static function
-    returning 
-      const volatile instance of type Int 
-
-f48: a inline static function
-    returning 
-      const volatile instance of type Int 
-
+f41: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile instance of type Int (not function type) 
+
+f42: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile instance of type Int (not function type) 
+
+f43: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile instance of type Int (not function type) 
+
+f44: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile instance of type Int (not function type) 
+
+f45: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile instance of type Int (not function type) 
+
+f46: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile instance of type Int (not function type) 
+
+f47: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile instance of type Int (not function type) 
+
+f48: inline static function
+      accepting unspecified arguments
+    returning 
+      const volatile instance of type Int (not function type) 
+
Index: src/Tests/SynTree/Expected/Enum.tst
===================================================================
--- src/Tests/SynTree/Expected/Enum.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/Enum.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,13 +1,13 @@
 enum Colors
     with members
-      Red: a untyped entity 
-      Yellow: a untyped entity 
-      Pink: a untyped entity 
-      Blue: a untyped entity 
-      Purple: a untyped entity 
-      Orange: a untyped entity 
-      Green: a untyped entity 
+      Red: untyped entity 
+      Yellow: untyped entity 
+      Pink: untyped entity 
+      Blue: untyped entity 
+      Purple: untyped entity 
+      Orange: untyped entity 
+      Green: untyped entity 
 
-f: a function
+f: function
     with parameters
       void 
@@ -15,11 +15,14 @@
       void 
     with body 
-      Declaration of enum Fruits
-          with members
-            Apple: a untyped entity 
-            Banana: a untyped entity 
-            Pear: a untyped entity 
-            Mango: a untyped entity 
+      CompoundStmt
+        Declaration of enum Fruits
+            with members
+              Apple: untyped entity 
+              Banana: untyped entity 
+              Pear: untyped entity 
+              Mango: untyped entity 
 
-      Declaration of fruit: a instance of enum Fruits 
+        Declaration of fruit: instance of enum Fruits with initializer 
+          Simple Initializer:             Name: Mango
 
+
Index: src/Tests/SynTree/Expected/Forall.tst
===================================================================
--- src/Tests/SynTree/Expected/Forall.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/Forall.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,229 +1,330 @@
-in default case, (shouldn't be here)
-in default case, (shouldn't be here)
-f: a typedef for pointer to function
+f: typedef for pointer to forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
     with parameters
       signed int 
-    with forall
-      T: a type
     returning 
       signed int 
 
-swap: a function
-    with parameters
-      left: a instance of type T 
-      right: a instance of type T 
-    with forall
-      T: a type
+swap: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
     returning 
       void 
     with body 
-      Declaration of temp: a instance of type T 
-      
-        Expression Statement:
-          Applying untyped: 
-              Name: ?=?
- to: 
-              Name: left
-              Name: right
-
-      
-        Expression Statement:
-          Applying untyped: 
-              Name: ?=?
- to: 
-              Name: right
-              Name: temp
+      CompoundStmt
+        Declaration of temp: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: left
+                Name: right
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: right
+                Name: temp
 
 
 context sumable
     with parameters
-      T: a type
+      T: type
 
     with members
-      0: a const instance of type T 
-      ?+?: a function
+      0: const instance of type T (not function type) 
+      ?+?: function
           with parameters
-            instance of type T 
-            instance of type T 
+            instance of type T (not function type) 
+            instance of type T (not function type) 
           returning 
-            instance of type T 
-
-      ?++: a function
+            instance of type T (not function type) 
+
+      ?++: function
           with parameters
-            instance of type T 
+            instance of type T (not function type) 
           returning 
-            instance of type T 
-
-      ?+=?: a function
+            instance of type T (not function type) 
+
+      ?+=?: function
           with parameters
-            instance of type T 
-            instance of type T 
+            instance of type T (not function type) 
+            instance of type T (not function type) 
           returning 
-            instance of type T 
-
-
-T1: a type
+            instance of type T (not function type) 
+
+
+T1: type
   with assertions
-    0: a const instance of type T1 
-    ?+?: a function
+    0: const instance of type T1 (not function type) 
+    ?+?: function
         with parameters
-          instance of type T1 
-          instance of type T1 
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
         returning 
-          instance of type T1 
-
-    ?++: a function
+          instance of type T1 (not function type) 
+
+    ?++: function
         with parameters
-          instance of type T1 
+          instance of type T1 (not function type) 
         returning 
-          instance of type T1 
-
-    ?+=?: a function
+          instance of type T1 (not function type) 
+
+    ?+=?: function
         with parameters
-          instance of type T1 
-          instance of type T1 
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
         returning 
-          instance of type T1 
-
-
-T2: a type
-  with parameters
-    P1: a type
-    P2: a type
-
-T3: a type
+          instance of type T1 (not function type) 
+
+
+T2: type
+  with parameters
+    P1: type
+    P2: type
+
+T3: type
   with assertions
     instance of context sumable 
       with parameters
-        instance of type T3 
+        instance of type T3 (not function type) 
 
 
 struct __anonymous0
     with members
-      i: a instance of type P1 
-      j: a instance of type P2 
-
-T2: a type for instance of struct __anonymous0 
-  with parameters
-    P1: a type
-    P2: a type
+      i: instance of type P1 (not function type) 
+      j: instance of type P2 (not function type) 
+
+T2: type for instance of struct __anonymous0 
+  with parameters
+    P1: type
+    P2: type
 
   with assertions
     instance of context sumable 
       with parameters
-        instance of type T2 
+        instance of type T2 (not function type) 
           with parameters
-            instance of type P1 
-            instance of type P2 
-
-
-
-w1: a instance of type T2 
-  with parameters
-    signed int 
-    signed int 
-
-w2: a typedef for instance of type T2 
-  with parameters
-    signed int 
-    signed int 
-
-g2: a instance of type w2 
-w3: a type for instance of type T2 
-  with parameters
-    signed int 
-    signed int 
-
-g3: a instance of type w3 
-sum: a function
-    with parameters
-      n: a signed int 
-      a: a open array of instance of type T 
-    with forall
-      T: a type
+            instance of type P1 (not function type) 
+            instance of type P2 (not function type) 
+
+
+
+w1: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+w2: typedef for instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+g2: instance of type w2 (not function type) 
+w3: type for instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+g3: instance of type w3 (not function type) 
+sum: forall
+      T: type
         with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
           instance of context sumable 
             with parameters
-              instance of type T 
-
-
-    returning 
-      instance of type T 
+              instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: open array of instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
     with body 
-      Declaration of total: a instance of type T 
-      Declaration of i: a signed int 
-
-twice: a function
-    with parameters
-      t: a instance of type T 
-    with forall
-      T: a type
+      CompoundStmt
+        Declaration of total: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: 0
+
+        Declaration of i: signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: n
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: total
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Name: total
+                        Applying untyped: 
+                            Name: ?[?]
+                        ...to: 
+                            Name: a
+                            Name: i
+
+
+                  Return Statement, returning: Name: total
+
+
+
+twice: forall
+      T: type
         with assertions
-          0: a const instance of type T 
-          ?+?: a function
-              with parameters
-                instance of type T 
-                instance of type T 
-              returning 
-                instance of type T 
-
-          ?++: a function
-              with parameters
-                instance of type T 
-              returning 
-                instance of type T 
-
-          ?+=?: a function
-              with parameters
-                instance of type T 
-                instance of type T 
-              returning 
-                instance of type T 
-
-
-    returning 
-      instance of type T 
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
     with body 
-
-main: a function
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?+?
+...to: 
+    Name: t
+    Name: t
+
+
+
+main: C function
+      accepting unspecified arguments
     returning 
       signed int 
     with body 
-      Declaration of x: a signed int 
-      Declaration of y: a signed int 
-      Declaration of a: a array of         Constant Expression: 10signed int 
-      Declaration of f: a float 
-      
-        Expression Statement:
-          Applying untyped: 
-              Name: swap
- to: 
-              Name: x
-              Name: y
-
-      
-        Expression Statement:
-          Applying untyped: 
-              Name: twice
- to: 
-              Name: x
-              Name: y
-
-      
-        Expression Statement:
-          Applying untyped: 
-              Name: ?=?
- to: 
-              Name: f
-              Applying untyped: 
-                  Name: min
- to: 
-                  Constant Expression: 4.0                  Constant Expression: 3.0
-      
-        Expression Statement:
-          Applying untyped: 
-              Name: sum
- to: 
-              Constant Expression: 10              Name: a
-
-
+      CompoundStmt
+        Declaration of x: signed int with initializer 
+          Simple Initializer:             Name: 1
+
+        Declaration of y: signed int with initializer 
+          Simple Initializer: constant expression 2 signed int 
+        Declaration of a: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: swap
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: twice
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: f
+                Applying untyped: 
+                    Name: min
+                ...to: 
+constant expression 4.0 double constant expression 3.0 double 
+                  Expression Statement:
+            Applying untyped: 
+                Name: sum
+            ...to: 
+constant expression 10 signed int                 Name: a
+
+
Index: src/Tests/SynTree/Expected/Functions.tst
===================================================================
--- src/Tests/SynTree/Expected/Functions.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/Functions.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,3 +1,3 @@
-h: a function
+h: function
     with parameters
       void 
@@ -5,6 +5,7 @@
       void 
     with body 
-
-f: a function
+      CompoundStmt
+
+f: function
     with parameters
       function
@@ -32,5 +33,5 @@
             signed int 
 
-      g: a function
+      g: function
           with parameters
             void 
@@ -41,125 +42,188 @@
       signed int 
     with body 
-
-f1: a function
-    returning 
-      signed int 
-    with body 
-
-f2: a function
-    returning 
-      signed int 
-    with body 
-
-f3: a function
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Applying untyped: 
+                    Name: *?
+                ...to: 
+                    Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: g
+                Name: h
+
+
+f1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f3: function
+      accepting unspecified arguments
     returning 
       pointer to function
-          returning 
-            signed int 
-
-    with body 
-
-f4: a function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f4: function
+      accepting unspecified arguments
     returning 
       pointer to signed int 
     with body 
-
-f5: a function
+      CompoundStmt
+
+f5: function
+      accepting unspecified arguments
     returning 
       pointer to function
-          returning 
-            signed int 
-
-    with body 
-
-f6: a function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f6: function
+      accepting unspecified arguments
     returning 
       pointer to signed int 
     with body 
-
-f7: a function
+      CompoundStmt
+
+f7: function
+      accepting unspecified arguments
     returning 
       pointer to signed int 
     with body 
-
-f8: a function
+      CompoundStmt
+
+f8: function
+      accepting unspecified arguments
     returning 
       pointer to pointer to signed int 
     with body 
-
-f9: a function
+      CompoundStmt
+
+f9: function
+      accepting unspecified arguments
     returning 
       pointer to const pointer to signed int 
     with body 
-
-f10: a function
+      CompoundStmt
+
+f10: function
+      accepting unspecified arguments
     returning 
       pointer to open array of signed int 
     with body 
-
-f11: a function
-    returning 
-      pointer to open array of open array of signed int 
-    with body 
-
-f12: a function
-    returning 
-      pointer to open array of open array of signed int 
-    with body 
-
-fII1: a function
-    with parameters
-      i: a signed int 
-    returning 
-      signed int 
-    with body 
-
-fII2: a function
-    with parameters
-      i: a signed int 
+      CompoundStmt
+
+f11: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+f12: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+fII1: function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII2: function
+    with parameters
+      i: signed int 
     returning 
       const signed int 
     with body 
-
-fII3: a extern function
-    with parameters
-      i: a signed int 
-    returning 
-      signed int 
-    with body 
-
-fII4: a extern function
-    with parameters
-      i: a signed int 
+      CompoundStmt
+
+fII3: auto function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII4: auto function
+    with parameters
+      i: signed int 
     returning 
       const signed int 
     with body 
-
-fII5: a function
+      CompoundStmt
+
+fII5: function
+      accepting unspecified arguments
     returning 
       pointer to signed int 
     with body 
-
-fII6: a function
+      CompoundStmt
+
+fII6: function
+      accepting unspecified arguments
     returning 
       const pointer to signed int 
     with body 
-
-fII7: a function
+      CompoundStmt
+
+fII7: function
+      accepting unspecified arguments
     returning 
       pointer to const long signed int 
     with body 
-
-fII8: a static function
+      CompoundStmt
+
+fII8: static function
+      accepting unspecified arguments
     returning 
       pointer to const long signed int 
     with body 
-
-fII9: a static function
+      CompoundStmt
+
+fII9: static function
+      accepting unspecified arguments
     returning 
       pointer to const long signed int 
     with body 
-
-fO1: a function
+      CompoundStmt
+
+fO1: function
+      accepting unspecified arguments
     returning 
       signed int 
@@ -167,8 +231,10 @@
       i
     with parameter declarations
-      i: a signed int 
-    with body 
-
-fO2: a function
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO2: function
+      accepting unspecified arguments
     returning 
       signed int 
@@ -176,8 +242,10 @@
       i
     with parameter declarations
-      i: a signed int 
-    with body 
-
-fO3: a function
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO3: function
+      accepting unspecified arguments
     returning 
       const signed int 
@@ -185,8 +253,10 @@
       i
     with parameter declarations
-      i: a signed int 
-    with body 
-
-fO4: a extern function
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO4: auto function
+      accepting unspecified arguments
     returning 
       signed int 
@@ -194,8 +264,10 @@
       i
     with parameter declarations
-      i: a signed int 
-    with body 
-
-fO5: a extern function
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO5: auto function
+      accepting unspecified arguments
     returning 
       const signed int 
@@ -203,249 +275,266 @@
       i
     with parameter declarations
-      i: a signed int 
-    with body 
-
-f: a function
-    returning 
-      nothing 
-
-f: a function
-    returning 
-      signed int 
-
-f: a function
-    with parameters
-      signed int 
-    returning 
-      nothing 
-
-f: a function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f: a function
-    returning 
-      nothing 
-    with body 
-
-f: a function
-    returning 
-      signed int 
-    with body 
-
-f: a function
-    with parameters
-      signed int 
-    returning 
-      nothing 
-    with body 
-
-f: a function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-    with body 
-
-f: a function
-    returning 
-      x: a signed int 
-
-f: a function
-    with parameters
-      x: a signed int 
-    returning 
-      nothing 
-
-f: a function
-    with parameters
-      x: a signed int 
-    returning 
-      x: a signed int 
-
-f: a function
-    returning 
-      x: a signed int 
-    with body 
-
-f: a function
-    with parameters
-      x: a signed int 
-    returning 
-      nothing 
-    with body 
-
-f: a function
-    with parameters
-      x: a signed int 
-    returning 
-      x: a signed int 
-    with body 
-
-f: a function
-    returning 
-      signed int 
-      x: a signed int 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-    returning 
-      nothing 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-    returning 
-      signed int 
-      x: a signed int 
-
-f: a function
-    returning 
-      signed int 
-      x: a signed int 
-    with body 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-    returning 
-      nothing 
-    with body 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-    returning 
-      signed int 
-      x: a signed int 
-    with body 
-
-f: a function
-    returning 
-      signed int 
-      x: a signed int 
-      signed int 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-      signed int 
-    returning 
-      nothing 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-      signed int 
-    returning 
-      signed int 
-      x: a signed int 
-      signed int 
-
-f: a function
-    returning 
-      signed int 
-      x: a signed int 
-      signed int 
-    with body 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-      signed int 
-    returning 
-      nothing 
-    with body 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-      signed int 
-    returning 
-      signed int 
-      x: a signed int 
-      signed int 
-    with body 
-
-f: a function
-    returning 
-      signed int 
-      x: a signed int 
-      y: a pointer to signed int 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-      y: a pointer to signed int 
-    returning 
-      nothing 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-      y: a pointer to signed int 
-    returning 
-      signed int 
-      x: a signed int 
-      y: a pointer to signed int 
-
-f: a function
-    returning 
-      signed int 
-      x: a signed int 
-      y: a pointer to signed int 
-    with body 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-      y: a pointer to signed int 
-    returning 
-      nothing 
-    with body 
-
-f: a function
-    with parameters
-      signed int 
-      x: a signed int 
-      y: a pointer to signed int 
-    returning 
-      signed int 
-      x: a signed int 
-      y: a pointer to signed int 
-    with body 
-
-f11: a function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f12: a function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f: a function
+      i: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      nothing 
+
+f: function
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      x: signed int 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+
+f: function
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f12: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
     with parameters
       function
           with parameters
             signed int 
-            p: a signed int 
+            p: signed int 
           returning 
             signed int 
@@ -460,29 +549,34 @@
       signed int 
     with body 
-      Declaration of p: a pointer to open array of open array of pointer to open array of open array of signed int 
-      Declaration of p: a pointer to open array of open array of pointer to open array of open array of signed int 
-      Declaration of p: a pointer to open array of pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-
-f1: a static function
+      CompoundStmt
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+
+f1: static function
+      accepting unspecified arguments
     returning 
       pointer to const signed int 
     with body 
-
-f2: a static function
+      CompoundStmt
+
+f2: static function
     returning 
       const signed int 
     with body 
-
-f3: a inline static function
+      CompoundStmt
+
+f3: inline static function
     returning 
       const pointer to signed int 
     with body 
-
-f4: a inline static function
+      CompoundStmt
+
+f4: inline static function
     returning 
       const tuple of types
@@ -491,6 +585,7 @@
 
     with body 
-
-f5: a static function
+      CompoundStmt
+
+f5: static function
     returning 
       const tuple of types
@@ -499,88 +594,107 @@
 
     with body 
-
-f: a function
-    with parameters
-      function
-          returning 
-            signed int 
-
-      function
+      CompoundStmt
+
+f: function
+    with parameters
+      function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      function
+            accepting unspecified arguments
           returning 
             pointer to signed int 
 
       function
+            accepting unspecified arguments
           returning 
             pointer to pointer to signed int 
 
       function
+            accepting unspecified arguments
           returning 
             pointer to const pointer to signed int 
 
       function
+            accepting unspecified arguments
           returning 
             const pointer to const pointer to signed int 
 
       open array of signed int 
+      array of signed int with dimension of constant expression 10 signed int 
+      open array of pointer to signed int 
+      array of pointer to signed int with dimension of constant expression 10 signed int 
+      open array of pointer to pointer to signed int 
+      array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      open array of pointer to const pointer to signed int 
+      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      open array of const pointer to const pointer to signed int 
+      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
       open array of signed int 
+      array of signed int with dimension of constant expression 10 signed int 
       open array of pointer to signed int 
-      open array of pointer to signed int 
+      array of pointer to signed int with dimension of constant expression 10 signed int 
       open array of pointer to pointer to signed int 
-      open array of pointer to pointer to signed int 
+      array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
       open array of pointer to const pointer to signed int 
-      open array of pointer to const pointer to signed int 
+      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
       open array of const pointer to const pointer to signed int 
-      open array of const pointer to const pointer to signed int 
-    returning 
-      signed int 
-
-f: a function
-    with parameters
-      function
-          returning 
-            signed int 
-
-      function
-          returning 
-            pointer to signed int 
-
-      function
-          returning 
-            pointer to pointer to signed int 
-
-      function
-          returning 
-            pointer to const pointer to signed int 
-
-      function
-          returning 
-            const pointer to const pointer to signed int 
-
-      open array of signed int 
-      open array of signed int 
-      open array of pointer to signed int 
-      open array of pointer to signed int 
-      open array of pointer to pointer to signed int 
-      open array of pointer to pointer to signed int 
-      open array of pointer to const pointer to signed int 
-      open array of pointer to const pointer to signed int 
-      open array of const pointer to const pointer to signed int 
-      open array of const pointer to const pointer to signed int 
-    returning 
-      signed int 
-    with body 
-
-T: a typedef for signed int 
-f: a function
+      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+T: typedef for signed int 
+f: function
     with parameters
       function
           with parameters
-            instance of type T 
-          returning 
-            instance of type T 
-
-      T: a instance of type T 
-    returning 
-      signed int 
-    with body 
-
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      T: instance of type T (not function type) 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: T
+            ...to: 
+                Name: T
+
+
Index: src/Tests/SynTree/Expected/IdentFuncDeclarator.tst
===================================================================
--- src/Tests/SynTree/Expected/IdentFuncDeclarator.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/IdentFuncDeclarator.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,179 +1,184 @@
-main: a function
+main: C function
+      accepting unspecified arguments
     returning 
       signed int 
     with body 
-      Declaration of f1: a signed int 
-      Declaration of f2: a signed int 
-      Declaration of f3: a pointer to signed int 
-      Declaration of f4: a pointer to pointer to signed int 
-      Declaration of f5: a pointer to const pointer to signed int 
-      Declaration of f6: a const pointer to const pointer to signed int 
-      Declaration of f7: a pointer to signed int 
-      Declaration of f8: a pointer to pointer to signed int 
-      Declaration of f9: a pointer to const pointer to signed int 
-      Declaration of f10: a const pointer to const pointer to signed int 
-      Declaration of f11: a pointer to signed int 
-      Declaration of f12: a pointer to pointer to signed int 
-      Declaration of f13: a pointer to const pointer to signed int 
-      Declaration of f14: a const pointer to const pointer to signed int 
-      Declaration of f15: a open array of signed int 
-      Declaration of f16: a open array of signed int 
-      Declaration of f17: a open array of signed int 
-      Declaration of f18: a open array of signed int 
-      Declaration of f19: a open array of pointer to signed int 
-      Declaration of f20: a open array of pointer to signed int 
-      Declaration of f21: a open array of pointer to pointer to signed int 
-      Declaration of f22: a open array of pointer to pointer to signed int 
-      Declaration of f23: a open array of pointer to const pointer to signed int 
-      Declaration of f24: a open array of pointer to const pointer to signed int 
-      Declaration of f25: a open array of const pointer to const pointer to signed int 
-      Declaration of f26: a open array of const pointer to const pointer to signed int 
-      Declaration of f27: a open array of pointer to signed int 
-      Declaration of f28: a open array of pointer to signed int 
-      Declaration of f29: a open array of pointer to pointer to signed int 
-      Declaration of f30: a open array of pointer to pointer to signed int 
-      Declaration of f31: a open array of pointer to const pointer to signed int 
-      Declaration of f32: a open array of pointer to const pointer to signed int 
-      Declaration of f33: a open array of const pointer to const pointer to signed int 
-      Declaration of f34: a open array of const pointer to const pointer to signed int 
-      Declaration of f35: a open array of pointer to signed int 
-      Declaration of f36: a open array of pointer to signed int 
-      Declaration of f37: a open array of pointer to pointer to signed int 
-      Declaration of f38: a open array of pointer to pointer to signed int 
-      Declaration of f39: a open array of pointer to const pointer to signed int 
-      Declaration of f40: a open array of pointer to const pointer to signed int 
-      Declaration of f41: a open array of const pointer to const pointer to signed int 
-      Declaration of f42: a open array of const pointer to const pointer to signed int 
-      Declaration of f43: a open array of open array of signed int 
-      Declaration of f44: a open array of open array of signed int 
-      Declaration of f45: a open array of open array of signed int 
-      Declaration of f46: a open array of open array of signed int 
-      Declaration of f47: a open array of open array of signed int 
-      Declaration of f48: a open array of open array of signed int 
-      Declaration of f49: a open array of open array of pointer to signed int 
-      Declaration of f50: a open array of open array of pointer to signed int 
-      Declaration of f51: a open array of open array of pointer to pointer to signed int 
-      Declaration of f52: a open array of open array of pointer to pointer to signed int 
-      Declaration of f53: a open array of open array of pointer to const pointer to signed int 
-      Declaration of f54: a open array of open array of pointer to const pointer to signed int 
-      Declaration of f55: a open array of open array of const pointer to const pointer to signed int 
-      Declaration of f56: a open array of open array of const pointer to const pointer to signed int 
-      Declaration of f57: a open array of open array of pointer to signed int 
-      Declaration of f58: a open array of open array of pointer to signed int 
-      Declaration of f59: a open array of open array of pointer to pointer to signed int 
-      Declaration of f60: a open array of open array of pointer to pointer to signed int 
-      Declaration of f61: a open array of open array of pointer to const pointer to signed int 
-      Declaration of f62: a open array of open array of pointer to const pointer to signed int 
-      Declaration of f63: a open array of open array of const pointer to const pointer to signed int 
-      Declaration of f64: a open array of open array of const pointer to const pointer to signed int 
-      Declaration of f65: a function
-          with parameters
-            signed int 
-          returning 
-            signed int 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
 
-      Declaration of f66: a function
-          with parameters
-            signed int 
-          returning 
-            signed int 
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
 
-      Declaration of f67: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to signed int 
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
 
-      Declaration of f68: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to pointer to signed int 
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
 
-      Declaration of f69: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to const pointer to signed int 
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
 
-      Declaration of f70: a function
-          with parameters
-            signed int 
-          returning 
-            const pointer to const pointer to signed int 
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
 
-      Declaration of f71: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to signed int 
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
 
-      Declaration of f72: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to pointer to signed int 
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
 
-      Declaration of f73: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to const pointer to signed int 
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
 
-      Declaration of f74: a function
-          with parameters
-            signed int 
-          returning 
-            const pointer to const pointer to signed int 
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
 
-      Declaration of f75: a pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
 
-      Declaration of f76: a pointer to pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
 
-      Declaration of f77: a pointer to const pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
 
-      Declaration of f78: a const pointer to const pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
 
-      Declaration of f79: a pointer to function
-          with parameters
-            signed int 
-          returning 
-            pointer to function
-                returning 
-                  signed int 
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
 
 
-      Declaration of f80: a const pointer to function
-          with parameters
-            signed int 
-          returning 
-            pointer to function
-                returning 
-                  signed int 
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
 
 
-      Declaration of f81: a const pointer to function
-          with parameters
-            signed int 
-          returning 
-            const pointer to function
-                returning 
-                  signed int 
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
 
 
Index: src/Tests/SynTree/Expected/Initialization.tst
===================================================================
--- src/Tests/SynTree/Expected/Initialization.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/Initialization.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,33 +1,83 @@
-x21: a pointer to signed int 
-x22: a signed int 
-x21: a pointer to signed int 
-x22: a signed int 
-y1: a open array of signed int 
-y2: a open array of signed int 
+x21: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x22: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x21: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x22: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y1: array of signed int with dimension of constant expression 20 signed int 
+y2: array of signed int with dimension of constant expression 20 signed int 
 struct __anonymous0
     with members
-      w: a tuple of types
+      w: tuple of types
           signed int 
 
 
-a: a instance of struct __anonymous0 
+a: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer:       Tuple:
+        constant expression 2 signed int 
+
+      designated by:         Name: w
+
 struct __anonymous1
     with members
-      a: a open array of signed int 
-      b: a signed int 
+      a: array of signed int with dimension of constant expression 3 signed int 
+      b: signed int 
 
-w: a open array of instance of struct __anonymous1 
+w: open array of instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: 0
+        Name: a
+      ]
+      Simple Initializer:         Name: 1
+
+    Simple Initializer:       Name: 1
+
+      designated by:         Name: 0
+        Name: b
+
+    Simple Initializer: constant expression 2 signed int 
+      designated by:         Name: 1
+        Name: a
+        Name: 0
+
 struct __anonymous3
     with members
-      f1: a signed int 
-      f2: a signed int 
-      f3: a signed int 
+      f1: signed int 
+      f2: signed int 
+      f3: signed int 
       struct __anonymous2
           with members
-            g1: a signed int 
-            g2: a signed int 
-            g3: a signed int 
+            g1: signed int 
+            g2: signed int 
+            g3: signed int 
 
-      f4: a open array of instance of struct __anonymous2 
+      f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
 
-v7: a instance of struct __anonymous3 
+v7: instance of struct __anonymous3 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: f1
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: f2
+
+    Compound initializer:        designated by: [        Name: f4
+constant expression 2 signed int       ]
+      Simple Initializer: constant expression 3 signed int 
+        designated by:           Name: g1
+
+      Simple Initializer:         Name: 0
+
+        designated by:           Name: g3
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: f4
+constant expression 3 signed int         Name: g3
+
Index: src/Tests/SynTree/Expected/Scope.tst
===================================================================
--- src/Tests/SynTree/Expected/Scope.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/Scope.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,115 +1,157 @@
-in default case, (shouldn't be here)
-in default case, (shouldn't be here)
-in default case, (shouldn't be here)
-x: a signed int 
-y: a typedef for double 
-t: a typedef for float 
-z: a instance of type y 
+x: signed int 
+y: typedef for double 
+t: typedef for float 
+z: instance of type y (not function type) 
 struct __anonymous0
     with members
-      a: a signed int 
-      b: a double 
+      a: signed int 
+      b: double 
 
-u: a type for instance of struct __anonymous0 
-f: a function
+u: type for instance of struct __anonymous0 
+f: function
     with parameters
-      y: a signed int 
+      y: signed int 
     returning 
       signed int 
 
-q: a instance of type y 
-w: a function
+q: instance of type y (not function type) 
+w: function
     with parameters
-      y: a instance of type y 
-      v: a instance of type u 
+      y: instance of type y (not function type) 
+      v: instance of type u (not function type) 
     returning 
-      instance of type y 
+      instance of type y (not function type) 
     with body 
-      Declaration of x: a type
-        with assertions
-          t: a function
-              with parameters
-                instance of type u 
-              returning 
-                instance of type x 
+      CompoundStmt
+        Declaration of x: type
+          with assertions
+            t: function
+                with parameters
+                  instance of type u (not function type) 
+                returning 
+                  instance of type x (not function type) 
 
 
-      Declaration of u: a instance of type u 
-      Declaration of z: a instance of type x 
+        Declaration of u: instance of type u (not function type) with initializer 
+          Simple Initializer:             Name: y
 
-p: a instance of type y 
+        Declaration of z: instance of type x (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: t
+            ...to: 
+                Name: u
+
+
+p: instance of type y (not function type) 
 context has_u
     with parameters
-      z: a type
+      z: type
 
     with members
-      u: a function
+      u: function
           with parameters
-            instance of type z 
+            instance of type z (not function type) 
           returning 
-            instance of type z 
+            instance of type z (not function type) 
 
 
-q: a function
-    with parameters
-      the_t: a instance of type t 
-    with forall
-      t: a type
+q: forall
+      t: type
         with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
           instance of context has_u 
             with parameters
-              instance of type t 
+              instance of type t (not function type) 
 
 
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
     returning 
-      instance of type y 
+      instance of type y (not function type) 
     with body 
-      Declaration of y: a instance of type t 
+      CompoundStmt
+        Declaration of y: instance of type t (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: u
+            ...to: 
+                Name: the_t
 
-f: a function
+
+f: function
     with parameters
-      p: a instance of type y 
+      p: instance of type y (not function type) 
     returning 
-      instance of type t 
+      instance of type t (not function type) 
     with body 
-      Declaration of y: a signed int 
-      Declaration of x: a typedef for char 
-              Declaration of y: a instance of type x 
-        Declaration of z: a typedef for instance of type x 
-                  Declaration of x: a instance of type z 
-          Declaration of y: a typedef for instance of type z 
-          Declaration of z: a instance of type y 
+      CompoundStmt
+        Declaration of y: signed int 
+        Declaration of x: typedef for char 
+                  CompoundStmt
+            Declaration of y: instance of type x (not function type) 
+            Declaration of z: typedef for instance of type x (not function type) 
+                          CompoundStmt
+                Declaration of x: instance of type z (not function type) 
+                Declaration of y: typedef for instance of type z (not function type) 
+                Declaration of z: instance of type y (not function type) with initializer 
+                  Simple Initializer:                     Name: x
 
-        Declaration of x: a instance of type z 
 
-      Declaration of q: a instance of type x 
+            Declaration of x: instance of type z (not function type) with initializer 
+              Simple Initializer:                 Name: y
 
-g: a function
+
+        Declaration of q: instance of type x (not function type) with initializer 
+          Simple Initializer:             Name: y
+
+
+g: function
     with parameters
       void 
     returning 
-      instance of type t 
+      instance of type t (not function type) 
     with body 
-      Declaration of x: a typedef for char 
-      Declaration of z: a instance of type x 
+      CompoundStmt
+        Declaration of x: typedef for char 
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: some_func
+                    ...to: 
 
-q: a function
+            and handlers: 
+              Catch Statement
+              ... catching
+x: instance of type x (not function type) 
+
+        Declaration of z: instance of type x (not function type) 
+
+q: function
+      accepting unspecified arguments
     returning 
-      instance of type y 
+      instance of type y (not function type) 
     with parameter names
       i
     with parameter declarations
-      i: a signed int 
+      i: signed int 
     with body 
-      
-        Switch on condition: 
-            Name: i
+      CompoundStmt
+                  Switch on condition: Name: i
 
-            Case: 
-            .... and 1 conditions 
-                Name: 0
+              Case Name: 0
 
-            Case: 
-            .... and 0 conditions 
+                  Return Statement, returning: Name: q
+
+              Default 
+                  Return Statement, returning: Name: i
 
 
+
Index: src/Tests/SynTree/Expected/StructMember.tst
===================================================================
--- src/Tests/SynTree/Expected/StructMember.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/StructMember.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,22 +1,23 @@
-T: a typedef for signed int 
+T: typedef for signed int 
 struct S
     with members
-      m1: a signed int 
-      m2: a signed int 
-      signed int 
-      signed int 
-      signed int 
-      m3: a signed int 
-      m4: a signed int 
-      m5: a signed int 
-      m6: a signed int 
-      m7: a pointer to signed int 
-      m8: a pointer to signed int 
-      m9: a pointer to signed int 
-      m10: a pointer to function
+      m1: signed int with bitfield width constant expression 3 signed int 
+      m2: signed int with bitfield width constant expression 4 signed int 
+      signed int with bitfield width constant expression 2 signed int 
+      signed int with bitfield width constant expression 3 signed int 
+      signed int with bitfield width constant expression 4 signed int 
+      m3: signed int 
+      m4: signed int 
+      m5: signed int 
+      m6: signed int 
+      m7: pointer to signed int 
+      m8: pointer to signed int 
+      m9: pointer to signed int 
+      m10: pointer to function
+            accepting unspecified arguments
           returning 
             signed int 
 
-      m11: a pointer to function
+      m11: pointer to function
           with parameters
             signed int 
@@ -24,9 +25,9 @@
             pointer to signed int 
 
-      T: a instance of type T 
-      T: a instance of type T 
-      m12: a pointer to signed int 
-      m13: a pointer to signed int 
-      m14: a pointer to function
+      T: instance of type T (not function type) 
+      T: instance of type T (not function type) 
+      m12: pointer to signed int 
+      m13: pointer to signed int 
+      m14: pointer to function
           with parameters
             signed int 
@@ -48,4 +49,5 @@
       pointer to signed int 
       pointer to function
+            accepting unspecified arguments
           returning 
             signed int 
@@ -57,13 +59,13 @@
             signed int 
 
-      instance of type T 
+      instance of type T (not function type) 
 
-s: a instance of struct S 
+s: instance of struct S 
 union U
     with members
-      m1: a open array of signed int 
-      m2: a open array of signed int 
-      m3: a pointer to signed int 
-      m4: a pointer to signed int 
+      m1: array of signed int with dimension of constant expression 5 signed int 
+      m2: array of signed int with dimension of constant expression 5 signed int 
+      m3: pointer to signed int 
+      m4: pointer to signed int 
 
-u: a instance of union U 
+u: instance of union U 
Index: src/Tests/SynTree/Expected/Tuple.tst
===================================================================
--- src/Tests/SynTree/Expected/Tuple.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/Tuple.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,23 +1,23 @@
-f: a function
-    with parameters
-      signed int 
-      signed int 
-    returning 
-      signed int 
-
-g: a function
-    with parameters
-      signed int 
-      signed int 
-      signed int 
-    returning 
-      signed int 
-
-h: a static function
-    with parameters
-      a: a signed int 
-      b: a signed int 
-      c: a pointer to signed int 
-      d: a open array of char 
+f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: open array of char 
     returning 
       signed int 
@@ -28,52 +28,77 @@
 struct inner
     with members
-      f2: a signed int 
-      f3: a signed int 
+      f2: signed int 
+      f3: signed int 
 
 struct outer
     with members
-      f1: a signed int 
-      i: a instance of struct inner 
-      f4: a double 
-
-s: a instance of struct outer 
-sp: a pointer to instance of struct outer 
-t1: a const volatile tuple of types
+      f1: signed int 
+      i: instance of struct inner 
+      f4: double 
+
+s: instance of struct outer 
+sp: pointer to instance of struct outer 
+t1: const volatile tuple of types
     signed int 
     signed int 
 
-t2: a static const tuple of types
+t2: static const tuple of types
     signed int 
     const signed int 
 
-t3: a static const tuple of types
+t3: static const tuple of types
     signed int 
     const signed int 
 
-printf: a function
-    with parameters
-      fmt: a pointer to char 
+printf: function
+    with parameters
+      fmt: pointer to char 
       and a variable number of other arguments
     returning 
-      rc: a signed int 
-
-printf: a function
-    with parameters
-      fmt: a pointer to char 
+      rc: signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
       and a variable number of other arguments
     returning 
       signed int 
 
-f1: a function
-    with parameters
-      w: a signed int 
-    returning 
-      x: a short signed int 
-      y: a unsigned int 
+f1: function
+    with parameters
+      w: signed int 
+    returning 
+      x: short signed int 
+      y: unsigned int 
     with body 
-
-g1: a function
-    returning 
-      r: a tuple of types
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: y
+
+                                          Name: x
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: x
+
+                                                  Name: y
+
+                    Tuple:
+                                              Name: w
+
+                      constant expression 23 signed int 
+
+
+g1: function
+    returning 
+      r: tuple of types
           signed int 
           char 
@@ -82,23 +107,407 @@
 
     with body 
-      Declaration of x: a short signed int 
-      Declaration of p: a short signed int 
-      Declaration of y: a unsigned int 
-      Declaration of z: a tuple of types
-          signed int 
-          signed int 
-
-
-main: a function
-    with parameters
-      argc: a signed int 
-      argv: a pointer to pointer to char 
-    returning 
-      rc: a signed int 
+      CompoundStmt
+        Declaration of x: short signed int 
+        Declaration of p: short signed int 
+        Declaration of y: unsigned int 
+        Declaration of z: tuple of types
+            signed int 
+            signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Tuple:
+                                      Name: p
+
+                                      Applying untyped: 
+                        Name: f
+                    ...to: 
+constant expression 17 signed int 
+                  constant expression 3 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: r
+                Tuple:
+                                      Name: x
+
+                                      Name: y
+
+                                      Name: z
+
+
+
+main: C function
+    with parameters
+      argc: signed int 
+      argv: pointer to pointer to char 
+    returning 
+      rc: signed int 
     with body 
-      Declaration of a: a signed int 
-      Declaration of b: a signed int 
-      Declaration of c: a signed int 
-      Declaration of d: a signed int 
-      Declaration of t: a instance of struct outer 
-
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of b: signed int 
+        Declaration of c: signed int 
+        Declaration of d: signed int 
+        Declaration of t: instance of struct outer with initializer 
+          Compound initializer:  
+            Simple Initializer:               Tuple:
+                                  Name: 1
+
+                constant expression 7.0 double 
+
+              designated by:                 Name: f1
+                Name: f4
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: t1
+constant expression 3 signed int 
+                  Expression Statement:
+            Tuple:
+              constant expression 3 signed int 
+              constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Tuple:
+                  constant expression 4.6 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Tuple:
+                      constant expression 3 signed int 
+                      constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                                          Tuple:
+                                                  Name: c
+
+
+                Tuple:
+                  constant expression 2 signed int 
+                                      Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?>?
+                        ...to: 
+constant expression 3 signed int constant expression 4 signed int                         Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Tuple:
+                                          Name: b
+
+                    constant expression 6 signed int 
+                Second alternative:
+                  Tuple:
+                    constant expression 7 signed int 
+                    constant expression 8 signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Tuple:
+                                      Name: a
+
+                                      Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t2
+                    Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: d
+                        Applying untyped: 
+                            Name: ?+=?
+                        ...to: 
+                            Address of:
+                              Name: c
+                            Name: 1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Tuple:
+                                              Name: c
+
+                                              Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: t2
+                        Tuple:
+                                                      Name: c
+
+                                                      Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                        constant expression 3 signed int 
+                        constant expression 4 signed int 
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Tuple:
+                            constant expression 3 signed int 
+                            constant expression 4 signed int 
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: t1
+                            Tuple:
+                              constant expression 3 signed int 
+                              constant expression 4 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Tuple:
+                  constant expression 11 signed int 
+                  constant expression 12 signed int 
+                  constant expression 13 signed int 
+                  constant expression 3.14159 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: sp
+                Name: sp
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: printf
+            ...to: 
+constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int                 Name: s
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: rc
+                Name: 0
+
+
Index: src/Tests/SynTree/Expected/TypeGenerator.tst
===================================================================
--- src/Tests/SynTree/Expected/TypeGenerator.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/TypeGenerator.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,30 +1,30 @@
 context addable
     with parameters
-      T: a type
+      T: type
 
     with members
-      ?+?: a function
+      ?+?: function
           with parameters
-            instance of type T 
-            instance of type T 
+            instance of type T (not function type) 
+            instance of type T (not function type) 
           returning 
-            instance of type T 
+            instance of type T (not function type) 
 
 
 struct __anonymous0
     with members
-      data: a instance of type T 
-      next: a pointer to instance of type List 
+      data: instance of type T (not function type) 
+      next: pointer to instance of type List (not function type) 
         with parameters
-          instance of type T 
+          instance of type T (not function type) 
 
 
-List: a type for pointer to instance of struct __anonymous0 
+List: type for pointer to instance of struct __anonymous0 
   with parameters
-    T: a type
+    T: type
       with assertions
         instance of context addable 
           with parameters
-            instance of type T 
+            instance of type T (not function type) 
 
 
@@ -33,19 +33,19 @@
     instance of context addable 
       with parameters
-        instance of type T 
+        instance of type T (not function type) 
 
 
-ListOfIntegers: a typedef for instance of type List 
+ListOfIntegers: typedef for instance of type List (not function type) 
   with parameters
     signed int 
 
-li: a instance of type ListOfIntegers 
-f: a function
+li: instance of type ListOfIntegers (not function type) 
+f: function
     with parameters
-      g: a pointer to function
+      g: pointer to function
           with parameters
             signed int 
           returning 
-            instance of type List 
+            instance of type List (not function type) 
               with parameters
                 signed int 
@@ -55,7 +55,7 @@
       signed int 
 
-h: a function
+h: function
     with parameters
-      p: a pointer to instance of type List 
+      p: pointer to instance of type List (not function type) 
         with parameters
           signed int 
@@ -66,50 +66,51 @@
 struct node
     with parameters
-      T: a type
+      T: type
         with assertions
           instance of context addable 
             with parameters
-              instance of type T 
+              instance of type T (not function type) 
 
 
 
     with members
-      data: a instance of type T 
-      next: a pointer to instance of struct node 
+      data: instance of type T (not function type) 
+      next: pointer to instance of struct node 
         with parameters
-          instance of type T 
+          instance of type T (not function type) 
 
 
-List: a type for pointer to instance of struct node 
+List: type for pointer to instance of struct node 
   with parameters
-    instance of type T 
+    instance of type T (not function type) 
 
   with parameters
-    T: a type
+    T: type
 
-my_list: a instance of type List 
+my_list: instance of type List (not function type) 
   with parameters
     signed int 
 
-Complex: a type
+Complex: type
   with assertions
     instance of context addable 
       with parameters
-        instance of type Complex 
+        instance of type Complex (not function type) 
 
 
-main: a function
+main: C function
+      accepting unspecified arguments
     returning 
       signed int 
     with body 
-      
-        Expression Statement:
-          Cast of:
-            Name: my_list
+      CompoundStmt
+                  Expression Statement:
+            Cast of:
+              Name: my_list
 
-          to:
-            instance of struct node 
-              with parameters
-                signed int 
+            to:
+              instance of struct node 
+                with parameters
+                  signed int 
 
 
Index: src/Tests/SynTree/Expected/Typedef.tst
===================================================================
--- src/Tests/SynTree/Expected/Typedef.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/Typedef.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,4 +1,4 @@
-T: a typedef for signed int 
-f: a function
+T: typedef for signed int 
+f: function
     with parameters
       void 
@@ -6,17 +6,25 @@
       void 
     with body 
-      Declaration of T: a function
-          with parameters
-            instance of type T 
-          returning 
-            signed int 
+      CompoundStmt
+        Declaration of T: function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              signed int 
 
+                  Expression Statement:
+            Applying untyped: 
+                Name: T
+            ...to: 
+constant expression 3 signed int 
 
 struct __anonymous0
     with members
-      T: a instance of type T 
+      T: instance of type T (not function type) 
 
-fred: a instance of struct __anonymous0 
-a: a typedef for pointer to function
+fred: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+a: typedef for pointer to function
     with parameters
       signed int 
@@ -25,6 +33,6 @@
       signed int 
 
-b: a instance of type a 
-g: a function
+b: instance of type a (not function type) 
+g: function
     with parameters
       void 
@@ -32,16 +40,19 @@
       signed int 
     with body 
-      Declaration of a: a double 
+      CompoundStmt
+        Declaration of a: double 
 
-c: a instance of type a 
-main: a function
+c: instance of type a (not function type) 
+main: C function
+      accepting unspecified arguments
     returning 
       signed int 
     with body 
+      CompoundStmt
 
-arrayOf10Pointers: a typedef for open array of pointer to signed int 
-x: a instance of type arrayOf10Pointers 
-constantPointer: a typedef for const pointer to signed int 
-funcPtr: a typedef for pointer to function
+arrayOf10Pointers: typedef for array of pointer to signed int with dimension of constant expression 10 signed int 
+x: instance of type arrayOf10Pointers (not function type) 
+constantPointer: typedef for const pointer to signed int 
+funcPtr: typedef for pointer to function
     with parameters
       open array of signed int 
@@ -49,5 +60,5 @@
       signed int 
 
-funcProto: a typedef for function
+funcProto: typedef for function
     with parameters
       open array of signed int 
@@ -55,15 +66,15 @@
       signed int 
 
-tupleType: a typedef for tuple of types
+tupleType: typedef for tuple of types
     signed int 
     signed int 
 
-tupleTypePtr: a typedef for pointer to tuple of types
+tupleTypePtr: typedef for pointer to tuple of types
     signed int 
     signed int 
 
-a: a typedef for pointer to signed int 
-b: a typedef for pointer to signed int 
-f: a typedef for function
+a: typedef for pointer to signed int 
+b: typedef for pointer to signed int 
+f: typedef for function
     with parameters
       pointer to signed int 
@@ -71,5 +82,5 @@
       signed int 
 
-g: a typedef for function
+g: typedef for function
     with parameters
       pointer to signed int 
@@ -77,9 +88,9 @@
       signed int 
 
-t: a typedef for tuple of types
-    pointer to static open array of signed int 
+t: typedef for tuple of types
+    pointer to static array of signed int with dimension of constant expression 10 signed int 
 
-f: a typedef for function
+f: typedef for function
     returning 
-      x: a pointer to static open array of signed int 
+      x: pointer to static array of signed int with dimension of constant expression 10 signed int 
 
Index: src/Tests/SynTree/Expected/TypedefDeclarator.tst
===================================================================
--- src/Tests/SynTree/Expected/TypedefDeclarator.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/TypedefDeclarator.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,270 +1,275 @@
-f0: a typedef for signed int 
-f1: a typedef for signed int 
-f2: a typedef for signed int 
-f3: a typedef for signed int 
-f4: a typedef for signed int 
-f5: a typedef for signed int 
-f6: a typedef for signed int 
-f7: a typedef for signed int 
-f8: a typedef for signed int 
-f9: a typedef for signed int 
-f10: a typedef for signed int 
-f11: a typedef for signed int 
-f12: a typedef for signed int 
-f13: a typedef for signed int 
-f14: a typedef for signed int 
-f15: a typedef for signed int 
-f16: a typedef for signed int 
-f17: a typedef for signed int 
-f18: a typedef for signed int 
-f19: a typedef for signed int 
-f20: a typedef for signed int 
-f21: a typedef for signed int 
-f22: a typedef for signed int 
-f23: a typedef for signed int 
-f24: a typedef for signed int 
-f25: a typedef for signed int 
-f26: a typedef for signed int 
-f27: a typedef for signed int 
-f28: a typedef for signed int 
-f29: a typedef for signed int 
-f30: a typedef for signed int 
-f31: a typedef for signed int 
-f32: a typedef for signed int 
-f33: a typedef for signed int 
-f34: a typedef for signed int 
-f35: a typedef for signed int 
-f36: a typedef for signed int 
-f37: a typedef for signed int 
-f38: a typedef for signed int 
-f39: a typedef for signed int 
-f40: a typedef for signed int 
-f41: a typedef for signed int 
-f42: a typedef for signed int 
-f43: a typedef for signed int 
-f44: a typedef for signed int 
-f45: a typedef for signed int 
-f46: a typedef for signed int 
-f47: a typedef for signed int 
-f48: a typedef for signed int 
-f49: a typedef for signed int 
-f50: a typedef for signed int 
-f51: a typedef for signed int 
-f52: a typedef for signed int 
-f53: a typedef for signed int 
-f54: a typedef for signed int 
-f55: a typedef for signed int 
-f56: a typedef for signed int 
-f57: a typedef for signed int 
-f58: a typedef for signed int 
-f59: a typedef for signed int 
-f60: a typedef for signed int 
-f61: a typedef for signed int 
-f62: a typedef for signed int 
-f63: a typedef for signed int 
-f64: a typedef for signed int 
-f65: a typedef for signed int 
-f66: a typedef for signed int 
-f67: a typedef for signed int 
-f68: a typedef for signed int 
-f69: a typedef for signed int 
-f70: a typedef for signed int 
-f71: a typedef for signed int 
-f72: a typedef for signed int 
-f73: a typedef for signed int 
-f74: a typedef for signed int 
-f75: a typedef for signed int 
-f76: a typedef for signed int 
-f77: a typedef for signed int 
-f78: a typedef for signed int 
-f79: a typedef for signed int 
-f80: a typedef for signed int 
-f81: a typedef for signed int 
-f82: a typedef for signed int 
-f83: a typedef for signed int 
-f84: a typedef for signed int 
-f85: a typedef for signed int 
-f86: a typedef for signed int 
-f87: a typedef for signed int 
-f88: a typedef for signed int 
-f89: a typedef for signed int 
-main: a function
+f0: typedef for signed int 
+f1: typedef for signed int 
+f2: typedef for signed int 
+f3: typedef for signed int 
+f4: typedef for signed int 
+f5: typedef for signed int 
+f6: typedef for signed int 
+f7: typedef for signed int 
+f8: typedef for signed int 
+f9: typedef for signed int 
+f10: typedef for signed int 
+f11: typedef for signed int 
+f12: typedef for signed int 
+f13: typedef for signed int 
+f14: typedef for signed int 
+f15: typedef for signed int 
+f16: typedef for signed int 
+f17: typedef for signed int 
+f18: typedef for signed int 
+f19: typedef for signed int 
+f20: typedef for signed int 
+f21: typedef for signed int 
+f22: typedef for signed int 
+f23: typedef for signed int 
+f24: typedef for signed int 
+f25: typedef for signed int 
+f26: typedef for signed int 
+f27: typedef for signed int 
+f28: typedef for signed int 
+f29: typedef for signed int 
+f30: typedef for signed int 
+f31: typedef for signed int 
+f32: typedef for signed int 
+f33: typedef for signed int 
+f34: typedef for signed int 
+f35: typedef for signed int 
+f36: typedef for signed int 
+f37: typedef for signed int 
+f38: typedef for signed int 
+f39: typedef for signed int 
+f40: typedef for signed int 
+f41: typedef for signed int 
+f42: typedef for signed int 
+f43: typedef for signed int 
+f44: typedef for signed int 
+f45: typedef for signed int 
+f46: typedef for signed int 
+f47: typedef for signed int 
+f48: typedef for signed int 
+f49: typedef for signed int 
+f50: typedef for signed int 
+f51: typedef for signed int 
+f52: typedef for signed int 
+f53: typedef for signed int 
+f54: typedef for signed int 
+f55: typedef for signed int 
+f56: typedef for signed int 
+f57: typedef for signed int 
+f58: typedef for signed int 
+f59: typedef for signed int 
+f60: typedef for signed int 
+f61: typedef for signed int 
+f62: typedef for signed int 
+f63: typedef for signed int 
+f64: typedef for signed int 
+f65: typedef for signed int 
+f66: typedef for signed int 
+f67: typedef for signed int 
+f68: typedef for signed int 
+f69: typedef for signed int 
+f70: typedef for signed int 
+f71: typedef for signed int 
+f72: typedef for signed int 
+f73: typedef for signed int 
+f74: typedef for signed int 
+f75: typedef for signed int 
+f76: typedef for signed int 
+f77: typedef for signed int 
+f78: typedef for signed int 
+f79: typedef for signed int 
+f80: typedef for signed int 
+f81: typedef for signed int 
+f82: typedef for signed int 
+f83: typedef for signed int 
+f84: typedef for signed int 
+f85: typedef for signed int 
+f86: typedef for signed int 
+f87: typedef for signed int 
+f88: typedef for signed int 
+f89: typedef for signed int 
+main: C function
+      accepting unspecified arguments
     returning 
       signed int 
     with body 
-      Declaration of f1: a signed int 
-      Declaration of f2: a signed int 
-      Declaration of f3: a pointer to signed int 
-      Declaration of f4: a pointer to pointer to signed int 
-      Declaration of f5: a pointer to const pointer to signed int 
-      Declaration of f6: a const pointer to const pointer to signed int 
-      Declaration of f7: a pointer to signed int 
-      Declaration of f8: a pointer to pointer to signed int 
-      Declaration of f9: a pointer to const pointer to signed int 
-      Declaration of f10: a const pointer to const pointer to signed int 
-      Declaration of f11: a pointer to signed int 
-      Declaration of f12: a pointer to pointer to signed int 
-      Declaration of f13: a pointer to const pointer to signed int 
-      Declaration of f14: a const pointer to const pointer to signed int 
-      Declaration of f15: a open array of signed int 
-      Declaration of f16: a open array of signed int 
-      Declaration of f17: a open array of signed int 
-      Declaration of f18: a open array of signed int 
-      Declaration of f19: a open array of pointer to signed int 
-      Declaration of f20: a open array of pointer to signed int 
-      Declaration of f21: a open array of pointer to pointer to signed int 
-      Declaration of f22: a open array of pointer to pointer to signed int 
-      Declaration of f23: a open array of pointer to const pointer to signed int 
-      Declaration of f24: a open array of pointer to const pointer to signed int 
-      Declaration of f25: a open array of const pointer to const pointer to signed int 
-      Declaration of f26: a open array of const pointer to const pointer to signed int 
-      Declaration of f27: a open array of pointer to signed int 
-      Declaration of f28: a open array of pointer to signed int 
-      Declaration of f29: a open array of pointer to pointer to signed int 
-      Declaration of f30: a open array of pointer to pointer to signed int 
-      Declaration of f31: a open array of pointer to const pointer to signed int 
-      Declaration of f32: a open array of pointer to const pointer to signed int 
-      Declaration of f33: a open array of const pointer to const pointer to signed int 
-      Declaration of f34: a open array of const pointer to const pointer to signed int 
-      Declaration of f35: a open array of pointer to signed int 
-      Declaration of f36: a open array of pointer to signed int 
-      Declaration of f37: a open array of pointer to pointer to signed int 
-      Declaration of f38: a open array of pointer to pointer to signed int 
-      Declaration of f39: a open array of pointer to const pointer to signed int 
-      Declaration of f40: a open array of pointer to const pointer to signed int 
-      Declaration of f41: a open array of const pointer to const pointer to signed int 
-      Declaration of f42: a open array of const pointer to const pointer to signed int 
-      Declaration of f43: a open array of open array of signed int 
-      Declaration of f44: a open array of open array of signed int 
-      Declaration of f45: a open array of open array of signed int 
-      Declaration of f46: a open array of open array of signed int 
-      Declaration of f47: a open array of open array of signed int 
-      Declaration of f48: a open array of open array of signed int 
-      Declaration of f49: a open array of open array of pointer to signed int 
-      Declaration of f50: a open array of open array of pointer to signed int 
-      Declaration of f51: a open array of open array of pointer to pointer to signed int 
-      Declaration of f52: a open array of open array of pointer to pointer to signed int 
-      Declaration of f53: a open array of open array of pointer to const pointer to signed int 
-      Declaration of f54: a open array of open array of pointer to const pointer to signed int 
-      Declaration of f55: a open array of open array of const pointer to const pointer to signed int 
-      Declaration of f56: a open array of open array of const pointer to const pointer to signed int 
-      Declaration of f57: a open array of open array of pointer to signed int 
-      Declaration of f58: a open array of open array of pointer to signed int 
-      Declaration of f59: a open array of open array of pointer to pointer to signed int 
-      Declaration of f60: a open array of open array of pointer to pointer to signed int 
-      Declaration of f61: a open array of open array of pointer to const pointer to signed int 
-      Declaration of f62: a open array of open array of pointer to const pointer to signed int 
-      Declaration of f63: a open array of open array of const pointer to const pointer to signed int 
-      Declaration of f64: a open array of open array of const pointer to const pointer to signed int 
-      Declaration of f65: a function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      Declaration of f66: a function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      Declaration of f67: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to signed int 
-
-      Declaration of f68: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to pointer to signed int 
-
-      Declaration of f69: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to const pointer to signed int 
-
-      Declaration of f70: a function
-          with parameters
-            signed int 
-          returning 
-            const pointer to const pointer to signed int 
-
-      Declaration of f71: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to signed int 
-
-      Declaration of f72: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to pointer to signed int 
-
-      Declaration of f73: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to const pointer to signed int 
-
-      Declaration of f74: a function
-          with parameters
-            signed int 
-          returning 
-            const pointer to const pointer to signed int 
-
-      Declaration of f75: a pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      Declaration of f76: a pointer to pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      Declaration of f77: a pointer to const pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      Declaration of f78: a const pointer to const pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      Declaration of f79: a pointer to function
-          with parameters
-            signed int 
-          returning 
-            pointer to function
-                returning 
-                  signed int 
-
-
-      Declaration of f80: a const pointer to function
-          with parameters
-            signed int 
-          returning 
-            pointer to function
-                returning 
-                  signed int 
-
-
-      Declaration of f81: a const pointer to function
-          with parameters
-            signed int 
-          returning 
-            const pointer to function
-                returning 
-                  signed int 
-
-
-
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/SynTree/Expected/TypedefParamDeclarator.tst
===================================================================
--- src/Tests/SynTree/Expected/TypedefParamDeclarator.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/TypedefParamDeclarator.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,182 +1,182 @@
-f0: a typedef for signed int 
-f1: a typedef for signed int 
-f2: a typedef for signed int 
-f3: a typedef for signed int 
-f4: a typedef for signed int 
-f5: a typedef for signed int 
-f6: a typedef for signed int 
-f7: a typedef for signed int 
-f8: a typedef for signed int 
-f9: a typedef for signed int 
-f10: a typedef for signed int 
-f11: a typedef for signed int 
-f12: a typedef for signed int 
-f13: a typedef for signed int 
-f14: a typedef for signed int 
-f15: a typedef for signed int 
-f16: a typedef for signed int 
-f17: a typedef for signed int 
-f18: a typedef for signed int 
-f19: a typedef for signed int 
-f20: a typedef for signed int 
-f21: a typedef for signed int 
-f22: a typedef for signed int 
-f23: a typedef for signed int 
-f24: a typedef for signed int 
-f25: a typedef for signed int 
-f26: a typedef for signed int 
-f27: a typedef for signed int 
-f28: a typedef for signed int 
-f29: a typedef for signed int 
-f30: a typedef for signed int 
-f31: a typedef for signed int 
-f32: a typedef for signed int 
-f33: a typedef for signed int 
-f34: a typedef for signed int 
-f35: a typedef for signed int 
-f36: a typedef for signed int 
-f37: a typedef for signed int 
-f38: a typedef for signed int 
-f39: a typedef for signed int 
-f40: a typedef for signed int 
-f41: a typedef for signed int 
-f42: a typedef for signed int 
-f43: a typedef for signed int 
-f44: a typedef for signed int 
-f45: a typedef for signed int 
-f46: a typedef for signed int 
-f47: a typedef for signed int 
-f48: a typedef for signed int 
-f49: a typedef for signed int 
-f50: a typedef for signed int 
-f51: a typedef for signed int 
-f52: a typedef for signed int 
-f53: a typedef for signed int 
-f54: a typedef for signed int 
-f55: a typedef for signed int 
-f56: a typedef for signed int 
-f57: a typedef for signed int 
-f58: a typedef for signed int 
-f59: a typedef for signed int 
-f60: a typedef for signed int 
-f61: a typedef for signed int 
-f62: a typedef for signed int 
-f63: a typedef for signed int 
-f64: a typedef for signed int 
-f65: a typedef for signed int 
-f66: a typedef for signed int 
-f67: a typedef for signed int 
-f68: a typedef for signed int 
-f69: a typedef for signed int 
-f70: a typedef for signed int 
-f71: a typedef for signed int 
-f72: a typedef for signed int 
-f73: a typedef for signed int 
-f74: a typedef for signed int 
-f75: a typedef for signed int 
-f76: a typedef for signed int 
-f77: a typedef for signed int 
-f78: a typedef for signed int 
-f79: a typedef for signed int 
-f80: a typedef for signed int 
-f81: a typedef for signed int 
-f82: a typedef for signed int 
-f83: a typedef for signed int 
-f84: a typedef for signed int 
-f85: a typedef for signed int 
-f86: a typedef for signed int 
-f87: a typedef for signed int 
-f88: a typedef for signed int 
-f89: a typedef for signed int 
-f90: a typedef for signed int 
-f91: a typedef for signed int 
-f92: a typedef for signed int 
-f93: a typedef for signed int 
-f94: a typedef for signed int 
-f95: a typedef for signed int 
-f96: a typedef for signed int 
-f97: a typedef for signed int 
-f98: a typedef for signed int 
-f99: a typedef for signed int 
-f100: a typedef for signed int 
-f101: a typedef for signed int 
-f102: a typedef for signed int 
-f103: a typedef for signed int 
-f104: a typedef for signed int 
-f105: a typedef for signed int 
-f106: a typedef for signed int 
-f107: a typedef for signed int 
-f108: a typedef for signed int 
-f109: a typedef for signed int 
-f110: a typedef for signed int 
-f111: a typedef for signed int 
-f112: a typedef for signed int 
-f113: a typedef for signed int 
-f114: a typedef for signed int 
-f115: a typedef for signed int 
-f116: a typedef for signed int 
-f117: a typedef for signed int 
-f118: a typedef for signed int 
-f119: a typedef for signed int 
-fred: a function
+f0: typedef for signed int 
+f1: typedef for signed int 
+f2: typedef for signed int 
+f3: typedef for signed int 
+f4: typedef for signed int 
+f5: typedef for signed int 
+f6: typedef for signed int 
+f7: typedef for signed int 
+f8: typedef for signed int 
+f9: typedef for signed int 
+f10: typedef for signed int 
+f11: typedef for signed int 
+f12: typedef for signed int 
+f13: typedef for signed int 
+f14: typedef for signed int 
+f15: typedef for signed int 
+f16: typedef for signed int 
+f17: typedef for signed int 
+f18: typedef for signed int 
+f19: typedef for signed int 
+f20: typedef for signed int 
+f21: typedef for signed int 
+f22: typedef for signed int 
+f23: typedef for signed int 
+f24: typedef for signed int 
+f25: typedef for signed int 
+f26: typedef for signed int 
+f27: typedef for signed int 
+f28: typedef for signed int 
+f29: typedef for signed int 
+f30: typedef for signed int 
+f31: typedef for signed int 
+f32: typedef for signed int 
+f33: typedef for signed int 
+f34: typedef for signed int 
+f35: typedef for signed int 
+f36: typedef for signed int 
+f37: typedef for signed int 
+f38: typedef for signed int 
+f39: typedef for signed int 
+f40: typedef for signed int 
+f41: typedef for signed int 
+f42: typedef for signed int 
+f43: typedef for signed int 
+f44: typedef for signed int 
+f45: typedef for signed int 
+f46: typedef for signed int 
+f47: typedef for signed int 
+f48: typedef for signed int 
+f49: typedef for signed int 
+f50: typedef for signed int 
+f51: typedef for signed int 
+f52: typedef for signed int 
+f53: typedef for signed int 
+f54: typedef for signed int 
+f55: typedef for signed int 
+f56: typedef for signed int 
+f57: typedef for signed int 
+f58: typedef for signed int 
+f59: typedef for signed int 
+f60: typedef for signed int 
+f61: typedef for signed int 
+f62: typedef for signed int 
+f63: typedef for signed int 
+f64: typedef for signed int 
+f65: typedef for signed int 
+f66: typedef for signed int 
+f67: typedef for signed int 
+f68: typedef for signed int 
+f69: typedef for signed int 
+f70: typedef for signed int 
+f71: typedef for signed int 
+f72: typedef for signed int 
+f73: typedef for signed int 
+f74: typedef for signed int 
+f75: typedef for signed int 
+f76: typedef for signed int 
+f77: typedef for signed int 
+f78: typedef for signed int 
+f79: typedef for signed int 
+f80: typedef for signed int 
+f81: typedef for signed int 
+f82: typedef for signed int 
+f83: typedef for signed int 
+f84: typedef for signed int 
+f85: typedef for signed int 
+f86: typedef for signed int 
+f87: typedef for signed int 
+f88: typedef for signed int 
+f89: typedef for signed int 
+f90: typedef for signed int 
+f91: typedef for signed int 
+f92: typedef for signed int 
+f93: typedef for signed int 
+f94: typedef for signed int 
+f95: typedef for signed int 
+f96: typedef for signed int 
+f97: typedef for signed int 
+f98: typedef for signed int 
+f99: typedef for signed int 
+f100: typedef for signed int 
+f101: typedef for signed int 
+f102: typedef for signed int 
+f103: typedef for signed int 
+f104: typedef for signed int 
+f105: typedef for signed int 
+f106: typedef for signed int 
+f107: typedef for signed int 
+f108: typedef for signed int 
+f109: typedef for signed int 
+f110: typedef for signed int 
+f111: typedef for signed int 
+f112: typedef for signed int 
+f113: typedef for signed int 
+f114: typedef for signed int 
+f115: typedef for signed int 
+f116: typedef for signed int 
+f117: typedef for signed int 
+f118: typedef for signed int 
+f119: typedef for signed int 
+fred: function
     with parameters
-      f1: a signed int 
-      f3: a pointer to signed int 
-      f4: a pointer to pointer to signed int 
-      f5: a pointer to const pointer to signed int 
-      f6: a const pointer to const pointer to signed int 
-      f11: a pointer to signed int 
-      f12: a pointer to pointer to signed int 
-      f13: a pointer to const pointer to signed int 
-      f14: a const pointer to const pointer to signed int 
-      f15: a open array of signed int 
-      f16: a open array of signed int 
-      f19: a open array of pointer to signed int 
-      f20: a open array of pointer to signed int 
-      f21: a open array of pointer to pointer to signed int 
-      f22: a open array of pointer to pointer to signed int 
-      f23: a open array of pointer to const pointer to signed int 
-      f24: a open array of pointer to const pointer to signed int 
-      f25: a open array of const pointer to const pointer to signed int 
-      f26: a open array of const pointer to const pointer to signed int 
-      f35: a open array of pointer to signed int 
-      f36: a open array of pointer to signed int 
-      f37: a open array of pointer to pointer to signed int 
-      f38: a open array of pointer to pointer to signed int 
-      f39: a open array of pointer to const pointer to signed int 
-      f40: a open array of pointer to const pointer to signed int 
-      f41: a open array of const pointer to const pointer to signed int 
-      f42: a open array of const pointer to const pointer to signed int 
-      f43: a open array of open array of signed int 
-      f44: a open array of open array of signed int 
-      f49: a open array of open array of pointer to signed int 
-      f50: a open array of open array of pointer to signed int 
-      f51: a open array of open array of pointer to pointer to signed int 
-      f52: a open array of open array of pointer to pointer to signed int 
-      f53: a open array of open array of pointer to const pointer to signed int 
-      f54: a open array of open array of pointer to const pointer to signed int 
-      f55: a open array of open array of const pointer to const pointer to signed int 
-      f56: a open array of open array of const pointer to const pointer to signed int 
-      f57: a open array of open array of pointer to signed int 
-      f58: a open array of open array of pointer to signed int 
-      f59: a open array of open array of pointer to pointer to signed int 
-      f60: a open array of open array of pointer to pointer to signed int 
-      f61: a open array of open array of pointer to const pointer to signed int 
-      f62: a open array of open array of pointer to const pointer to signed int 
-      f63: a open array of open array of const pointer to const pointer to signed int 
-      f64: a open array of open array of const pointer to const pointer to signed int 
-      f65: a function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      f67: a function
-          with parameters
-            signed int 
-          returning 
-            pointer to signed int 
-
-      f68: a function
+      f1: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: open array of signed int 
+      f16: array of signed int with dimension of constant expression 10 signed int 
+      f19: open array of pointer to signed int 
+      f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f21: open array of pointer to pointer to signed int 
+      f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f23: open array of pointer to const pointer to signed int 
+      f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f25: open array of const pointer to const pointer to signed int 
+      f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f35: open array of pointer to signed int 
+      f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f37: open array of pointer to pointer to signed int 
+      f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f39: open array of pointer to const pointer to signed int 
+      f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f41: open array of const pointer to const pointer to signed int 
+      f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f43: open array of array of signed int with dimension of constant expression 3 signed int 
+      f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f65: function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: function
           with parameters
             signed int 
@@ -184,5 +184,5 @@
             pointer to pointer to signed int 
 
-      f69: a function
+      f69: function
           with parameters
             signed int 
@@ -190,5 +190,5 @@
             pointer to const pointer to signed int 
 
-      f70: a function
+      f70: function
           with parameters
             signed int 
@@ -196,103 +196,106 @@
             const pointer to const pointer to signed int 
 
-      f75: a pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      f76: a pointer to pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      f77: a pointer to const pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      f78: a const pointer to const pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      f79: a pointer to function
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
           with parameters
             signed int 
           returning 
             pointer to function
+                  accepting unspecified arguments
                 returning 
                   signed int 
 
 
-      f80: a const pointer to function
+      f80: const pointer to function
           with parameters
             signed int 
           returning 
             pointer to function
+                  accepting unspecified arguments
                 returning 
                   signed int 
 
 
-      f81: a const pointer to function
+      f81: const pointer to function
           with parameters
             signed int 
           returning 
             const pointer to function
+                  accepting unspecified arguments
                 returning 
                   signed int 
 
 
-      f82: a const variable length array of signed int 
-      f83: a const open array of signed int 
-      f84: a static open array of signed int 
-      f85: a const static open array of signed int 
-      function
-          with parameters
-            const variable length array of instance of type f86 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            const open array of instance of type f87 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            static open array of instance of type f88 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            const static open array of instance of type f89 
-          returning 
-            signed int 
-
-      f90: a const variable length array of pointer to signed int 
-      f91: a const open array of pointer to signed int 
-      f92: a static open array of pointer to pointer to signed int 
-      f93: a const static open array of pointer to const pointer to signed int 
-      f94: a const static open array of const pointer to const pointer to signed int 
-      function
-          with parameters
-            const variable length array of instance of type f95 
-          returning 
-            pointer to signed int 
-
-      function
-          with parameters
-            const open array of instance of type f96 
-          returning 
-            pointer to signed int 
-
-      function
-          with parameters
-            static open array of instance of type f97 
+      f82: const variable length array of signed int 
+      f83: const array of signed int with dimension of constant expression 3 signed int 
+      f84: static array of signed int with dimension of constant expression 3 signed int 
+      f85: const static array of signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of instance of type f86 (not function type) 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const array of instance of type f87 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            static array of instance of type f88 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const static array of instance of type f89 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f90: const variable length array of pointer to signed int 
+      f91: const array of pointer to signed int with dimension of constant expression 3 signed int 
+      f92: static array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f93: const static array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f94: const static array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of instance of type f95 (not function type) 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            const array of instance of type f96 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            static array of instance of type f97 (not function type) with dimension of constant expression 3 signed int 
           returning 
             pointer to pointer to signed int 
@@ -300,5 +303,5 @@
       function
           with parameters
-            const static open array of instance of type f98 
+            const static array of instance of type f98 (not function type) with dimension of constant expression 3 signed int 
           returning 
             pointer to const pointer to signed int 
@@ -306,56 +309,56 @@
       function
           with parameters
-            const static open array of instance of type f99 
+            const static array of instance of type f99 (not function type) with dimension of constant expression 3 signed int 
           returning 
             const pointer to const pointer to signed int 
 
-      f100: a const variable length array of open array of signed int 
-      f101: a const open array of open array of signed int 
-      f102: a static open array of open array of signed int 
-      f103: a const static open array of open array of signed int 
-      function
-          with parameters
-            const variable length array of open array of instance of type f104 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            const open array of open array of instance of type f105 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            static open array of open array of instance of type f106 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            const static open array of open array of instance of type f107 
-          returning 
-            signed int 
-
-      f108: a const variable length array of open array of pointer to signed int 
-      f109: a const open array of open array of pointer to signed int 
-      f110: a static open array of open array of pointer to pointer to signed int 
-      f111: a const static open array of open array of pointer to const pointer to signed int 
-      f112: a const static open array of open array of const pointer to const pointer to signed int 
-      function
-          with parameters
-            const variable length array of open array of instance of type f113 
-          returning 
-            pointer to signed int 
-
-      function
-          with parameters
-            const open array of open array of instance of type f114 
-          returning 
-            pointer to signed int 
-
-      function
-          with parameters
-            static open array of open array of instance of type f115 
+      f100: const variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f102: static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f103: const static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of array of instance of type f104 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const array of array of instance of type f105 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            static array of array of instance of type f106 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const static array of array of instance of type f107 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f108: const variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f110: static array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f111: const static array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f112: const static array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of array of instance of type f113 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            const array of array of instance of type f114 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            static array of array of instance of type f115 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
           returning 
             pointer to pointer to signed int 
@@ -363,5 +366,5 @@
       function
           with parameters
-            const static open array of open array of instance of type f116 
+            const static array of array of instance of type f116 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
           returning 
             pointer to const pointer to signed int 
@@ -369,5 +372,5 @@
       function
           with parameters
-            const static open array of open array of instance of type f117 
+            const static array of array of instance of type f117 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
           returning 
             const pointer to const pointer to signed int 
@@ -376,3 +379,4 @@
       signed int 
     with body 
-
+      CompoundStmt
+
Index: src/Tests/SynTree/Expected/VariableDeclarator.tst
===================================================================
--- src/Tests/SynTree/Expected/VariableDeclarator.tst	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/Expected/VariableDeclarator.tst	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,67 +1,67 @@
-f1: a signed int 
-f2: a signed int 
-f3: a pointer to signed int 
-f4: a pointer to pointer to signed int 
-f5: a pointer to const pointer to signed int 
-f6: a const pointer to const pointer to signed int 
-f7: a pointer to signed int 
-f8: a pointer to pointer to signed int 
-f9: a pointer to const pointer to signed int 
-f10: a const pointer to const pointer to signed int 
-f11: a pointer to signed int 
-f12: a pointer to pointer to signed int 
-f13: a pointer to const pointer to signed int 
-f14: a const pointer to const pointer to signed int 
-f15: a open array of signed int 
-f16: a open array of signed int 
-f17: a open array of signed int 
-f18: a open array of signed int 
-f19: a open array of pointer to signed int 
-f20: a open array of pointer to signed int 
-f21: a open array of pointer to pointer to signed int 
-f22: a open array of pointer to pointer to signed int 
-f23: a open array of pointer to const pointer to signed int 
-f24: a open array of pointer to const pointer to signed int 
-f25: a open array of const pointer to const pointer to signed int 
-f26: a open array of const pointer to const pointer to signed int 
-f27: a open array of pointer to signed int 
-f28: a open array of pointer to signed int 
-f29: a open array of pointer to pointer to signed int 
-f30: a open array of pointer to pointer to signed int 
-f31: a open array of pointer to const pointer to signed int 
-f32: a open array of pointer to const pointer to signed int 
-f33: a open array of const pointer to const pointer to signed int 
-f34: a open array of const pointer to const pointer to signed int 
-f35: a open array of pointer to signed int 
-f36: a open array of pointer to signed int 
-f37: a open array of pointer to pointer to signed int 
-f38: a open array of pointer to pointer to signed int 
-f39: a open array of pointer to const pointer to signed int 
-f40: a open array of pointer to const pointer to signed int 
-f41: a open array of const pointer to const pointer to signed int 
-f42: a open array of const pointer to const pointer to signed int 
-f43: a open array of open array of signed int 
-f44: a open array of open array of signed int 
-f45: a open array of open array of signed int 
-f46: a open array of open array of signed int 
-f47: a open array of open array of signed int 
-f48: a open array of open array of signed int 
-f49: a open array of open array of pointer to signed int 
-f50: a open array of open array of pointer to signed int 
-f51: a open array of open array of pointer to pointer to signed int 
-f52: a open array of open array of pointer to pointer to signed int 
-f53: a open array of open array of pointer to const pointer to signed int 
-f54: a open array of open array of pointer to const pointer to signed int 
-f55: a open array of open array of const pointer to const pointer to signed int 
-f56: a open array of open array of const pointer to const pointer to signed int 
-f57: a open array of open array of pointer to signed int 
-f58: a open array of open array of pointer to signed int 
-f59: a open array of open array of pointer to pointer to signed int 
-f60: a open array of open array of pointer to pointer to signed int 
-f61: a open array of open array of pointer to const pointer to signed int 
-f62: a open array of open array of pointer to const pointer to signed int 
-f63: a open array of open array of const pointer to const pointer to signed int 
-f64: a open array of open array of const pointer to const pointer to signed int 
-f65: a function
+f1: signed int 
+f2: signed int 
+f3: pointer to signed int 
+f4: pointer to pointer to signed int 
+f5: pointer to const pointer to signed int 
+f6: const pointer to const pointer to signed int 
+f7: pointer to signed int 
+f8: pointer to pointer to signed int 
+f9: pointer to const pointer to signed int 
+f10: const pointer to const pointer to signed int 
+f11: pointer to signed int 
+f12: pointer to pointer to signed int 
+f13: pointer to const pointer to signed int 
+f14: const pointer to const pointer to signed int 
+f15: open array of signed int 
+f16: array of signed int with dimension of constant expression 10 signed int 
+f17: open array of signed int 
+f18: array of signed int with dimension of constant expression 10 signed int 
+f19: open array of pointer to signed int 
+f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+f21: open array of pointer to pointer to signed int 
+f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f23: open array of pointer to const pointer to signed int 
+f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f25: open array of const pointer to const pointer to signed int 
+f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f27: open array of pointer to signed int 
+f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+f29: open array of pointer to pointer to signed int 
+f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f31: open array of pointer to const pointer to signed int 
+f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f33: open array of const pointer to const pointer to signed int 
+f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f35: open array of pointer to signed int 
+f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+f37: open array of pointer to pointer to signed int 
+f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f39: open array of pointer to const pointer to signed int 
+f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f41: open array of const pointer to const pointer to signed int 
+f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f43: open array of array of signed int with dimension of constant expression 3 signed int 
+f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f45: open array of array of signed int with dimension of constant expression 3 signed int 
+f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f47: open array of array of signed int with dimension of constant expression 3 signed int 
+f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f65: function
     with parameters
       signed int 
@@ -69,5 +69,5 @@
       signed int 
 
-f66: a function
+f66: function
     with parameters
       signed int 
@@ -75,5 +75,5 @@
       signed int 
 
-f67: a function
+f67: function
     with parameters
       signed int 
@@ -81,5 +81,5 @@
       pointer to signed int 
 
-f68: a function
+f68: function
     with parameters
       signed int 
@@ -87,5 +87,5 @@
       pointer to pointer to signed int 
 
-f69: a function
+f69: function
     with parameters
       signed int 
@@ -93,5 +93,5 @@
       pointer to const pointer to signed int 
 
-f70: a function
+f70: function
     with parameters
       signed int 
@@ -99,5 +99,5 @@
       const pointer to const pointer to signed int 
 
-f71: a function
+f71: function
     with parameters
       signed int 
@@ -105,5 +105,5 @@
       pointer to signed int 
 
-f72: a function
+f72: function
     with parameters
       signed int 
@@ -111,5 +111,5 @@
       pointer to pointer to signed int 
 
-f73: a function
+f73: function
     with parameters
       signed int 
@@ -117,5 +117,5 @@
       pointer to const pointer to signed int 
 
-f74: a function
+f74: function
     with parameters
       signed int 
@@ -123,5 +123,5 @@
       const pointer to const pointer to signed int 
 
-f75: a pointer to function
+f75: pointer to function
     with parameters
       signed int 
@@ -129,5 +129,5 @@
       signed int 
 
-f76: a pointer to pointer to function
+f76: pointer to pointer to function
     with parameters
       signed int 
@@ -135,5 +135,5 @@
       signed int 
 
-f77: a pointer to const pointer to function
+f77: pointer to const pointer to function
     with parameters
       signed int 
@@ -141,5 +141,5 @@
       signed int 
 
-f78: a const pointer to const pointer to function
+f78: const pointer to const pointer to function
     with parameters
       signed int 
@@ -147,34 +147,37 @@
       signed int 
 
-f79: a pointer to function
+f79: pointer to function
     with parameters
       signed int 
     returning 
       pointer to function
+            accepting unspecified arguments
           returning 
             signed int 
 
 
-f80: a const pointer to function
+f80: const pointer to function
     with parameters
       signed int 
     returning 
       pointer to function
+            accepting unspecified arguments
           returning 
             signed int 
 
 
-f81: a const pointer to function
+f81: const pointer to function
     with parameters
       signed int 
     returning 
       const pointer to function
+            accepting unspecified arguments
           returning 
             signed int 
 
 
-z: a pointer to open array of double 
-w: a open array of pointer to char 
-v3: a pointer to open array of pointer to open array of pointer to function
+z: pointer to array of double with dimension of constant expression 20 signed int 
+w: array of pointer to char with dimension of constant expression 20 signed int 
+v3: pointer to open array of pointer to open array of pointer to function
     with parameters
       pointer to open array of pointer to open array of signed int 
Index: src/Tests/SynTree/make-rules
===================================================================
--- src/Tests/SynTree/make-rules	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/make-rules	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,21 +1,20 @@
 CFA = ../../cfa-cpp
 
-DIFF = diff#/software/gnu/bin/diff
+EXPECTED := ${wildcard ${EXPECTDIR}/*.tst}
+TESTS := ${EXPECTED:${EXPECTDIR}/%=${OUTPUTDIR}/%}
+TEST_IN := ${TESTS:.tst=.c}
 
-# Basic SynTree printing
-EXPECTED := ${wildcard $(EXPECTDIR)/*.tst}
-TESTS := $(EXPECTED:$(EXPECTDIR)/%=$(OUTPUTDIR)/%)
-TEST_IN := $(TESTS:.tst=.c)
+.SILENT :
 
-$(OUTPUTDIR)/%.tst : %.c $(CFA)
-	$(CFA) $(CFAOPT) < $< > $@ 2>&1
+${OUTPUTDIR}/%.tst : %.c ${CFA}
+	-${CFA} ${CFAOPT} < $< > $@ 2>&1
 
-$(OUTPUTDIR)/report : $(TESTS) $(EXPECTED)
+${OUTPUTDIR}/report : ${TESTS} ${EXPECTED}
 	rm -f $@
-	@for i in $(TESTS); do \
+	@for i in ${TESTS}; do \
 	     echo "---"`basename $$i`"---" | tee -a $@; \
-	     $(DIFF) -B -w $(EXPECTDIR)/`basename $$i` $$i | tee -a $@; \
+	     diff -B -w ${EXPECTDIR}/`basename $$i` $$i | tee -a $@; \
 	done
 
 clean :
-	rm -rf $(OUTPUTDIR)
+	rm -rf ${OUTPUTDIR}
Index: src/Tests/SynTree/run-tests.sh
===================================================================
--- src/Tests/SynTree/run-tests.sh	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tests/SynTree/run-tests.sh	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -1,3 +1,3 @@
-#!/bin/sh -v
+#!/bin/sh -
 
 dotest() {
Index: src/Tuples/MultRet.cc
===================================================================
--- src/Tuples/MultRet.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/Tuples/MultRet.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 18 12:37:57 2015
-// Update Count     : 1
+// Last Modified On : Mon Jun  8 14:54:44 2015
+// Update Count     : 2
 //
 
@@ -141,7 +141,6 @@
 	// Auxiliary function to generate new names for the `output' parameters
 	DeclStmt *MVRMutator::newVar( DeclarationWithType *reqDecl ) {
-		// std::ostrstream os;
+		// std::ostringstream os;
 		// os << "__" << curVal++ << "__";// << std::ends;
-		// os.freeze( false );
 
 		ObjectDecl *decl;
Index: src/examples/constants.c
===================================================================
--- src/examples/constants.c	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/examples/constants.c	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun  6 15:08:43 2015
-// Update Count     : 63
+// Last Modified On : Mon Jun  8 20:44:48 2015
+// Update Count     : 75
 //
 
@@ -17,16 +17,34 @@
 	1_234_Ul;
 	-0_177;
-	017777777777;
-	037777777777;
+	017_777_777_777;
+	037_777_777_777;
 	0x_7f_FF_ff_FF;
 	0x_ff_FF_ff_FF;
 	2_147_483_647;
 	4_294_967_295;
-	0777777777777777777777;
-	01777777777777777777777;
+	4_294_967_296;
+	4_294_967_296U;
+	0_777_777_777_777_777_777_777;
+	01_777_777_777_777_777_777_777;
+	0;
+	0L;
+	0LL;
+	1;
+	1L;
+	1LL;
+	10;
+	10L;
+	10LL;
+	2U;
+	2UL;
+	2ULL;
+	2LU;
+	2LLU;
 	0x_7f_FF_ff_FF_ff_FF_ff_FF;
 	0x_ff_FF_ff_FF_ff_FF_ff_FF;
 	9_223_372_036_854_775_807;
 	18_446_744_073_709_551_615;
+	3.141_59f;
+	3.14159;
 	12.123_333_E_27L;
 	0X_1.ff_ff_ff_ff_ff_fff_P_1023;
Index: src/examples/includes.c
===================================================================
--- src/examples/includes.c	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/examples/includes.c	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jun  3 23:48:26 2015
-// Update Count     : 6
+// Last Modified On : Mon Jun  8 15:54:17 2015
+// Update Count     : 7
 //
 
Index: src/main.cc
===================================================================
--- src/main.cc	(revision cd623a4e93c2eeb566858071f03b3e141d60d50c)
+++ src/main.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
@@ -10,6 +10,6 @@
 // Created On       : Fri May 15 23:12:02 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu May 21 21:15:54 2015
-// Update Count     : 9
+// Last Modified On : Mon Jun  8 16:50:31 2015
+// Update Count     : 11
 //
 
