code: def visitShapeAnd(self, ctx: ShExDocParser.ShapeAndContext):
          
          if len(ctx.shapeNot()) > 1:
              self.expr = ShapeAnd(id=self.label, shapeExprs=[])
              for sa in ctx.shapeNot():
                  sep = ShexShapeExpressionParser(self.context)
                  sep.visit(sa)
                  self.expr.shapeExprs.append(sep.expr)
          else:
              self.visit(ctx.shapeNot(0))
docs: shapeAnd: shapeNot (KW_AND shapeNot)*