private <T> void parseParsers(final @NonNull T instance) {
        for (final Method method : instance.getClass().getMethods()) {
            final Parser parser = method.getAnnotation(Parser.class);
            if (parser == null) {
                continue;
            }
            try {
                final String suggestions = this.processString(parser.suggestions());
                final SuggestionProvider<C> suggestionProvider;
                if (suggestions.isEmpty()) {
                    suggestionProvider = SuggestionProvider.noSuggestions();
                } else {
                    suggestionProvider = this.manager.parserRegistry().getSuggestionProvider(suggestions)
                            .orElseThrow(() -> new NullPointerException(
                                    String.format(
                                            "Cannot find the suggestion provider with name '%s'",
                                            suggestions
                                    )
                            ));
                }
                final ParserDescriptor<C, ?> parserDescriptor = this.methodArgumentParserFactory.createArgumentParser(
                        suggestionProvider,
                        instance,
                        method,
                        this.manager.parameterInjectorRegistry()
                );
                final String name = this.processString(parser.name());
                if (name.isEmpty()) {
                    this.manager.parserRegistry().registerParser(parserDescriptor);
                } else {
                    this.manager.parserRegistry().registerNamedParser(name, parserDescriptor);
                }
            } catch (final Exception e) {
                throw new RuntimeException(e);
            }
        }
    }
Maps the given {@code string} into a {@link Description}.

@param string description literal
@return the description
cloud-annotations/src/main/java/org/incendo/cloud/annotations/AnnotationParser.java