Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 08ed947af051ae1e41a9e6ea2e12083cdfeec661)
+++ src/Parser/parser.yy	(revision afe9e454560ea0dd21509c0e11af7e348b940597)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Feb 19 09:47:20 2022
-// Update Count     : 5218
+// Last Modified On : Fri Feb 25 17:54:56 2022
+// Update Count     : 5262
 //
 
@@ -610,4 +610,18 @@
 	// | RESUME '(' comma_expression ')' compound_statement
 	//   	{ SemanticError( yylloc, "Resume expression is currently unimplemented." ); $$ = nullptr; }
+	| IDENTIFIER IDENTIFIER								// syntax error
+		{
+			SemanticError( yylloc, ::toString( "Adjacent identifiers are not meaningful in an expression. "
+											   "Possible problem is identifier \"", *$1.str,
+											   "\" is a misspelled typename or an incorrectly specified type name, "
+											   "e.g., missing generic parameter or missing struct/union/enum before typename." ) );
+			$$ = nullptr;
+ 		}
+	| IDENTIFIER direct_type							// syntax error
+		{
+			SemanticError( yylloc, ::toString( "Identifier \"", *$1.str, "\" cannot appear before a type. "
+											   "Possible problem is misspelled storage or CV qualifier." ) );
+			$$ = nullptr;
+		}
 	;
 
@@ -1052,6 +1066,11 @@
 	identifier_or_type_name ':' attribute_list_opt statement
 		{ $$ = $4->add_label( $1, $3 ); }
-	| identifier_or_type_name ':' attribute_list_opt error
-		{ SemanticError( yylloc, "previous label must be associated with a statement (where a declaration is not a statement). Move the label or terminate with a semi-colon." ); $$ = nullptr; }
+	| identifier_or_type_name ':' attribute_list_opt error // syntax error
+		{
+			SemanticError( yylloc, ::toString( "Label \"", *$1.str, "\" must be associated with a statement, "
+											   "where a declaration, case, or default is not a statement. "
+											   "Move the label or terminate with a semi-colon." ) );
+			$$ = nullptr;
+		}
 	;
 
@@ -1088,6 +1107,6 @@
 	| statement_list_nodecl statement
 		{ assert( $1 ); $1->set_last( $2 ); $$ = $1; }
-	| statement_list_nodecl error
-		{ SemanticError( yylloc, "declarations only allowed at the start of the switch body, i.e., after the '{'." ); $$ = nullptr; }
+	| statement_list_nodecl error						// syntax error
+		{ SemanticError( yylloc, "Declarations only allowed at the start of the switch body, i.e., after the '{'." ); $$ = nullptr; }
 	;
 
@@ -1116,6 +1135,6 @@
 			$$ = $7 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw;
 		}
-	| SWITCH '(' comma_expression ')' '{' error '}'		// CFA
-		{ SemanticError( yylloc, "only declarations can appear before the list of case clauses." ); $$ = nullptr; }
+	| SWITCH '(' comma_expression ')' '{' error '}'		// CFA, syntax error
+		{ SemanticError( yylloc, "Only declarations can appear before the list of case clauses." ); $$ = nullptr; }
 	| CHOOSE '(' comma_expression ')' case_clause		// CFA
 		{ $$ = new StatementNode( build_switch( false, $3, $5 ) ); }
@@ -1125,6 +1144,6 @@
 			$$ = $7 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw;
 		}
-	| CHOOSE '(' comma_expression ')' '{' error '}'		// CFA
-		{ SemanticError( yylloc, "only declarations can appear before the list of case clauses." ); $$ = nullptr; }
+	| CHOOSE '(' comma_expression ')' '{' error '}'		// CFA, syntax error
+		{ SemanticError( yylloc, "Only declarations can appear before the list of case clauses." ); $$ = nullptr; }
 	;
 
@@ -1165,13 +1184,13 @@
 
 case_label:												// CFA
-	CASE error
-		{ SemanticError( yylloc, "missing case list after case." ); $$ = nullptr; }
+	CASE error											// syntax error
+		{ SemanticError( yylloc, "Missing case list after case." ); $$ = nullptr; }
 	| CASE case_value_list ':'					{ $$ = $2; }
-	| CASE case_value_list error
-		{ SemanticError( yylloc, "missing colon after case list." ); $$ = nullptr; }
+	| CASE case_value_list error						// syntax error
+		{ SemanticError( yylloc, "Missing colon after case list." ); $$ = nullptr; }
 	| DEFAULT ':'								{ $$ = new StatementNode( build_default() ); }
 		// A semantic check is required to ensure only one default clause per switch/choose statement.
-	| DEFAULT error
-		{ SemanticError( yylloc, "missing colon after default." ); $$ = nullptr; }
+	| DEFAULT error										//  syntax error
+		{ SemanticError( yylloc, "Missing colon after default." ); $$ = nullptr; }
 	;
 
@@ -1410,6 +1429,6 @@
 	| when_clause_opt ELSE statement
 		{ $$ = build_waitfor_timeout( nullptr, maybe_build_compound( $3 ), $1 ); }
-		// "else" must be conditional after timeout or timeout is never triggered (i.e., it is meaningless)
-	| when_clause_opt timeout statement WOR ELSE statement
+	// "else" must be conditional after timeout or timeout is never triggered (i.e., it is meaningless)
+	| when_clause_opt timeout statement WOR ELSE statement // syntax error
 		{ SemanticError( yylloc, "else clause must be conditional after timeout or timeout never triggered." ); $$ = nullptr; }
 	| when_clause_opt timeout statement WOR when_clause ELSE statement
