@Override
    protected void parse() {
        boolean parseOptions = true;
        parsed = new LinkedList<String>(tokens);
        String token;

        while (!parsed.isEmpty()) {
            token = parsed.remove(0);
            if (parseOptions && EMPTY.equals(token)) {
                parseArgument(token);
            } else if (parseOptions && "--".equals(token)) {
                parseOptions = false;
            } else if (parseOptions && token.startsWith("--")) {
                parseLongOption(token);
            } else if (parseOptions && '-' == token.charAt(0)) {
                parseShortOption(token);
            } else {
                parseArgument(token);
            }
        }
    }