def visitLiteralRange(self, ctx: ShExDocParser.LiteralRangeContext):
baseliteral = self.context.literal_to_ObjectLiteral(ctx.literal())<EOL>if not ctx.STEM_MARK():<EOL><INDENT>vsvalue = baseliteral               <EOL><DEDENT>else:<EOL><INDENT>if ctx.literalExclusion():          <EOL><INDENT>vsvalue = LiteralStemRange(baseliteral.value.val, exclusions=[])<EOL>self._literal_exclusions(vsvalue, ctx.literalExclusion())<EOL><DEDENT>else:<EOL><INDENT>vsvalue = LiteralStem(baseliteral.value)<EOL><DEDENT><DEDENT>self.nodeconstraint.values.append(vsvalue)<EOL>
ShExC: literalRange: literal (STEM_MARK literalExclusion*)? 
            ShExJ: valueSetValue: objectValue | LiteralStem | LiteralStemRange
                   literalStem: {stem:STRING}
                   literalStemRange: {stem:STRING exclusions:[STRING|LiteralStem+]?