14 #include<boost/program_options.hpp> 23 #include"../AutomataInterface.hh" 30 namespace Poptions = boost::program_options;
38 const string program(
"dd-minimize");
54 Poptions::options_description & desc,
55 Poptions::variables_map & vm)
58 (
"help,h",
"produce help message")
59 (
"file,f", Poptions::value< string >(),
"automaton file (.aut/.ddaut format)")
60 (
"output,o", Poptions::value< string >(),
"outfile name (.aut/.ddaut format)");
61 Poptions::positional_options_description p;
63 Poptions::store(Poptions::command_line_parser(argc, argv).
options(desc).positional(p).run(), vm);
82 minimizeAut(
const std::string & fileName,
const std::string & output)
86 ifstream file(fileName.c_str());
139 ifstream file(fileName.c_str());
160 return printCommandLineError(
Msg(
"Error when loading the ddaut descriptor of file %1% in a finite automaton") % fileName);
192 return printCommandLineError(
Msg(
"Error when loading the ddaut descriptor of file %1% in a finite machine") % fileName);
228 minimizeFsm(
const std::string & fileName,
const std::string & output)
258 std::string fileName, output;
261 Poptions::options_description desc(
"Options");
262 Poptions::variables_map vm;
270 fileName = vm[
"file"].as<std::string>();
272 if(vm.count(
"output"))
274 output = vm[
"output"].as<std::string>();
277 catch(Poptions::required_option & e)
281 catch(Poptions::error & e)
const string program("dd-minimize")
size_t writeAut(const Diades::Automata::Experimental::AutFsm &fsm, const std::string &output, const FileSuffixes &suffixes)
StateMachine< AutStateId, AutEventId > AutFsm
StatePropertyManager< DdAutStateLabel, DdAutStateId > DdAutStateManager
ConstAcceptorIterator acceptorEnd() const
size_t writeFiniteAutomaton(const Diades::Automata::Experimental::ConstManagedDdAutFA &mfa, const std::string &output, const FileSuffixes &suffixes)
bool fsmFromDescriptor(const DdAutFileDescriptor &descriptor, DdAutFsm &fsm, DdAutStateManager &sManager, DdAutEventManager &eManager)
const size_t ERROR_UNHANDLED_EXCEPTION
size_t printCommandLineError(const string &msg)
bool faFromDescriptor(const DdAutFileDescriptor &descriptor, DdAutFA &fa, DdAutStateManager &sManager, DdAutEventManager &eManager)
ConstAcceptorIterator acceptorBegin() const
size_t minimizeFsm(const std::string &fileName, const std::string &output)
vector< string > options(numberOfOptions)
FileSuffixes suffixes({"aut", "ddaut"})
void determine(const Fsm &machine, Fsm &deterministicMachine, StateCreator &creator)
bool match(const std::string &fileName, const std::string &suffix) const
int main(int argc, char **argv)
size_t minimizeAut(const std::string &fileName, const std::string &output)
void minimize(const Fsm &machine, Fsm &minimalMachine, StateCreator &creator)
size_t writeFiniteStateMachine(const Diades::Automata::Experimental::ConstManagedDdAutFsm &mfsm, const std::string &output, const FileSuffixes &suffixes)
EventManager< DdAutEventLabel, DdAutEventId > DdAutEventManager
bool isDeterministic(const Fsm &machine)
bool fromAutFile(std::istream &stream, AutFsm &fsm)
StateMachine< DdAutStateId, DdAutEventId > DdAutFsm
size_t minimizeDdaut(const std::string &fileName, const std::string &output)
void initialiseOptions(int argc, char *argv[], Poptions::options_description &desc, Poptions::variables_map &vm)
virtual bool readStream(std::istream &stream)
void printUsage(const po::options_description &desc)