6#ifndef SPIRITTOKENIZERPARSER_HPP
7#define SPIRITTOKENIZERPARSER_HPP
9#include <boost/config/warning_disable.hpp>
10#include <boost/spirit/include/qi.hpp>
11#include <boost/spirit/include/phoenix_core.hpp>
12#include <boost/spirit/include/phoenix_operator.hpp>
13#include <boost/spirit/include/phoenix_object.hpp>
14#include <boost/fusion/include/adapt_struct.hpp>
15#include <boost/fusion/include/io.hpp>
19namespace qi = boost::spirit::qi;
20namespace ascii = boost::spirit::ascii;
22#define skipper qi::space | ascii::char_('#') >> *(ascii::char_ - qi::eol) >> qi::eol
55 (std::vector<tokenizer_precondition>, preconditions)
56 (std::vector<std::string>, event)
57 (std::vector<tokenizer_postcondition>, postconditions)
60 (std::vector<std::string>, statuses)
69using ascii::space_type;
71template <
typename Iterator>
72struct tokenizer : qi::grammar<Iterator, tokenizer_automaton(), skipper_type_>
112 qi::rule<Iterator, std::vector<std::string>(), skipper_type_>
precondition;
113 qi::rule<Iterator, std::vector<std::string>(), skipper_type_>
event;
114 qi::rule<Iterator, std::vector<std::string>(), skipper_type_>
postcondition;
BOOST_FUSION_ADAPT_STRUCT(tokenizer_transition,(std::vector< tokenizer_precondition >, preconditions)(std::vector< std::string >, event)(std::vector< tokenizer_postcondition >, postconditions)(transitions, transition)(std::string, target)(std::vector< std::string >, statuses)) BOOST_FUSION_ADAPT_STRUCT(tokenizer_state
typedef BOOST_TYPEOF(skipper) skipper_type_
std::vector< std::string > tokenizer_postcondition
std::vector< std::string > tokenizer_precondition
std::vector< tokenizer_state > tokenizer_automaton
std::vector< tokenizer_transition > transitions
std::vector< tokenizer_postcondition > postconditions
std::vector< tokenizer_precondition > preconditions
std::vector< std::string > event
std::vector< std::string > statuses
qi::rule< Iterator, std::vector< std::string >(), skipper_type_ > postcondition
qi::rule< Iterator, std::vector< std::string >(), skipper_type_ > precondition
tokenizer::transitionsymbol_ transitionsymbol
qi::rule< Iterator, std::vector< std::string >(), skipper_type_ > event
qi::rule< Iterator, tokenizer_transition(), skipper_type_ > transition
qi::rule< Iterator, tokenizer_automaton(), skipper_type_ > start
qi::rule< Iterator, std::string(), skipper_type_ > identifier
qi::rule< Iterator, tokenizer_state(), skipper_type_ > state