docs: @Override
      protected int processOptions(String[] args)
      {
          for (int i = 0; i < args.length; i++)
          {
              String arg = args[i];
              if ("--catalog".equals(arg))
              {
                  String symtabPath = args[++i];
                  loadCatalog(symtabPath);
              }
              else if ("--import".equals(arg))
              {
                  // We'll use the latest version available.
                  String name = args[++i];
                  IonCatalog catalog = mySystem.getCatalog();
                  SymbolTable table = catalog.getTable(name);
                  if (table == null)
                  {
                      String message =
                          "There's no symbol table in the catalog named " +
                          name;
                      throw new RuntimeException(message);
                  }
                  myImports.add(table);
                  logDebug("Imported symbol table " + name
                             + "@" + table.getVersion());
              }
              else if ("--name".equals(arg))
              {
                  if (mySymtabName != null)
                  {
                      throw new RuntimeException("Multiple names");
                  }
                  mySymtabName = args[++i];
                  if (mySymtabName.length() == 0)
                  {
                      throw new RuntimeException("Name must not be empty");
                  }
              }
              else if ("--version".equals(arg))
              {
                  if (mySymtabVersion != 0)
                  {
                      throw new RuntimeException("Multiple versions");
                  }
                  int version = Integer.parseInt(arg);
                  if (version < 1)
                  {
                      throw new RuntimeException("Version must be at least 1");
                  }
                  if (version != 1)
                  {
                      String message = "Symtab extension not implemented";
                      throw new UnsupportedOperationException(message);
                  }
                  mySymtabVersion = version;
              }
              else
              {
                  // this arg is not an option, we're done here
                  return i;
              }
          }
  
          return args.length;
      }