docs: def visitShapeDefinition(self, ctx: ShExDocParser.ShapeDefinitionContext):
          """ shapeDefinition: qualifier* '{' oneOfShape? '}' annotation* semanticActions """
          if ctx.qualifier():
              for q in ctx.qualifier():
                  self.visit(q)
          if ctx.oneOfShape():
              oneof_parser = ShexOneOfShapeParser(self.context)
              oneof_parser.visit(ctx.oneOfShape())
              self.shape.expression = oneof_parser.expression
          if ctx.annotation() or ctx.semanticActions():
              ansem_parser = ShexAnnotationAndSemactsParser(self.context)
              for annot in ctx.annotation():
                  ansem_parser.visit(annot)
              ansem_parser.visit(ctx.semanticActions())
              if ansem_parser.semacts:
                  self.shape.semActs = ansem_parser.semacts
              if ansem_parser.annotations:
                  self.shape.annotations = ansem_parser.annotations