private boolean commandLineLookup( String arg, ConfigOption co, List<ConfigOption> configList ) {
        if( arg.startsWith( co.getCommandLineOption().getLongFlag() ) || ( co.getCommandLineOption().hasShortFlag() && arg
                .startsWith( co.getCommandLineOption().getShortFlag() ) ) ) {

            if( co.getCommandLineOption().hasArgument() ) {
                String[] formatArgs = arg.split( co.getCommandLineOption().getDelimiter() );

                if( formatArgs.length < 2 ) {
                    System.err.println( "Anticipated argument after " + co.getCommandLineOption().showFlagInfo() + ", terminating." );
                    printUsageAndExit( configList );
                }

                Object value = co.toObject( formatArgs[1] );

                if( value == null ) {
                    System.err
                            .println( "Parse error for flag " + co.getCommandLineOption().showFlagInfo() + " got " + formatArgs[1] );
                    printUsageAndExit( configList );
                }

                log.debug( "setting the argument value: " + co.getLongName() + " to " + value );
                parsedOptions.put( co.getLongName(), value );
            } else {
                log.debug( "setting the default value of " + co.getLongName() + " to " + co.getValue() );
                parsedOptions.put( co.getLongName(), co.getValue() );
            }
            return true;
        }

        return false;
    }
Compares the argument with the {@link CommandLineOption} flags and inserts an object into the parsedOptions map
Terminates with a sane help message if a parse is unsuccessful

@param arg the current word from the command line argument list
@param co the config option to look for in the argument
@param configList the global config list, used to create a sane help message if the parse fails
jgiven-core/src/main/java/com/tngtech/jgiven/report/config/ConfigOptionParser.java