def visitValueSetValue(self, ctx: ShExDocParser.ValueSetValueContext):
        """ valueSetValue: iriRange | literalRange | languageRange | 
            '.' (iriExclusion+ | literalExclusion+ | languageExclusion+) """
        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)
def visitValueSetValue ( self , ctx : ShExDocParser . ValueSetValueContext ) : if ctx . iriRange ( ) or ctx . literalRange ( ) or ctx . languageRange ( ) : self . visitChildren ( ctx ) else : 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 )
valueSetValue: iriRange | literalRange | languageRange | 
            '.' (iriExclusion+ | literalExclusion+ | languageExclusion+)