nonRefValueType: LEXER_ID_REF | STRING | builtinValueType | objectExpr | arrayExpr  
                             | OPREN typeAlternatives CPREN | ANY

def visitNonRefValueType(self, ctx: jsgParser.NonRefValueTypeContext):
        """ nonRefValueType: LEXER_ID_REF | STRING | builtinValueType | objectExpr | arrayExpr  
                             | OPREN typeAlternatives CPREN | ANY """
        if ctx.LEXER_ID_REF():                  # Reference to a lexer token
            self._lexeridref = as_token(ctx)
        elif ctx.STRING():                      # Anonymous lexer token
            from pyjsg.parser_impl.jsg_lexerruleblock_parser import JSGLexerRuleBlock
            lrb = JSGLexerRuleBlock(self._context)
            lrb.add_string(ctx.getText()[1:-1], False)
            self._lexeridref = self._context.anon_id()
            self._context.grammarelts[self._lexeridref] = lrb
        else:
            self.visitChildren(ctx)