Index: src/Concurrency/Keywords.cpp
===================================================================
--- src/Concurrency/Keywords.cpp	(revision 83fd57dbde2b629bbcc22cdd6694eccab69dd48e)
+++ src/Concurrency/Keywords.cpp	(revision ca9d65e54b7ed187b75dfe016b8d4e2debd19fa4)
@@ -9,7 +9,7 @@
 // Author           : Andrew Beach
 // Created On       : Tue Nov 16  9:53:00 2021
-// Last Modified By : Andrew Beach
-// Last Modified On : Fri Mar 11 10:40:00 2022
-// Update Count     : 2
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Dec 14 18:02:25 2023
+// Update Count     : 6
 //
 
@@ -682,5 +682,5 @@
 
 	if ( 0 != decl->returns.size() ) {
-		SemanticError( decl->location, "Generator main must return void" );
+		SemanticError( decl->location, "Generator main must return void." );
 	}
 
@@ -789,5 +789,5 @@
 	case ast::SuspendStmt::Generator:
 		// Generator suspends must be directly in a generator.
-		if ( !in_generator ) SemanticError( stmt->location, "'suspend generator' must be used inside main of generator type." );
+		if ( !in_generator ) SemanticError( stmt->location, "\"suspend generator\" must be used inside main of generator type." );
 		return make_generator_suspend( stmt );
 	}
@@ -847,5 +847,5 @@
 
 	if ( !decl_suspend ) {
-		SemanticError( location, "suspend keyword applied to coroutines requires coroutines to be in scope, add #include <coroutine.hfa>\n" );
+		SemanticError( location, "suspend keyword applied to coroutines requires coroutines to be in scope, add #include <coroutine.hfa>." );
 	}
 	if ( stmt->then ) {
@@ -918,5 +918,5 @@
 			// If it is a monitor, then it is a monitor.
 			if( baseStruct->base->is_monitor() || baseStruct->base->is_thread() ) {
-				SemanticError( decl, "destructors for structures declared as \"monitor\" must use mutex parameters\n" );
+				SemanticError( decl, "destructors for structures declared as \"monitor\" must use mutex parameters " );
 			}
 		}
@@ -926,10 +926,10 @@
 	// Monitors can't be constructed with mutual exclusion.
 	if ( CodeGen::isConstructor( decl->name ) && is_first_argument_mutex ) {
-		SemanticError( decl, "constructors cannot have mutex parameters\n" );
+		SemanticError( decl, "constructors cannot have mutex parameters " );
 	}
 
 	// It makes no sense to have multiple mutex parameters for the destructor.
 	if ( isDtor && mutexArgs.size() != 1 ) {
-		SemanticError( decl, "destructors can only have 1 mutex argument\n" );
+		SemanticError( decl, "destructors can only have 1 mutex argument " );
 	}
 
@@ -945,5 +945,5 @@
 	// Check to if the required headers have been seen.
 	if ( !monitor_decl || !guard_decl || !dtor_guard_decl ) {
-		SemanticError( decl, "mutex keyword requires monitors to be in scope, add #include <monitor.hfa>\n" );
+		SemanticError( decl, "mutex keyword requires monitors to be in scope, add #include <monitor.hfa>." );
 	}
 
@@ -952,5 +952,5 @@
 	if ( isDtor && isThread( mutexArgs.front() ) ) {
 		if ( !thread_guard_decl ) {
-			SemanticError( decl, "thread destructor requires threads to be in scope, add #include <thread.hfa>\n" );
+			SemanticError( decl, "thread destructor requires threads to be in scope, add #include <thread.hfa>." );
 		}
 		newBody = addThreadDtorStatements( decl, body, mutexArgs );
@@ -987,5 +987,5 @@
 const ast::Stmt * MutexKeyword::postvisit( const ast::MutexStmt * stmt ) {
 	if ( !lock_guard_decl ) {
-		SemanticError( stmt->location, "mutex stmt requires a header, add #include <mutex_stmt.hfa>\n" );
+		SemanticError( stmt->location, "mutex stmt requires a header, add #include <mutex_stmt.hfa>." );
 	}
 	ast::CompoundStmt * body =
@@ -1547,5 +1547,5 @@
 	if ( !type->base->is_thread() ) return decl;
 	if ( !thread_decl || !thread_ctor_seen ) {
-		SemanticError( type->base->location, "thread keyword requires threads to be in scope, add #include <thread.hfa>" );
+		SemanticError( type->base->location, "thread keyword requires threads to be in scope, add #include <thread.hfa>." );
 	}
 	const ast::CompoundStmt * stmt = decl->stmts;
