code: public void processLine(String line) throws CLIException {
  		if (line.trim().equals("?")) {
  			output.output(String.format(HINT_FORMAT, appName), outputConverter);
  		} else {
  			List<Token> tokens = Token.tokenize(line);
  			if (tokens.size() > 0) {
  				String discriminator = tokens.get(0).getString();
  				processCommand(discriminator, tokens);
  			}
  		}
  	}
docs: You can operate Shell linewise, without entering the command loop. All
  output is directed to shell's Output.
  
  @see com.budhash.cliche.Output
  
  @param line
  Full command line
  @throws com.budhash.cliche.CLIException
  This may be TokenException