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 |
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) |
int | enum_of_string (const std::string &enum_name, const std::string &value) |
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) |
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) |
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::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 | ) |
int awali::internal::enum_of_string | ( | const std::string & | enum_name, |
const std::string & | value | ||
) |
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 |
|
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 | ||
) |
|
static |