tripleConstraint: senseFlags? predicate inlineShapeExpression cardinality? annotation* semanticActions

def visitTripleConstraint(self, ctx: ShExDocParser.TripleConstraintContext):
        """ tripleConstraint: senseFlags? predicate inlineShapeExpression cardinality? annotation* semanticActions """
        # This exists because of the predicate within annotation - if we default to visitchildren, we intercept both
        # predicates
        if ctx.senseFlags():
            self.visit(ctx.senseFlags())
        self.visit(ctx.predicate())
        self.visit(ctx.inlineShapeExpression())
        self._card_annotations_and_semacts(ctx)