예제 #1
0
        private string CodeBuilderUDTResult(string inputCode, DeclarationType declarationType, params string[] prototypes)
        {
            var vbe   = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _).Object;
            var state = MockParser.CreateAndParse(vbe);

            using (state)
            {
                var targets = state.DeclarationFinder.DeclarationsWithType(declarationType)
                              .Where(d => prototypes.Contains(d.IdentifierName))
                              .Select(prototype => (prototype, prototype.IdentifierName.CapitalizeFirstLetter()));

                return(CreateCodeBuilder().TryBuildUserDefinedTypeDeclaration(_defaultUDTIdentifier, targets, out string declaration)
                    ? declaration
                    : string.Empty);
            }
        }