Как вывести абстрактное исходное дерево с точки зрения boost :: spririt?

Какие дополнительные структуры данных должны быть организованы, чтобы получить первую производную от абстрактного исходного дерева (для строкового математического выражения)? Допустим, у нас есть дерево для строкового выражения, которое было построено с использованием boost::spirit, Т.е. каждый узел имеет соответствующий BOOST_FUSION_ADAPT_STRUCT/BOOST_FUSION_ADAPT_TPL_STRUCT определение. Итак, как хранить дополнительные произведенные данные struct-с каждому узлу первичной АСТ и как они должны быть построены?

Я думаю, что они должны быть построены через std::reference_wrapper< T const & > или же boost::optional< T const & > в поля (типа T) оригинала structс одинаковым расположением. И они должны формировать массивы / векторы / запросы для каждого узла исходного дерева (где индекс равен n-я производная соответствующего узла исходного дерева). Каждый обход дерева с «дериватом-посетителем» должен push_backs следующее выражение для каждого массива для каждого узла. Чтобы установить соответствие исходных узлов массивам их производных, мы можем сделать их помеченными.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector