![]()  | 
  
    Awali
    
   Another Weighted Automata library 
   | 
 
Namespace containing implementation details of elements common to sttc and dyn layers (not stable). More...
Typedefs | |
| template<class S1 , class S2 > | |
| using | Concat = typename concat< S1, S2 >::type | 
| template<typename S1 , typename S2 > | |
| using | concat_sequence = typename concat_index_sequence< S1, S2 >::type | 
| using | enum_join_t = long | 
| template<std::size_t N> | |
| using | GenSeq = typename make_index_sequence< N >::type | 
Functions | |
| static void | check (std::istream &i, char e, std::string oth="") | 
| checks the next character  More... | |
| std::string | demangle (const char *name) | 
| enum_join_t | enum_of_string (const std::string &enum_name, const std::string &value) | 
| std::vector< enum_join_t > | enum_values (std::string const &enum_name) | 
| template<typename Fun , typename... Ts> | |
| void | for_ (const std::tuple< Ts... > &ts, Fun f) | 
| template<typename Fun , typename... Ts, size_t... I> | |
| void | for_ (Fun f, const std::tuple< Ts... > &ts, index_sequence< I... >) | 
| static std::string | get_first_attr (std::istream &i) | 
| template<typename T = direction_t> | |
| constexpr auto | index_of () -> typename std::enable_if< std::is_same< T, direction_t >::value, short unsigned >::type | 
| unsigned short | index_of_enum (std::string enum_name) | 
| static std::vector< std::string > | init_converter () | 
| template<typename T , typename P > | |
| std::false_type | is_iterable_aux1 (priority::BOTTOM< P >) | 
| template<typename T , typename P > | |
| auto | is_iterable_aux1 (priority::TOP< P >) -> decltype(std::begin(std::declval< T & >()) !=std::end(std::declval< T & >()), void(),++std::declval< decltype(std::begin(std::declval< T & >()))& >(), void(*std::begin(std::declval< T & >())), std::true_type{}) | 
| template<typename T , typename X , typename P > | |
| std::false_type | is_iterable_aux2 (priority::BOTTOM< P >) | 
| template<typename T , typename X , typename P > | |
| auto | is_iterable_aux2 (priority::TOP< P >) -> typename std::enable_if< std_all< is_iterable< T >::value, std::is_convertible< decltype(*std::begin(std::declval< T & >())), X >::value >::value, std::true_type >::type | 
| static std::ostream & | js_formate (std::ostream &o, std::istream &i) | 
| formates a json file  More... | |
| template<typename T = direction_t> | |
| auto | make_enum (std::string const &str) -> typename std::enable_if< std::is_same< T, direction_t >::value, T >::type | 
| auto | make_inv_tuple () -> std::tuple<> | 
| template<typename T , typename... Ts> | |
| auto | make_inv_tuple (T t, Ts &&... ts) -> decltype(std::tuple_cat(make_inv_tuple(std::forward< Ts >(ts)...), std::make_tuple(t))) | 
| template<typename... Ts> | |
| auto | make_inv_tuple (Ts &&... ts) -> decltype(reverse_tuple(std::make_tuple(std::forward< Ts >(ts)...))) | 
| template<typename Fun , typename... Ts> | |
| auto | map (const std::tuple< Ts... > &ts, Fun f) -> decltype(map_tuple_(f, ts, make_index_sequence< sizeof...(Ts)>())) | 
| Map a function on a tuple, return tuple of the results.  More... | |
| template<typename Fun , typename... Ts, size_t... I> | |
| auto | map_tuple_ (Fun f, const std::tuple< Ts... > &ts, index_sequence< I... >) -> decltype(map_variadic_(f, std::get< I >(ts)...)) | 
| template<typename Fun , typename T , typename... Ts> | |
| auto | map_variadic_ (Fun f, T t, Ts &&... ts) -> decltype(std::tuple_cat(std::make_tuple(f(t)), map_variadic_(f, ts...))) | 
| template<typename Fun > | |
| auto | map_variadic_ (Fun) -> decltype(std::make_tuple()) | 
| json_ast_t | metadata_ast (std::istream &i) | 
| static char | parsecst (std::istream &i) | 
| static void | parseignore (std::istream &i) | 
| static int | parseint (std::istream &i) | 
| static std::string | parsestring (std::istream &i) | 
| static char | peek (std::istream &i) | 
| peeks the next character  More... | |
| template<typename... Args> | |
| std::ostream & | print (const std::tuple< Args... > &args, std::ostream &o) | 
| template<typename... Ts> | |
| auto | reverse_tuple (const std::tuple< Ts... > &t) -> decltype(reverse_tuple(t, make_index_sequence< sizeof...(Ts)>())) | 
| template<typename... Ts, std::size_t... I> | |
| auto | reverse_tuple (const std::tuple< Ts... > &t, index_sequence< I... >) -> decltype(std::make_tuple(std::get< sizeof...(Ts) - 1 - I >(t)...)) | 
| static std::ostream & | tabs (std::ostream &o, int n) | 
| prints spaces  More... | |
| template<typename M > | |
| M::genset_t::letter_t | to_letter_of (M const &set, const std::string &str) | 
| template<typename M > | |
| M::value_t | to_value_of (M const &set, const std::string &str) | 
| template<typename M > | |
| M::genset_t::word_t | to_word_of (M const &set, const std::string &str) | 
| template<typename T = direction_t> | |
| auto | values_of () -> typename std::enable_if< std::is_same< T, direction_t >::value, std::vector< T > const & >::type | 
Variables | |
| static std::vector< std::string > const | converter = init_converter() | 
Namespace containing implementation details of elements common to sttc and dyn layers (not stable).
| struct awali::internal::and_ | 
| struct awali::internal::concat | 
| struct awali::internal::concat_index_sequence | 
| struct awali::internal::if_c | 
| struct awali::internal::if_c< false, T1, T2 > | 
| struct awali::internal::index_sequence | 
| Data Fields | ||
|---|---|---|
| typedef index_sequence | type | |
| struct awali::internal::int_range | 
| struct awali::internal::or_ | 
| struct awali::internal::reverseseq | 
| struct awali::internal::reverseseq< index_sequence< I1 > > | 
| Data Fields | ||
|---|---|---|
| typedef index_sequence< I1 > | type | |
| struct awali::internal::reverseseq< index_sequence< I1, I2... > > | 
| struct awali::internal::seqconcat | 
| struct awali::internal::std_all | 
| using awali::internal::Concat = typedef typename concat<S1, S2>::type | 
| using awali::internal::concat_sequence = typedef typename concat_index_sequence<S1, S2>::type | 
| using awali::internal::enum_join_t = typedef long | 
| using awali::internal::GenSeq = typedef typename make_index_sequence<N>::type | 
      
  | 
  static | 
checks the next character
| i | the input stream | 
| e | the expected character | 
| oth | other expected characters (previously tested with peek) return true if the next non blank character in i is e | 
| std::string awali::internal::demangle | ( | const char * | name | ) | 
| enum_join_t awali::internal::enum_of_string | ( | const std::string & | enum_name, | 
| const std::string & | value | ||
| ) | 
| std::vector<enum_join_t> awali::internal::enum_values | ( | std::string const & | enum_name | ) | 
| void awali::internal::for_ | ( | const std::tuple< Ts... > & | ts, | 
| Fun | f | ||
| ) | 
| void awali::internal::for_ | ( | Fun | f, | 
| const std::tuple< Ts... > & | ts, | ||
| index_sequence< I... > | |||
| ) | 
      
  | 
  static | 
      
  | 
  constexpr | 
| unsigned short awali::internal::index_of_enum | ( | std::string | enum_name | ) | 
      
  | 
  static | 
| std::false_type awali::internal::is_iterable_aux1 | ( | priority::BOTTOM< P > | ) | 
| auto awali::internal::is_iterable_aux1 | ( | priority::TOP< P > | ) | -> decltype(std::begin(std::declval< T & >()) !=std::end(std::declval< T & >()), void(),++std::declval< decltype(std::begin(std::declval< T & >()))& >(), void(*std::begin(std::declval< T & >())), std::true_type{}) | 
| std::false_type awali::internal::is_iterable_aux2 | ( | priority::BOTTOM< P > | ) | 
| auto awali::internal::is_iterable_aux2 | ( | priority::TOP< P > | ) | -> typename std::enable_if< std_all< is_iterable< T >::value, std::is_convertible< decltype(*std::begin(std::declval< T & >())), X >::value >::value, std::true_type >::type | 
      
  | 
  static | 
formates a json file
This function insert indentations and line breaks in order to pretty print a json file.
The rules are the following:
| o | the output stream | 
| i | the input stream sending a syntacticly correct json file | 
| auto awali::internal::make_enum | ( | std::string const & | str | ) | -> typename std::enable_if<std::is_same<T, direction_t >::value,T>::type | 
| auto awali::internal::make_inv_tuple | ( | ) | -> std::tuple<> | 
| auto awali::internal::make_inv_tuple | ( | T | t, | 
| Ts &&... | ts | ||
| ) | -> decltype(std::tuple_cat(make_inv_tuple(std::forward<Ts>(ts)...), std::make_tuple(t))) | 
| auto awali::internal::make_inv_tuple | ( | Ts &&... | ts | ) | -> decltype(reverse_tuple(std::make_tuple(std::forward<Ts>(ts)...))) | 
| auto awali::internal::map | ( | const std::tuple< Ts... > & | ts, | 
| Fun | f | ||
| ) | -> decltype(map_tuple_(f, ts, make_index_sequence<sizeof...(Ts)>())) | 
Map a function on a tuple, return tuple of the results.
| auto awali::internal::map_tuple_ | ( | Fun | f, | 
| const std::tuple< Ts... > & | ts, | ||
| index_sequence< I... > | |||
| ) | -> decltype(map_variadic_(f, std::get<I>(ts)...)) | 
| auto awali::internal::map_variadic_ | ( | Fun | f, | 
| T | t, | ||
| Ts &&... | ts | ||
| ) | -> decltype(std::tuple_cat(std::make_tuple(f(t)), map_variadic_(f, ts...))) | 
| auto awali::internal::map_variadic_ | ( | Fun | ) | -> decltype(std::make_tuple()) | 
| json_ast_t awali::internal::metadata_ast | ( | std::istream & | i | ) | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
peeks the next character
| i | the input stream return the value of the next non blank character in i | 
| std::ostream& awali::internal::print | ( | const std::tuple< Args... > & | args, | 
| std::ostream & | o | ||
| ) | 
| auto awali::internal::reverse_tuple | ( | const std::tuple< Ts... > & | t | ) | -> decltype(reverse_tuple(t, make_index_sequence<sizeof...(Ts)>())) | 
| auto awali::internal::reverse_tuple | ( | const std::tuple< Ts... > & | t, | 
| index_sequence< I... > | |||
| ) | -> decltype(std::make_tuple(std::get<sizeof...(Ts) - 1 - I>(t)...)) | 
      
  | 
  static | 
prints spaces
prints n spaces in the stream o.
| o | output stream | 
| n | number of spaces return the output stream | 
| M::genset_t::letter_t awali::internal::to_letter_of | ( | M const & | set, | 
| const std::string & | str | ||
| ) | 
| M::value_t awali::internal::to_value_of | ( | M const & | set, | 
| const std::string & | str | ||
| ) | 
| M::genset_t::word_t awali::internal::to_word_of | ( | M const & | set, | 
| const std::string & | str | ||
| ) | 
| auto awali::internal::values_of | ( | ) | -> typename std::enable_if<std::is_same<T, direction_t >::value, std::vector<T> const&>::type | 
      
  | 
  static |