Пытаюсь портировать парсер с Spirit V2 на X3. Общее впечатление неплохое, но есть две проблемы.
Во-первых, исчезли локальные переменные, что мне очень неудобно, так как я довольно часто использовал их для отслеживания вещей. Следовательно, я прошу что-то, что могло бы выполнять работу местных жителей в V2.
Другой лучше всего иллюстрируется этим фиктивным примером: я хочу разобрать список целых чисел, разделенных запятыми, в vector<int>
, но он должен анализироваться только тогда, когда сумма списка равна нулю:
auto const int_list = rule<class int_list, vector<int>>("int_list")
= int_ % ','
>> eps(/* How to extract the attribute? */);
Я застрял с последней проверкой здесь, так как не знаю, как получить в свои руки vector<int>
, которое синтезирует правило.