code: def visitValueSetValue(self, ctx: ShExDocParser.ValueSetValueContext):
          
          if ctx.iriRange() or ctx.literalRange() or ctx.languageRange():
              self.visitChildren(ctx)
          else:                               # '.' branch - wild card with exclusions
              if ctx.iriExclusion():
                  vs_value = IriStemRange(Wildcard(), [])
                  self._iri_exclusions(vs_value, ctx.iriExclusion())
              elif ctx.literalExclusion():
                  vs_value = LiteralStemRange(Wildcard(), [])
                  self._literal_exclusions(vs_value, ctx.literalExclusion())
              else:
                  vs_value = LanguageStemRange(Wildcard(), [])
                  self._language_exclusions(vs_value, ctx.languageExclusion())
              self.nodeconstraint.values.append(vs_value)
docs: valueSetValue: iriRange | literalRange | languageRange | 
              '.' (iriExclusion+ | literalExclusion+ | languageExclusion+)