Это, вероятно, до жалости простой вопрос, тем более что я уже некоторое время успешно использую QI для анализа простых структур и, вероятно, уже должен знать ответ, но он ускользает от меня, несмотря ни на что ...
Допустим, у нас есть такой контейнер:
struct GenderTally
{
std::vector<std::string> males;
std::vector<std::string> females;
};
и входной файл, например
m:Steve;
f:Dora;
f:Martha;
m:Joe;
...
Когда объекты определенной категории появляются в любом порядке, и не все объекты могут появиться.
Я пропущу здесь адаптацию Fusion, но это будут два вектора строк.
Моя проблема в том, чтобы построить грамматику, которая заполняет подобный условный контейнер. До сих пор я работал над этой проблемой, анализируя входные данные несколько раз, каждый раз с использованием специальной грамматики. В этом примере это будут мужской и женский пол.
В учебнике QI mini-XML у меня сложилось впечатление, что автоматические правила устраняют семантические действия, но, надо признать, я новичок и все еще боюсь хардкорных (шаблонных) магических API, таких как QI. Так что, хотя я знаю, что это плохо, дурной тон ... Я был бы крайне благодарен за настоящий практический пример здесь, так как я столкнулся с серьезным засорением фар. edit: не обязательно должно быть именно для этой структуры, просто ... практический пример грамматики, которая использует автоматические правила и помещает вещи в соответствующие сегменты.