/// \brief Implementation of types::NormalizeFunction::execute(const types::Variant&)const
	types::Variant execute( const types::Variant& i) const
	{
		types::Variant rt( m_type, m_initializer);
		if (i.defined())
		{
			rt.data().value.Custom->assign( i);
		}
		return rt;
	}
void StructureBuilder::setValue( const types::Variant& value_)
{
	LOG_DATA << "[mylang structure builder] set value '" << value_.tostring() << "'";
	if (!m_stk.back().get())
	{
		m_stk.back().reset( new Structure());
	}
	if (!value_.defined()) throw std::runtime_error("set undefined value");
	if (m_stk.back()->m_value.defined()) throw std::runtime_error("value already defined");
	if (!m_stk.back()->m_struct.empty()) throw std::runtime_error("setValue for atomic value called for a structure");
	m_stk.back()->m_value = value_;
}