code: function domain() {
          return wrap('domain', function domainCheckTLD() {
              var result = or(obsDomain, dotAtom, domainLiteral)();
              if (opts.rejectTLD) {
                  if (result && result.semantic && result.semantic.indexOf('.') < 0) {
                      return null;
                  }
              }
              // strip all whitespace from domains
              if (result) {
                  result.semantic = result.semantic.replace(/\s+/g, '');
              }
              return result;
          }());
      }
docs: domain          =   dot-atom / domain-literal / obs-domain