Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision 5ead9f95cb4d5f1df7e1139c0f0dc62a52639a7c)
+++ src/Parser/TypeData.cc	(revision 926af747ff7dac04cacef082cdd822ede9e85c2d)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:12:51 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Aug 15 20:48:52 2016
-// Update Count     : 62
+// Last Modified On : Wed Aug 17 08:47:48 2016
+// Update Count     : 63
 //
 
@@ -908,6 +908,6 @@
 	buildList( enumeration->constants, ret->get_members() );
 	std::list< Declaration * >::iterator members = ret->get_members().begin();
-	for ( const DeclarationNode *cur = enumeration->constants; cur != NULL; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ), ++members ) {
-		if ( cur->get_enumeratorValue() != NULL ) {
+	for ( const DeclarationNode *cur = enumeration->constants; cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ), ++members ) {
+		if ( cur->get_enumeratorValue() != nullptr ) {
 			ObjectDecl *member = dynamic_cast< ObjectDecl * >(*members);
 			member->set_init( new SingleInit( maybeBuild< Expression >( cur->get_enumeratorValue() ), std::list< Expression * >() ) );
Index: src/Parser/lex.cc
===================================================================
--- src/Parser/lex.cc	(revision 5ead9f95cb4d5f1df7e1139c0f0dc62a52639a7c)
+++ src/Parser/lex.cc	(revision 926af747ff7dac04cacef082cdd822ede9e85c2d)
@@ -1468,7 +1468,7 @@
  * Author           : Peter A. Buhr
  * Created On       : Sat Sep 22 08:58:10 2001
- * Last Modified By : 
- * Last Modified On : Sun Jul 31 07:19:36 2016
- * Update Count     : 459
+ * Last Modified By : Peter A. Buhr
+ * Last Modified On : Tue Aug 16 22:34:31 2016
+ * Update Count     : 460
  */
 #line 20 "lex.ll"
@@ -1491,5 +1491,5 @@
 #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_CHAR(x)		yylval.tok.str = nullptr; RETURN_LOCN( x )
 #define RETURN_STR(x)		yylval.tok.str = strtext; RETURN_LOCN( x )
 
Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision 5ead9f95cb4d5f1df7e1139c0f0dc62a52639a7c)
+++ src/Parser/lex.ll	(revision 926af747ff7dac04cacef082cdd822ede9e85c2d)
@@ -9,7 +9,7 @@
  * Author           : Peter A. Buhr
  * Created On       : Sat Sep 22 08:58:10 2001
- * Last Modified By : 
- * Last Modified On : Sun Jul 31 07:19:36 2016
- * Update Count     : 459
+ * Last Modified By : Peter A. Buhr
+ * Last Modified On : Tue Aug 16 22:34:31 2016
+ * Update Count     : 460
  */
 
@@ -36,5 +36,5 @@
 #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_CHAR(x)		yylval.tok.str = nullptr; RETURN_LOCN( x )
 #define RETURN_STR(x)		yylval.tok.str = strtext; RETURN_LOCN( x )
 
Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision 5ead9f95cb4d5f1df7e1139c0f0dc62a52639a7c)
+++ src/Parser/parser.cc	(revision 926af747ff7dac04cacef082cdd822ede9e85c2d)
@@ -5709,5 +5709,5 @@
 #line 700 "parser.yy"
     {	// mark all fields in list
-			for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )
+			for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
 				iter->set_extension( true );
 			(yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
@@ -7047,5 +7047,5 @@
 #line 1494 "parser.yy"
     {	// mark all fields in list
-			for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )
+			for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
 				iter->set_extension( true );
 			(yyval.decl) = (yyvsp[(2) - (3)].decl);
@@ -7772,5 +7772,5 @@
 /* Line 1806 of yacc.c  */
 #line 1972 "parser.yy"
-    { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);	}
+    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);	}
     break;
 
@@ -7779,5 +7779,5 @@
 /* Line 1806 of yacc.c  */
 #line 1978 "parser.yy"
-    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
+    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     break;
 
@@ -7822,5 +7822,5 @@
 #line 2004 "parser.yy"
     {	// mark all fields in list
-			for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )
+			for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
 				iter->set_extension( true );
 			(yyval.decl) = (yyvsp[(2) - (2)].decl);
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 5ead9f95cb4d5f1df7e1139c0f0dc62a52639a7c)
+++ src/Parser/parser.yy	(revision 926af747ff7dac04cacef082cdd822ede9e85c2d)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Aug 16 21:31:46 2016
-// Update Count     : 1906
+// Last Modified On : Tue Aug 16 21:59:35 2016
+// Update Count     : 1907
 //
 
@@ -699,5 +699,5 @@
 	| EXTENSION declaration								// GCC
 		{	// mark all fields in list
-			for ( DeclarationNode *iter = $2; iter != NULL; iter = (DeclarationNode *)iter->get_next() )
+			for ( DeclarationNode *iter = $2; iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
 				iter->set_extension( true );
 			$$ = new StatementNode( $2 );
@@ -1493,5 +1493,5 @@
 	| EXTENSION field_declaring_list ';'				// GCC
 		{	// mark all fields in list
-			for ( DeclarationNode *iter = $2; iter != NULL; iter = (DeclarationNode *)iter->get_next() )
+			for ( DeclarationNode *iter = $2; iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
 				iter->set_extension( true );
 			$$ = $2;
@@ -1970,5 +1970,5 @@
 		{}												// empty input file
 	| external_definition_list
-		{ parseTree = parseTree ? parseTree->appendList( $1 ) : $1;	}
+		{ parseTree = parseTree != nullptr ? parseTree->appendList( $1 ) : $1;	}
 	;
 
@@ -1976,5 +1976,5 @@
 	external_definition
 	| external_definition_list push external_definition
-		{ $$ = ( $1 != NULL ) ? $1->appendList( $3 ) : $3; }
+		{ $$ = $1 != nullptr ? $1->appendList( $3 ) : $3; }
 	;
 
@@ -2003,5 +2003,5 @@
 	| EXTENSION external_definition
 		{	// mark all fields in list
-			for ( DeclarationNode *iter = $2; iter != NULL; iter = (DeclarationNode *)iter->get_next() )
+			for ( DeclarationNode *iter = $2; iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
 				iter->set_extension( true );
 			$$ = $2;
Index: src/main.cc
===================================================================
--- src/main.cc	(revision 5ead9f95cb4d5f1df7e1139c0f0dc62a52639a7c)
+++ src/main.cc	(revision 926af747ff7dac04cacef082cdd822ede9e85c2d)
@@ -10,6 +10,6 @@
 // Created On       : Fri May 15 23:12:02 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Aug 16 21:33:49 2016
-// Update Count     : 260
+// Last Modified On : Wed Aug 17 09:08:43 2016
+// Update Count     : 274
 //
 
@@ -20,6 +20,4 @@
 #include "Parser/parser.h"
 #include "Parser/TypedefTable.h"
-#include "SynTree/Declaration.h"
-#include "SynTree/Visitor.h"
 #include "GenPoly/Lvalue.h"
 #include "GenPoly/Specialize.h"
@@ -30,17 +28,10 @@
 #include "CodeGen/FixNames.h"
 #include "ControlStruct/Mutate.h"
-#include "Tuples/Mutate.h"
-#include "Tuples/FunctionChecker.h"
-#include "SymTab/Mangler.h"
-#include "SymTab/Indexer.h"
 #include "SymTab/Validate.h"
 #include "ResolvExpr/AlternativePrinter.h"
 #include "ResolvExpr/Resolver.h"
 #include "MakeLibCfa.h"
-#include "InitTweak/Mutate.h"
 #include "InitTweak/GenInit.h"
 #include "InitTweak/FixInit.h"
-
-#include "Common/SemanticError.h"
 #include "Common/UnimplementedError.h"
 
@@ -51,5 +42,4 @@
 #define OPTPRINT(x) if ( errorp ) std::cerr << x << std::endl;
 
-extern int yydebug;
 
 LinkageSpec::Type linkage = LinkageSpec::Cforall;
@@ -57,4 +47,5 @@
 DeclarationNode * parseTree = nullptr;					// program parse tree
 
+extern int yydebug;										// set for -g flag (Grammar)
 bool
 	astp = false,
@@ -64,5 +55,4 @@
 	exprp = false,
 	expraltp = false,
-	grammarp = false,
 	libcfap = false,
 	nopreludep = false,
@@ -76,7 +66,7 @@
 	codegenp = false;
 
+static void parse_cmdline( int argc, char *argv[], const char *& filename );
 static void parse( FILE * input, LinkageSpec::Type t, bool shouldExit = false );
 static void dump( std::list< Declaration * > & translationUnit, std::ostream & out = std::cout );
-static void parse_cmdline( int argc, char *argv[], const char *& filename );
 
 
@@ -85,5 +75,5 @@
 	std::ostream *output = & std::cout;
 	std::list< Declaration * > translationUnit;
-	const char *filename = NULL;
+	const char *filename = nullptr;
 
 	parse_cmdline( argc, argv, filename );				// process command-line arguments
@@ -98,5 +88,5 @@
 			} // if
 			// if running cfa-cpp directly, might forget to pass -F option (and really shouldn't have to)
-			if ( filename == NULL ) filename = argv[ optind ];
+			if ( filename == nullptr ) filename = argv[ optind ];
 			// prelude filename comes in differently
 			if ( libcfap ) filename = "prelude.cf";
@@ -106,5 +96,5 @@
 			// if running cfa-cpp directly, might forget to pass -F option. Since this takes from stdin, pass
 			// a fake name along
-			if ( filename == NULL ) filename = "stdin";
+			if ( filename == nullptr ) filename = "stdin";
 		} // if
 
@@ -112,6 +102,4 @@
 			output = new ofstream( argv[ optind ] );
 		} // if
-
-		yydebug = grammarp;
 
 		// read in the builtins, extras, and the prelude
@@ -119,5 +107,5 @@
 			// -l is for initial build ONLY and builtins.cf is not in the lib directory so access it here.
 			FILE * builtins = fopen( libcfap | treep ? "builtins.cf" : CFA_LIBDIR "/builtins.cf", "r" );
-			if ( builtins == NULL ) {
+			if ( builtins == nullptr ) {
 				std::cerr << "Error: cannot open builtins.cf" << std::endl;
 				exit( EXIT_FAILURE );
@@ -127,5 +115,5 @@
 			// read the extra prelude in, if not generating the cfa library
 			FILE * extras = fopen( libcfap | treep ? "extras.cf" : CFA_LIBDIR "/extras.cf", "r" );
-			if ( extras == NULL ) {
+			if ( extras == nullptr ) {
 				std::cerr << "Error: cannot open extras.cf" << std::endl;
 				exit( EXIT_FAILURE );
@@ -136,5 +124,5 @@
 				// read the prelude in, if not generating the cfa library
 				FILE * prelude = fopen( treep ? "prelude.cf" : CFA_LIBDIR "/prelude.cf", "r" );
-				if ( prelude == NULL ) {
+				if ( prelude == nullptr ) {
 					std::cerr << "Error: cannot open prelude.cf" << std::endl;
 					exit( EXIT_FAILURE );
@@ -145,5 +133,5 @@
 		} // if
 
-		parse( input, libcfap ? LinkageSpec::Intrinsic : LinkageSpec::Cforall, grammarp );
+		parse( input, libcfap ? LinkageSpec::Intrinsic : LinkageSpec::Cforall, yydebug );
 
 		if ( parsep ) {
@@ -202,5 +190,5 @@
 			dump( translationUnit );
 			return 0;
-		}
+		} // if
 
 		// fix ObjectDecl - replaces ConstructorInit nodes
@@ -210,5 +198,5 @@
 			dump ( translationUnit );
 			return 0;
-		}
+		} // if
 
 		OPTPRINT("instantiateGenerics")
@@ -224,5 +212,5 @@
 			dump( translationUnit );
 			return 0;
-		}
+		} // if
 		OPTPRINT( "box" )
 		GenPoly::box( translationUnit );
@@ -244,5 +232,5 @@
 			dump( translationUnit, std::cerr );
 			std::cerr << std::endl << "---End of AST, begin error message:---\n" << std::endl;
-		}
+		} // if
 		e.print( std::cerr );
 		if ( output != &std::cout ) {
@@ -322,5 +310,5 @@
 		  case Grammar:
 		  case 'g':										// bison debugging info (grammar rules)
-			grammarp = true;
+			yydebug = true;
 			break;
 		  case LibCFA:
@@ -398,9 +386,10 @@
 static void dump( std::list< Declaration * > & translationUnit, std::ostream & out ) {
 	std::list< Declaration * > decls;
+
 	if ( noprotop ) {
 		filter( translationUnit.begin(), translationUnit.end(), std::back_inserter( decls ), notPrelude );
 	} else {
 		decls = translationUnit;
-	}
+	} // if
 
 	printAll( decls, out );
Index: src/tests/.expect/64/gccExtensions.txt
===================================================================
--- src/tests/.expect/64/gccExtensions.txt	(revision 5ead9f95cb4d5f1df7e1139c0f0dc62a52639a7c)
+++ src/tests/.expect/64/gccExtensions.txt	(revision 926af747ff7dac04cacef082cdd822ede9e85c2d)
@@ -11,4 +11,5 @@
     asm ( "nop" :  :  :  );
     static int __y__i_2;
+    static int *__z__Pi_2;
     int __src__i_2;
     int __dst__i_2;
@@ -23,4 +24,14 @@
     const int __i2__Ci_2;
     const int __i3__Ci_2;
+    inline int __f1__Fi___2(){
+    }
+    inline int __f2__Fi___2(){
+    }
+    int __s1__i_2;
+    int __s2__i_2;
+    volatile int __v1__Vi_2;
+    volatile int __v2__Vi_2;
+    int __t1___2;
+    int __t2___2;
     __extension__ const int __ex__Ci_2;
     struct S {
@@ -73,14 +84,4 @@
     ((void)(__extension__ __a__i_2=(__extension__ __b__i_2+__extension__ __c__i_2)));
     ((void)(__extension__ __a__i_2=__extension__ (__extension__ __b__i_2+__extension__ __c__i_2)));
-    inline int __f1__Fi___2(){
-    }
-    inline int __f2__Fi___2(){
-    }
-    int __s1__i_2;
-    int __s2__i_2;
-    int __t1___2;
-    int __t2___2;
-    volatile int __v1__Vi_2;
-    volatile int __v2__Vi_2;
     int __a1__i_2;
     const int __a2__Ci_2;
Index: src/tests/gccExtensions.c
===================================================================
--- src/tests/gccExtensions.c	(revision 5ead9f95cb4d5f1df7e1139c0f0dc62a52639a7c)
+++ src/tests/gccExtensions.c	(revision 926af747ff7dac04cacef082cdd822ede9e85c2d)
@@ -10,6 +10,6 @@
 // Created On       : Sun Aug 14 17:28:17 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Aug 17 08:34:57 2016
-// Update Count     : 7
+// Last Modified On : Wed Aug 17 09:26:50 2016
+// Update Count     : 10
 // 
 
@@ -17,4 +17,6 @@
 
 int main(int argc, char const *argv[]) {
+	// asm extensions
+
 	asm( "nop" );
 	__asm( "nop" );
@@ -54,4 +56,6 @@
 			   : L1, L2 );
 
+	// alternative type/qualifer names
+
 	__complex__ c1;
 	_Complex c2;
@@ -60,4 +64,20 @@
 	__const int i2;
 	__const__ int i3;
+
+	__inline int f1() {}
+	__inline__ int f2() {}
+
+	__signed s1;
+	__signed s2;
+
+	__volatile int v1;
+	__volatile__ int v2;
+
+	// symbol table attributes
+
+	__typeof(s1) t1;
+	__typeof__(s1) t2;
+
+	// strange extension qualifier
 
 	__extension__ const int ex;
@@ -71,15 +91,5 @@
 	__extension__ a = __extension__ ( __extension__ b + __extension__ c );
 
-	__inline int f1() {}
-	__inline__ int f2() {}
-
-	__signed s1;
-	__signed s2;
-
-	__typeof(s1) t1;
-	__typeof__(s1) t2;
-
-	__volatile int v1;
-	__volatile__ int v2;
+	// attributes
 
 	__attribute__(()) int a1;
