99import java .nio .charset .StandardCharsets ;
1010import java .nio .file .Files ;
1111import java .nio .file .Path ;
12+ import java .util .ArrayDeque ;
1213import java .util .HashSet ;
1314import java .util .Properties ;
1415import java .util .Set ;
@@ -254,16 +255,17 @@ private static Options parseOptions(String[] args) {
254255 var includeSources = false ;
255256 var help = false ;
256257
257- for (var i = 0 ; i < args .length ; i ++) {
258- final var arg = args [i ];
258+ final var remaining = new ArrayDeque <>(java .util .List .of (args ));
259+ while (!remaining .isEmpty ()) {
260+ final var arg = remaining .removeFirst ();
259261 switch (arg ) {
260262 case "--help" -> help = true ;
261263 case "--main" -> main = true ;
262264 case "--include-sources" -> includeSources = true ;
263- case "--output" -> output = Path .of (requireValue (args , ++ i , "--output" ));
264- case "--package" -> packageName = requireValue (args , ++ i , "--package" );
265- case "--class" -> className = requireValue (args , ++ i , "--class" );
266- case "--runtime" -> runtime = Integer .parseInt (requireValue (args , ++ i , "--runtime" ));
265+ case "--output" -> output = Path .of (requireValue (remaining , "--output" ));
266+ case "--package" -> packageName = requireValue (remaining , "--package" );
267+ case "--class" -> className = requireValue (remaining , "--class" );
268+ case "--runtime" -> runtime = Integer .parseInt (requireValue (remaining , "--runtime" ));
267269 default -> {
268270 if (arg .startsWith ("--" )) {
269271 throw new UsageException ("Unknown option: " + arg );
@@ -288,11 +290,11 @@ private static Options parseOptions(String[] args) {
288290 return new Options (schema , output , packageName , className , main , runtime , includeSources , false );
289291 }
290292
291- private static String requireValue (String [] args , int index , String option ) {
292- if (index >= args .length ) {
293+ private static String requireValue (ArrayDeque < String > args , String option ) {
294+ if (args .isEmpty () ) {
293295 throw new UsageException ("Missing value for " + option );
294296 }
295- return args [ index ] ;
297+ return args . removeFirst () ;
296298 }
297299
298300 private static String toInternalName (String packageName , String className ) {
0 commit comments