Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision e82aa9df9f1dc1335a759e00a2d82ca558fe6b0e)
+++ src/Parser/ExpressionNode.cc	(revision b7ea418689026021dec0e39259e99d165731ed42)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:17:07 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Aug 15 14:30:42 2016
-// Update Count     : 490
+// Last Modified On : Tue Aug 16 00:09:20 2016
+// Update Count     : 495
 //
 
@@ -32,5 +32,5 @@
 using namespace std;
 
-ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ), extension( other.extension ) {}
+ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.get_name() ), extension( other.extension ) {}
 
 //##############################################################################
@@ -166,11 +166,7 @@
 } // build_constantStr
 
-//##############################################################################
-
 NameExpr * build_varref( const string *name, bool labelp ) {
 	return new NameExpr( *name, nullptr );
 }
-
-//##############################################################################
 
 static const char *OperName[] = {
@@ -184,18 +180,16 @@
 };
 
-//##############################################################################
-
 Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) {
 	Type *targetType = decl_node->buildType();
 	if ( dynamic_cast< VoidType * >( targetType ) ) {
 		delete targetType;
-		return new CastExpr( maybeBuild<Expression>(expr_node) );
+		return new CastExpr( maybeBuild< Expression >(expr_node) );
 	} else {
-		return new CastExpr( maybeBuild<Expression>(expr_node), targetType );
+		return new CastExpr( maybeBuild< Expression >(expr_node), targetType );
 	} // if
 }
 
 Expression *build_fieldSel( ExpressionNode *expr_node, NameExpr *member ) {
-	UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), maybeBuild<Expression>(expr_node) );
+	UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), maybeBuild< Expression >(expr_node) );
 	delete member;
 	return ret;
@@ -204,5 +198,5 @@
 Expression *build_pfieldSel( ExpressionNode *expr_node, NameExpr *member ) {
 	UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) );
-	deref->get_args().push_back( maybeBuild<Expression>(expr_node) );
+	deref->get_args().push_back( maybeBuild< Expression >(expr_node) );
 	UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), deref );
 	delete member;
@@ -211,8 +205,8 @@
 
 Expression *build_addressOf( ExpressionNode *expr_node ) {
-		return new AddressExpr( maybeBuild<Expression>(expr_node) );
+		return new AddressExpr( maybeBuild< Expression >(expr_node) );
 }
 Expression *build_sizeOfexpr( ExpressionNode *expr_node ) {
-	return new SizeofExpr( maybeBuild<Expression>(expr_node) );
+	return new SizeofExpr( maybeBuild< Expression >(expr_node) );
 }
 Expression *build_sizeOftype( DeclarationNode *decl_node ) {
@@ -220,5 +214,5 @@
 }
 Expression *build_alignOfexpr( ExpressionNode *expr_node ) {
-	return new AlignofExpr( maybeBuild<Expression>(expr_node) );
+	return new AlignofExpr( maybeBuild< Expression >(expr_node) );
 }
 Expression *build_alignOftype( DeclarationNode *decl_node ) {
@@ -230,40 +224,40 @@
 
 Expression *build_and_or( ExpressionNode *expr_node1, ExpressionNode *expr_node2, bool kind ) {
-	return new LogicalExpr( notZeroExpr( maybeBuild<Expression>(expr_node1) ), notZeroExpr( maybeBuild<Expression>(expr_node2) ), kind );
+	return new LogicalExpr( notZeroExpr( maybeBuild< Expression >(expr_node1) ), notZeroExpr( maybeBuild< Expression >(expr_node2) ), kind );
 }
 
 Expression *build_unary_val( OperKinds op, ExpressionNode *expr_node ) {
-	std::list<Expression *> args;
-	args.push_back( maybeBuild<Expression>(expr_node) );
+	std::list< Expression * > args;
+	args.push_back( maybeBuild< Expression >(expr_node) );
 	return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args );
 }
 Expression *build_unary_ptr( OperKinds op, ExpressionNode *expr_node ) {
-	std::list<Expression *> args;
-	args.push_back( new AddressExpr( maybeBuild<Expression>(expr_node) ) );
+	std::list< Expression * > args;
+	args.push_back( new AddressExpr( maybeBuild< Expression >(expr_node) ) );
 	return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args );
 }
 Expression *build_binary_val( OperKinds op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) {
-	std::list<Expression *> args;
-	args.push_back( maybeBuild<Expression>(expr_node1) );
-	args.push_back( maybeBuild<Expression>(expr_node2) );
+	std::list< Expression * > args;
+	args.push_back( maybeBuild< Expression >(expr_node1) );
+	args.push_back( maybeBuild< Expression >(expr_node2) );
 	return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args );
 }
 Expression *build_binary_ptr( OperKinds op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) {
-	std::list<Expression *> args;
-	args.push_back( new AddressExpr( maybeBuild<Expression>(expr_node1) ) );
-	args.push_back( maybeBuild<Expression>(expr_node2) );
+	std::list< Expression * > args;
+	args.push_back( new AddressExpr( maybeBuild< Expression >(expr_node1) ) );
+	args.push_back( maybeBuild< Expression >(expr_node2) );
 	return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args );
 }
 
 Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 ) {
-	return new ConditionalExpr( notZeroExpr( maybeBuild<Expression>(expr_node1) ), maybeBuild<Expression>(expr_node2), maybeBuild<Expression>(expr_node3) );
+	return new ConditionalExpr( notZeroExpr( maybeBuild< Expression >(expr_node1) ), maybeBuild< Expression >(expr_node2), maybeBuild< Expression >(expr_node3) );
 }
 
 Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) {
-	return new CommaExpr( maybeBuild<Expression>(expr_node1), maybeBuild<Expression>(expr_node2) );
+	return new CommaExpr( maybeBuild< Expression >(expr_node1), maybeBuild< Expression >(expr_node2) );
 }
 
 Expression *build_attrexpr( NameExpr *var, ExpressionNode * expr_node ) {
-	return new AttrExpr( var, maybeBuild<Expression>(expr_node) );
+	return new AttrExpr( var, maybeBuild< Expression >(expr_node) );
 }
 Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) {
@@ -278,53 +272,38 @@
 
 Expression *build_func( ExpressionNode * function, ExpressionNode * expr_node ) {
-	std::list<Expression *> args;
+	std::list< Expression * > args;
 
 	buildList( expr_node, args );
-	return new UntypedExpr( maybeBuild<Expression>(function), args, nullptr );
+	return new UntypedExpr( maybeBuild< Expression >(function), args, nullptr );
 }
 
 Expression *build_range( ExpressionNode * low, ExpressionNode *high ) {
-	Expression *low_cexpr = maybeBuild<Expression>( low );
-	Expression *high_cexpr = maybeBuild<Expression>( high );
+	Expression *low_cexpr = maybeBuild< Expression >( low );
+	Expression *high_cexpr = maybeBuild< Expression >( high );
 	return new RangeExpr( low_cexpr, high_cexpr );
 }
 
-//##############################################################################
-
 Expression *build_asmexpr( ExpressionNode *inout, ConstantExpr *constraint, ExpressionNode *operand ) {
-	return new AsmExpr( maybeBuild< Expression >( inout ), constraint, maybeBuild<Expression>(operand) );
-}
-
-//##############################################################################
-
-//void LabelNode::print( std::ostream &os, int indent ) const {}
-
-//void LabelNode::printOneLine( std::ostream &os, int indent ) const {}
-
-//##############################################################################
+	return new AsmExpr( maybeBuild< Expression >( inout ), constraint, maybeBuild< Expression >(operand) );
+}
 
 Expression *build_valexpr( StatementNode *s ) {
-	return new UntypedValofExpr( maybeBuild<Statement>(s), nullptr );
-}
-
-//##############################################################################
-
+	return new UntypedValofExpr( maybeBuild< Statement >(s), nullptr );
+}
 Expression *build_typevalue( DeclarationNode *decl ) {
 	return new TypeExpr( decl->buildType() );
 }
 
-//##############################################################################
-
 Expression *build_compoundLiteral( DeclarationNode *decl_node, InitializerNode *kids ) {
-	Declaration * newDecl = maybeBuild<Declaration>(decl_node); // compound literal type
+	Declaration * newDecl = maybeBuild< Declaration >(decl_node); // compound literal type
 	if ( DeclarationWithType * newDeclWithType = dynamic_cast< DeclarationWithType * >( newDecl ) ) { // non-sue compound-literal type
-		return new CompoundLiteralExpr( newDeclWithType->get_type(), maybeBuild<Initializer>(kids) );
+		return new CompoundLiteralExpr( newDeclWithType->get_type(), maybeBuild< Initializer >(kids) );
 	// these types do not have associated type information
 	} else if ( StructDecl * newDeclStructDecl = dynamic_cast< StructDecl * >( newDecl )  ) {
-		return new CompoundLiteralExpr( new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ), maybeBuild<Initializer>(kids) );
+		return new CompoundLiteralExpr( new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ), maybeBuild< Initializer >(kids) );
 	} else if ( UnionDecl * newDeclUnionDecl = dynamic_cast< UnionDecl * >( newDecl )  ) {
-		return new CompoundLiteralExpr( new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ), maybeBuild<Initializer>(kids) );
+		return new CompoundLiteralExpr( new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ), maybeBuild< Initializer >(kids) );
 	} else if ( EnumDecl * newDeclEnumDecl = dynamic_cast< EnumDecl * >( newDecl )  ) {
-		return new CompoundLiteralExpr( new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ), maybeBuild<Initializer>(kids) );
+		return new CompoundLiteralExpr( new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ), maybeBuild< Initializer >(kids) );
 	} else {
 		assert( false );
