shapeAnd: shapeNot (KW_AND shapeNot)*

def visitShapeAnd(self, ctx: ShExDocParser.ShapeAndContext):
        """ shapeAnd: shapeNot (KW_AND shapeNot)* """
        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))