00001 // -*- mode: c++; indent-tabs-mode: nil; tab-width: 2 -*- 00002 #pragma once 00003 #include <string> 00004 #include "moses/Parameter.h" 00005 #include "OptionsBaseClass.h" 00006 #include "SearchOptions.h" 00007 #include "CubePruningOptions.h" 00008 #include "NBestOptions.h" 00009 #include "ReorderingOptions.h" 00010 #include "ContextParameters.h" 00011 #include "InputOptions.h" 00012 #include "MBR_Options.h" 00013 #include "LMBR_Options.h" 00014 #include "ReportingOptions.h" 00015 #include "OOVHandlingOptions.h" 00016 #include "SyntaxOptions.h" 00017 #include <boost/shared_ptr.hpp> 00018 00019 namespace Moses 00020 { 00021 struct 00022 AllOptions : public OptionsBaseClass 00023 { 00024 typedef boost::shared_ptr<AllOptions const> ptr; 00025 SearchOptions search; 00026 CubePruningOptions cube; 00027 NBestOptions nbest; 00028 ReorderingOptions reordering; 00029 ContextParameters context; 00030 InputOptions input; 00031 MBR_Options mbr; 00032 LMBR_Options lmbr; 00033 ReportingOptions output; 00034 OOVHandlingOptions unk; 00035 SyntaxOptions syntax; 00036 bool mira; 00037 bool use_legacy_pt; 00038 // StackOptions stack; 00039 // BeamSearchOptions beam; 00040 bool init(Parameter const& param); 00041 bool sanity_check(); 00042 AllOptions(); 00043 AllOptions(Parameter const& param); 00044 00045 bool update(std::map<std::string,xmlrpc_c::value>const& param); 00046 bool NBestDistinct() const; 00047 00048 }; 00049 00050 }