@@ -121,6 +121,7 @@ private static void Diagram(
121121
122122 if ( symbolResult is ArgumentResult argumentResult )
123123 {
124+
124125 var includeArgumentName =
125126 argumentResult . Argument is Argument argument &&
126127 argument . Parents [ 0 ] is ICommand command &&
@@ -133,40 +134,43 @@ argument.Parents[0] is ICommand command &&
133134 builder . Append ( " " ) ;
134135 }
135136
136- switch ( argumentResult . GetArgumentConversionResult ( ) )
137+ if ( argumentResult . Argument . Arity . MaximumNumberOfValues > 0 )
137138 {
138- case SuccessfulArgumentConversionResult successful :
139-
140- switch ( successful . Value )
141- {
142- case string s :
143- builder . Append ( $ "<{ s } >") ;
144- break ;
145-
146- case IEnumerable items :
147- builder . Append ( "<" ) ;
148- builder . Append (
149- string . Join ( "> <" ,
150- items . Cast < object > ( ) . ToArray ( ) ) ) ;
151- builder . Append ( ">" ) ;
152- break ;
153-
154- default :
155- builder . Append ( "<" ) ;
156- builder . Append ( successful . Value ) ;
157- builder . Append ( ">" ) ;
158- break ;
159- }
160-
161- break ;
162-
163- case FailedArgumentConversionResult _:
164-
165- builder . Append ( "<" ) ;
166- builder . Append ( string . Join ( "> <" , symbolResult . Tokens . Select ( t => t . Value ) ) ) ;
167- builder . Append ( ">" ) ;
168-
169- break ;
139+ switch ( argumentResult . GetArgumentConversionResult ( ) )
140+ {
141+ case SuccessfulArgumentConversionResult successful :
142+
143+ switch ( successful . Value )
144+ {
145+ case string s :
146+ builder . Append ( $ "<{ s } >") ;
147+ break ;
148+
149+ case IEnumerable items :
150+ builder . Append ( "<" ) ;
151+ builder . Append (
152+ string . Join ( "> <" ,
153+ items . Cast < object > ( ) . ToArray ( ) ) ) ;
154+ builder . Append ( ">" ) ;
155+ break ;
156+
157+ default :
158+ builder . Append ( "<" ) ;
159+ builder . Append ( successful . Value ) ;
160+ builder . Append ( ">" ) ;
161+ break ;
162+ }
163+
164+ break ;
165+
166+ case FailedArgumentConversionResult _:
167+
168+ builder . Append ( "<" ) ;
169+ builder . Append ( string . Join ( "> <" , symbolResult . Tokens . Select ( t => t . Value ) ) ) ;
170+ builder . Append ( ">" ) ;
171+
172+ break ;
173+ }
170174 }
171175
172176 if ( includeArgumentName )
@@ -182,6 +186,13 @@ argument.Parents[0] is ICommand command &&
182186 for ( var i = 0 ; i < symbolResult . Children . Count ; i ++ )
183187 {
184188 var child = symbolResult . Children [ i ] ;
189+
190+ if ( child is ArgumentResult arg &&
191+ arg . Argument . Arity . MaximumNumberOfValues == 0 )
192+ {
193+ continue ;
194+ }
195+
185196 builder . Append ( " " ) ;
186197 builder . Diagram ( child , parseResult ) ;
187198 }
0 commit comments