private void processArguments(String[] arguments) {
        
        if(arguments == null || arguments.length == 0) {
            return;
        }
        
        if(arguments[0].matches("-h|-help")) { // help
            doHelp(arguments);
        }
           
        if(arguments[0].matches("-v|-version")) { // version
            doVersion(arguments);
        }
            
        if(arguments[0].matches("-a|-author")) { // author
            doAuthor(arguments);
        }
            
        if(arguments[0].matches("-f")) { // format
            doFormat(arguments);
            
            processArguments(Arrays.copyOfRange(arguments, 2, arguments.length));
            return;
        }
            
        if(arguments[0].matches("-i")) { // input
            doInput(arguments);
            
            processArguments(Arrays.copyOfRange(arguments, 2, arguments.length));
            return;
        }
            
        if(arguments[0].matches("-e")) { // execute
            doExecute();
            
            processArguments(Arrays.copyOfRange(arguments, 1, arguments.length));
            return;
        }
            
        if(arguments[0].matches("-o")) { // output
            doTrace();
            
            processArguments(Arrays.copyOfRange(arguments, 1, arguments.length));
            return;
        }
        
        printError("Invalid command syntax");
    }