public static string GetName(VBAParser.UdtMemberContext context, out Interval tokenInterval) { var untypedIdentifier = context.untypedNameMemberDeclaration()?.untypedIdentifier(); if (untypedIdentifier != null) { return(GetName(untypedIdentifier, out tokenInterval)); } var unrestrictedIdentifier = context.reservedNameMemberDeclaration().unrestrictedIdentifier(); return(GetName(unrestrictedIdentifier, out tokenInterval)); }
public override void EnterUdtMember(VBAParser.UdtMemberContext context) { VBAParser.AsTypeClauseContext asTypeClause = null; bool isArray = false; string typeHint = null; string identifier; Selection identifierSelection; if (context.reservedNameMemberDeclaration() != null) { identifier = Identifier.GetName(context.reservedNameMemberDeclaration().unrestrictedIdentifier()); identifierSelection = Identifier.GetNameSelection(context.reservedNameMemberDeclaration().unrestrictedIdentifier()); asTypeClause = context.reservedNameMemberDeclaration().asTypeClause(); } else { identifier = Identifier.GetName(context.untypedNameMemberDeclaration().untypedIdentifier()); identifierSelection = Identifier.GetNameSelection(context.untypedNameMemberDeclaration().untypedIdentifier()); asTypeClause = context.untypedNameMemberDeclaration().optionalArrayClause().asTypeClause(); isArray = context.untypedNameMemberDeclaration().optionalArrayClause().arrayDim() != null; } var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); AddDeclaration( CreateDeclaration( identifier, asTypeName, Accessibility.Implicit, DeclarationType.UserDefinedTypeMember, context, identifierSelection, isArray, asTypeClause, typeHint)); }