pairDef: name COLON valueType ebnfSuffix? 
                     | idref ebnfSuffix?
                     | OPREN name (BAR? name)+ CPREN COLON valueType ebnfSuffix?

def visitPairDef(self, ctx: jsgParser.PairDefContext):
        """ pairDef: name COLON valueType ebnfSuffix? 
                     | idref ebnfSuffix?
                     | OPREN name (BAR? name)+ CPREN COLON valueType ebnfSuffix?
        """
        if ctx.name():          # Options 1 or 3
            self.visitChildren(ctx)
        else:
            self._type_reference = as_token(ctx)
            if ctx.ebnfSuffix():
                self.visit(ctx.ebnfSuffix())