code: @Override
    public void exitVersion_set(VersionParser.Version_setContext ctx)
    {
      Object o1 = stack.pop();
      if (strict && (o1 instanceof NamedVersion)) {
        String name = o1.toString();
        // FIXME: There needs to be a better way to identify illegal named versions. Perhaps insist it contains an alphanumeric?
        switch (name.trim()) {
          case "-":
          case "_":
            throw new InvalidRangeRuntimeException("Invalid named version: " + o1);
          default:
            break;
        }
      }
      if (stack.isEmpty()) {
        VersionSet set = new VersionSet((IVersion) o1);
        stack.push(set);
      }
      else {
        VersionSet set = (VersionSet) stack.peek();
        set.add((IVersion) o1);
      }
    }
docs: Set of versions
  
  @see net.ossindex.version.parser.VersionBaseListener#exitVersion_set(net.ossindex.version.parser.VersionParser.Version_setContext)