23 m_automaton(automaton)
26 namespace qi = boost::spirit::qi;
27 namespace ascii = boost::spirit::ascii;
29 typedef std::string::const_iterator iterator_type;
35 std::ifstream file(fileName.c_str(), std::ifstream::binary);
36 if( ! file.is_open() ){
37 std::string error_message = std::string(
"cannot open file ") + fileName;
39 throw std::runtime_error(error_message);
44 std::string::const_iterator iter = str.begin();
45 std::string::const_iterator end = str.end();
53 std::vector<tokenizer_state>::const_iterator it, itBegin, itEnd;
56 for (; it != itEnd; it++)
59 LDEBUG <<
"Loading state " << state.
id;
61 std::vector<tokenizer_transition>::const_iterator tit, titEnd;
63 for (; tit != titEnd; tit++)
69 LDEBUG <<
" transition is " << newTransition;
73 std::vector<std::string>::const_iterator eventIt, eventItEnd;
74 eventIt = transition.
event.begin(); eventItEnd = transition.
event.end();
75 for (; eventIt!= eventItEnd; eventIt++)
77 LDEBUG <<
" Adding event " << *eventIt;
81 std::vector<tokenizer_precondition>::const_iterator preconditionsIt, preconditionsItEnd;
83 for (; preconditionsIt != preconditionsItEnd; preconditionsIt++)
85 LDEBUG <<
" Adding precondition";
88 tokenizer_precondition::const_iterator preIt, preItEnd;
89 preIt = precondition.begin(); preItEnd = precondition.end();
90 for (; preIt != preItEnd; preIt++)
97 std::vector<tokenizer_postcondition>::const_iterator postconditionsIt, postconditionsItEnd;
99 for (; postconditionsIt != postconditionsItEnd; postconditionsIt++)
101 LDEBUG <<
" Adding postcondition";
104 tokenizer_postcondition::const_iterator postIt, postItEnd;
105 postIt = postcondition.begin(); postItEnd = postcondition.end();
106 for (; postIt != postItEnd; postIt++)
108 LDEBUG <<
" " << *postIt <<
" ; postconditions size: " << newTransition->
conditions().
after().size();
117 std::vector<std::string>::const_iterator statusesIt, statusesItEnd;
118 statusesIt = transition.
statuses.begin(); statusesItEnd = transition.
statuses.end();
119 for (; statusesIt != statusesItEnd; statusesIt++)
123 LERROR <<
"Unknown status setting: " << *statusesIt;
137 LERROR <<
"Parsing of tokenizer file failed: " << fileName;