15 #include<boost/program_options.hpp> 19 #include"../AutomataInterface.hh" 28 namespace Poptions = boost::program_options;
37 const string briefcomment(
": this program exports any input as a dot file (output file or standard output).");
52 Poptions::options_description & desc,
53 Poptions::variables_map & vm)
56 (
"help,h",
"produce help message")
57 (
"file,f", Poptions::value< string >(),
"file (.aut/.ddaut/.ddsync format)")
58 (
"output,o", Poptions::value< string >(),
"outfile name (.dot format)")
60 Poptions::positional_options_description p;
63 Poptions::store(Poptions::command_line_parser(argc, argv).
options(desc).positional(p).run(), vm);
78 ifstream file(fileName.c_str());
94 toDot(std::cout, fsm);
98 ofstream outfile(output.c_str());
119 ifstream file(fileName.c_str());
140 return printCommandLineError(
Msg(
"Error when converting the DdAutFileDescriptor from %1% to a Finite Automaton") % fileName);
144 toDot(std::cout, fa,statePrinter,eventPrinter);
148 ofstream outfile(output.c_str());
149 if(outfile.is_open())
151 toDot(outfile, fa,statePrinter,eventPrinter);
166 ifstream rulefile(fileName.c_str());
167 if(!rulefile.is_open())
172 std::string errorMsg;
173 if(!descriptor.
readStream(rulefile, errorMsg))
176 % fileName % errorMsg);
180 toDot(std::cout, descriptor);
184 ofstream outfile(output.c_str());
185 if(outfile.is_open())
187 toDot(outfile, descriptor);
207 return printCommandLineError(
Msg(
"Expecting an output file with a name ending with .dot, but I read %1%") % output);
228 return printCommandLineError(
Msg(
"Expecting a file with a name ending with .aut/.ddaut/.ddsync, but I read %1%") % fileName);
244 std::string fileName, output;
247 Poptions::options_description desc(
"Options");
248 Poptions::variables_map vm;
256 fileName = vm[
"file"].as<std::string> ();
258 if(vm.count(
"output"))
260 output = vm[
"output"].as<std::string>();
263 catch(Poptions::required_option & e)
267 catch(Poptions::error & e)
StateMachine< AutStateId, AutEventId > AutFsm
StatePropertyManager< DdAutStateLabel, DdAutStateId > DdAutStateManager
virtual bool readStream(std::istream &stream, std::string &error)
const string briefcomment(": this program exports any input as a dot file (output file or standard output).")
const size_t ERROR_UNHANDLED_EXCEPTION
size_t printCommandLineError(const string &msg)
bool faFromDescriptor(const DdAutFileDescriptor &descriptor, DdAutFA &fa, DdAutStateManager &sManager, DdAutEventManager &eManager)
size_t exportDdSyncToDot(const std::string &fileName, const std::string &output)
vector< string > options(numberOfOptions)
bool match(const std::string &fileName, const std::string &suffix) const
size_t exportDdAutToDot(const std::string &fileName, const std::string &output)
ostream & toDot(ostream &os, const StateMachine &fsm, const PrintStateProperty &statePrinter, const PrintEventInfo &eventPrinter)
void initialiseOptions(int argc, char *argv[], Poptions::options_description &desc, Poptions::variables_map &vm)
FiniteAutomaton< DdAutStateId, DdAutEventId > DdAutFA
size_t exportToDot(const string &fileName, const string &output)
FileSuffixes suffixes({"aut", "ddaut", "ddsync", "dot"})
EventManager< DdAutEventLabel, DdAutEventId > DdAutEventManager
bool fromAutFile(std::istream &stream, AutFsm &fsm)
const string program("dd-dot")
size_t exportAutToDot(const std::string &fileName, const std::string &output)
int main(int argc, char **argv)
virtual bool readStream(std::istream &stream)
void printUsage(const po::options_description &desc)