14 #include<boost/program_options.hpp> 23 #include"../AutomataInterface.hh" 30 namespace Poptions = boost::program_options;
38 const string program(
"dd-determine");
54 Poptions::options_description & desc,
55 Poptions::variables_map & vm) {
57 (
"help,h",
"produce help message")
58 (
"file,f", Poptions::value< string >(),
"automaton file (.aut/.ddaut format)")
59 (
"output,o", Poptions::value< string >(),
"outfile name (.aut/.ddaut format)");
60 Poptions::positional_options_description p;
62 Poptions::store(Poptions::command_line_parser(argc, argv).
options(desc).positional(p).run(), vm);
84 size_t determineAut(
const std::string & fileName,
const std::string & output)
88 ifstream file(fileName.c_str());
122 ifstream file(fileName.c_str());
143 return printCommandLineError(
Msg(
"Error when converting the DdAutFileDescriptor from %1% to a Finite Automaton")%fileName);
159 return printCommandLineError(
Msg(
"Error when converting the DdAutFileDescriptor from %1% to a Finite State Machine")%fileName);
179 size_t determineFsm(
const std::string & fileName,
const std::string & output)
209 int main(
int argc,
char** argv)
211 std::string fileName, output;
214 Poptions::options_description desc(
"Options");
215 Poptions::variables_map vm;
223 fileName = vm[
"file"].as<std::string>();
225 if(vm.count(
"output"))
227 output = vm[
"output"].as<std::string>();
230 catch(Poptions::required_option & e)
234 catch(Poptions::error & e)
size_t determineAut(const std::string &fileName, const std::string &output)
size_t writeAut(const Diades::Automata::Experimental::AutFsm &fsm, const std::string &output, const FileSuffixes &suffixes)
StateMachine< AutStateId, AutEventId > AutFsm
int main(int argc, char **argv)
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 determineDdaut(const std::string &fileName, const std::string &output)
vector< string > options(numberOfOptions)
void determine(const Fsm &machine, Fsm &deterministicMachine, StateCreator &creator)
bool match(const std::string &fileName, const std::string &suffix) const
FileSuffixes suffixes({"aut","ddaut"})
size_t writeFiniteStateMachine(const Diades::Automata::Experimental::ConstManagedDdAutFsm &mfsm, const std::string &output, const FileSuffixes &suffixes)
EventManager< DdAutEventLabel, DdAutEventId > DdAutEventManager
bool fromAutFile(std::istream &stream, AutFsm &fsm)
StateMachine< DdAutStateId, DdAutEventId > DdAutFsm
void initialiseOptions(int argc, char *argv[], Poptions::options_description &desc, Poptions::variables_map &vm)
size_t determineFsm(const std::string &fileName, const std::string &output)
const string program("dd-determine")
virtual bool readStream(std::istream &stream)
void printUsage(const po::options_description &desc)