コード例 #1
0
ファイル: SgNode.cpp プロジェクト: charmquark1984/summer2015
SgNode* SgNode::CopyTree() const
{
    SgNode* newNode = new SgNode();
    if (newNode)
    {
        newNode->CopyAllPropsFrom(*this);
        CopySubtree(this, newNode);
    }
    return newNode;
}
コード例 #2
0
ファイル: SgNode.cpp プロジェクト: charmquark1984/summer2015
void SgNode::CopySubtree(const SgNode* node, SgNode* copy)
{
    for (const SgNode* son = node->LeftMostSon(); son;
            son = son->RightBrother())
    {
        SgNode* sonCopy = copy->NewRightMostSon();
        sonCopy->CopyAllPropsFrom(*son);
        CopySubtree(son, sonCopy);
    }
}