void Product::CloneScalars( OperandList& scalarList ) const { for( const OperandList::Node* node = operandList.Head(); node; node = node->Next() ) { const ScaledSymbol* scaledSymbol = dynamic_cast< ScaledSymbol* >( node->data ); if( scaledSymbol && scaledSymbol->scalar ) scalarList.InsertAfter()->data = scaledSymbol->scalar->Clone(); Product* product = dynamic_cast< Product* >( node->data ); if( product ) product->CloneScalars( scalarList ); } }