protected final List<Argument> parseArguments(List<String> commands){
        List<Argument> arguments = new ArrayList<Argument>();
        Argument lastArgument = null;
        
        for(String cur : commands){
            if(cur.startsWith(String.valueOf(this.commandChar))){
                if(lastArgument != null)
                    arguments.add(lastArgument);
                
                lastArgument = new Argument(cur.substring(1));
            }else{
                if(lastArgument == null){
                    lastArgument = new Argument("", cur);
                }else{
                    if(lastArgument.getValue() == null)
                        lastArgument.appendValue(cur);
                    else
                        lastArgument.appendValue(" " + cur);
                }
            }
        }
        if(lastArgument != null)
            arguments.add(lastArgument);
        
        return arguments;
    }