0

为了获取抽象源树的一阶导数(对于字符串数学表达式),应该组织哪些额外的数据结构?假设我们有一个字符串表达式树,它是使用boost::spirit. 即每个节点都有适当的BOOST_FUSION_ADAPT_STRUCT/BOOST_FUSION_ADAPT_TPL_STRUCT定义。那么,如何将额外的生成数据存储struct到主 AST 的每个节点以及它们应该如何构建呢?

我认为,它们应该通过std::reference_wrapper< T const & >或到具有相同布局的原始-sboost::optional< T const & >的字段(类型)构建。并且它们应该为源树的每个节点形成数组/向量/双端队列(其中索引等于源树相应节点的 -th 导数)。使用“派生访问者”遍历的每个树都应该是每个节点的每个数组的下一个表达式。为了建立源节点与其导数数组的对应关系,我们可以对它们进行标记。Tstructnpush_back

4

0 回答 0