Как я могу программно получить доступ к проанализированным значениям параметров llvm :: cl?

#c #llvm

#c #llvm

Вопрос:

Я использую llvm::cl (из llvm 11) для обработки параметров моей программы и хочу получить доступ к именам всех зарегистрированных параметров и их проанализированным значениям. Хотя я могу получить доступ к самим параметрам getRegisteredOptions() , я не вижу способа получить доступ к проанализированным значениям.

Существуют функции печати, которые внутренне вызывают getOptionValue() метод класса синтаксического анализатора, но я также не могу понять, как получить доступ к классу синтаксического анализатора для данного параметра. https://llvm.org/doxygen/CommandLine_8cpp_source.html#l02020

Если бы у меня это было, я думаю, код выглядел бы примерно так:

 for (auto amp;opt_entry : llvm::cl::getRegisteredOptions()) {
    auto name = opt_entry.first();
    llvm::cl::Option *opt = opt_entry.second;
    auto pos = opt->getPosition();
    // llvm::cl::generic_parser_base::getOptionValue(pos);  <-- but with a parser object
}
  

Комментарии:

1. Посмотрите здесь formalverification.cs.utah.edu/llvm_doxy/2.9 /… начиная со строки 106 и посмотрите, поможет ли вам это.

2.Может быть, взгляните на эти ссылки: llvm.org/doxygen/classllvm_1_1cl_1_1parser.html llvm.org/docs/CommandLine.html