Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 151c8dbc6b94be41055526da8a571878e949e869)
+++ src/Parser/parser.yy	(revision c1b0b8fd915f492c94d49c3ed582ddb77a5c8832)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jul 25 10:56:31 2024
-// Update Count     : 6727
+// Last Modified On : Thu Jul 25 15:19:32 2024
+// Update Count     : 6730
 //
 
@@ -852,25 +852,4 @@
 	;
 
-argument_expression_list_opt:
-	// empty
-		{ $$ = nullptr; }
-	| argument_expression_list
-	;
-
-argument_expression_list:
-	argument_expression
-	| argument_expression_list_opt ',' argument_expression
-		{ $$ = $1->set_last( $3 ); }
-	;
-
-argument_expression:
-	'@'													// CFA, default parameter
-		{ SemanticError( yylloc, "Default parameter for argument is currently unimplemented." ); $$ = nullptr; }
-		// { $$ = new ExpressionNode( build_constantInteger( *new string( "2" ) ) ); }
-	| '@' identifier '=' assignment_expression			// CFA, keyword argument
-		{ SemanticError( yylloc, "keyword argument is currently unimplemented." ); $$ = nullptr; }
-	| assignment_expression
-	;
-
 field_name_list:										// CFA, tuple field selector
 	field
@@ -1118,4 +1097,26 @@
 constant_expression:
 	conditional_expression
+	;
+
+argument_expression_list_opt:
+	// empty
+		{ $$ = nullptr; }
+	| argument_expression_list
+	;
+
+argument_expression_list:
+	argument_expression
+	// | argument_expression_list_opt ',' argument_expression // CFA, allow empty argument
+	| argument_expression_list ',' argument_expression	// no empty argument
+		{ $$ = $1->set_last( $3 ); }
+	;
+
+argument_expression:
+	'?'													// CFA, default parameter
+		{ SemanticError( yylloc, "Argument to default parameter is currently unimplemented." ); $$ = nullptr; }
+		// { $$ = new ExpressionNode( build_constantInteger( *new string( "2" ) ) ); }
+	| '?' identifier '=' assignment_expression			// CFA, keyword argument
+		{ SemanticError( yylloc, "keyword argument is currently unimplemented." ); $$ = nullptr; }
+	| assignment_expression
 	;
 
@@ -3545,5 +3546,5 @@
 	identifier_at
 		{ $$ = DeclarationNode::newName( $1 ); }
-	| '@' identifier
+	| '?' identifier
 		{ SemanticError( yylloc, "keyword parameter is currently unimplemented." ); $$ = nullptr; }
 	| '(' paren_identifier ')'							// redundant parenthesis
