17 #ifndef AWALI_ALPHABETS_PAIR_HH
18 # define AWALI_ALPHABETS_PAIR_HH
25 # include <functional>
26 #include <awali/common/json/node.cc>
34 template<
typename F,
typename S>
39 using letter_t = std::pair<first_letter_t, second_letter_t>;
40 using word_t = std::vector<letter_t>;
44 return "lap<"+F::sname()+
","+S::sname()+
">";
47 static std::ostream&
jsname(std::ostream& o)
49 o <<
"\"Pair\", \"entryTypes\":[";
55 virtual std::string
vname(
bool =
true)
const
89 static const std::string
c;
106 std::string message=
"Tuple letter expected ] got .";
111 typename S::letter_t y=S::parse_one_letter(s,p);
117 typename F::letter_t x=F::parse_one_letter(s,p);
132 typename F::letter_t x=F::conv_one_letter(i);
136 typename S::letter_t y=S::conv_one_letter(i);
The semiring of complex numbers.
Definition: c.hh:44
helper for manipulations of pair letters
Definition: pair.hh:35
static const std::string & separation_mark()
Definition: pair.hh:88
static bool is_letter(const letter_t &)
Definition: pair.hh:75
static std::string sname()
Definition: pair.hh:42
virtual std::string vname(bool=true) const
Definition: pair.hh:55
static std::ostream & jsname(std::ostream &o)
Definition: pair.hh:47
typename S::letter_t second_letter_t
Definition: pair.hh:38
static letter_t parse_one_letter(const std::string &s, size_t &p)
Definition: pair.hh:105
static letter_t transpose(letter_t l)
Definition: pair.hh:61
static letter_t conv_one_letter(std::istream &i)
Definition: pair.hh:128
static letter_t one_letter()
The reserved letter used to forge the "one" label (the unit, the identity).
Definition: pair.hh:82
typename F::letter_t first_letter_t
Definition: pair.hh:37
static letter_t special_letter()
The reserved letter used to forge the labels for initial and final transitions.
Definition: pair.hh:86
static std::string format(const letter_t l)
Definition: pair.hh:144
static bool equals(const letter_t &l1, const letter_t &l2)
Definition: pair.hh:69
std::vector< letter_t > word_t
Definition: pair.hh:40
std::pair< first_letter_t, second_letter_t > letter_t
Definition: pair.hh:39
static std::ostream & print(const letter_t &l, std::ostream &o)
Definition: pair.hh:94
automaton_t transpose(automaton_t aut, options_t opts={})
Transposes aut or returns a transposed copy of aut.
std::ostream & print(const std::tuple< Args... > &args, std::ostream &o)
Definition: tuple.hh:254
void eat(std::istream &is, char c)
Check lookahead character and advance.
Definition: stream.hh:62
RatExpSet::ratexp_t equals(const RatExpSet &rs, const typename RatExpSet::ratexp_t &v)
Definition: equal_visit.hh:153
auto format(const ValueSet &vs, const typename ValueSet::value_t &v, Args &&... args) -> std::string
Format v via vs.print.
Definition: stream.hh:109
Main namespace of Awali.
Definition: ato.hh:22
Exceptions thrown during parsing.
Definition: parse_exception.hh:26