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