Vcsn  2.2
Be Rational
vcsn::detail::dotter< Aut > Class Template Reference

Format an automaton into Dot. More...

#include <dot.hh>

Inheritance diagram for vcsn::detail::dotter< Aut >:
Collaboration diagram for vcsn::detail::dotter< Aut >:

Public Member Functions

 dotter (const automaton_t &aut, std::ostream &out, format fmt)
 
std::ostream & operator() ()
 Print the automaton on the stream. More...
 
- Public Member Functions inherited from vcsn::detail::printer< Aut >
 printer (const automaton_t &aut, std::ostream &out)
 

Private Types

using super_t = printer< Aut >
 
using automaton_t = Aut
 
using state_t = state_t_of< automaton_t >
 
using polynomial_t = typename polynomialset_t::value_t
 
using transition_t = transition_t_of< automaton_t >
 
using weightset_t = weightset_t_of< automaton_t >
 
using weight_t = weight_t_of< automaton_t >
 

Private Member Functions

void print_prologue_ ()
 Start the dot graph. More...
 
void print_epilogue_ ()
 Finish the dot graph. More...
 
bool print_ (const std::string &sep, const std::string &kind, const weight_t &w)
 Print a TikZ attribute. More...
 
void print_state_ (state_t s)
 Pretty-print state s. More...
 
void print_states_ ()
 Print the states. More...
 
void print_transitions_ (const state_t src, const state_t dst, const polynomial_t &entry)
 Print the transitions between state src and state dst. More...
 
void print_transitions_ ()
 Print all the transitions, sorted by src state, then dst state. More...
 
void enable_ ()
 Enable the escaping of backslashes. More...
 
void disable_ ()
 Disable the escaping of backslashes. More...
 

Private Attributes

const chargray = "color = DimGray"
 
detail::io::filtering_ostream bos_
 The output stream, with a backslashify filter. More...
 
format format_ = {}
 Format for labels and weights. More...
 
std::unordered_set< state_t_of< Aut > > useful_ = useful_states(aut_, false)
 Useful states, without evaluating the lazy states. More...
 

Additional Inherited Members

- Public Types inherited from vcsn::detail::printer< Aut >
using state_t = state_t_of< automaton_t >
 
- Protected Types inherited from vcsn::detail::printer< Aut >
using automaton_t = Aut
 
using context_t = context_t_of< automaton_t >
 
using label_t = label_t_of< automaton_t >
 
using transition_t = transition_t_of< automaton_t >
 
using weightset_t = weightset_t_of< automaton_t >
 
using weight_t = weight_t_of< automaton_t >
 
using polynomialset_t = polynomialset< context_t >
 
using polynomial_t = typename polynomialset_t::value_t
 
using states_t = std::vector< state_t >
 A list of states. More...
 
- Protected Member Functions inherited from vcsn::detail::printer< Aut >
virtual std::string label_ (const label_t &l) const
 Convert a label to its representation. More...
 
virtual void print_transition_ (transition_t t) const
 Output the transition t. More...
 
void print_state_ (const state_t s)
 Output transitions, sorted lexicographically on (Label, Dest). More...
 
void print_transitions_ ()
 Output transitions, sorted lexicographically. More...
 
void list_states_ (const states_t &ss)
 List names of states in ss, preceded by ' '. More...
 
states_t initials_ ()
 The list of initial states, sorted. More...
 
states_t finals_ ()
 The list of final states, sorted. More...
 
- Protected Attributes inherited from vcsn::detail::printer< Aut >
automaton_t aut_
 The automaton we have to output. More...
 
std::ostream & os_
 Output stream. More...
 
const labelset_t_of< automaton_t > & ls_ = *aut_->labelset()
 Short-hand to the labelset. More...
 
const weightset_tws_ = *aut_->weightset()
 Short-hand to the weightset. More...
 
const polynomialset_t ps_ {aut_->context()}
 Short-hand to the polynomialset used to print the entries. More...
 

Detailed Description

template<Automaton Aut>
class vcsn::detail::dotter< Aut >

Format an automaton into Dot.

Template Parameters
Autan automaton type.

Definition at line 28 of file dot.hh.

Member Typedef Documentation

template<Automaton Aut>
using vcsn::detail::printer< Aut >::automaton_t = Aut
private

Definition at line 31 of file grail.hh.

template<Automaton Aut>
using vcsn::detail::printer< Aut >::polynomial_t = typename polynomialset_t::value_t
private

Definition at line 50 of file grail.hh.

template<Automaton Aut>
using vcsn::detail::printer< Aut >::state_t = state_t_of<automaton_t>
private

Definition at line 41 of file grail.hh.

template<Automaton Aut>
using vcsn::detail::dotter< Aut >::super_t = printer<Aut>
private

Definition at line 31 of file dot.hh.

template<Automaton Aut>
using vcsn::detail::printer< Aut >::transition_t = transition_t_of<automaton_t>
private

Definition at line 46 of file grail.hh.

template<Automaton Aut>
using vcsn::detail::printer< Aut >::weight_t = weight_t_of<automaton_t>
private

Definition at line 48 of file grail.hh.

template<Automaton Aut>
using vcsn::detail::printer< Aut >::weightset_t = weightset_t_of<automaton_t>
private

Definition at line 47 of file grail.hh.

Constructor & Destructor Documentation

template<Automaton Aut>
vcsn::detail::dotter< Aut >::dotter ( const automaton_t aut,
std::ostream &  out,
format  fmt 
)
inline

Definition at line 53 of file dot.hh.

References vcsn::detail::dotter< Aut >::bos_.

Member Function Documentation

template<Automaton Aut>
void vcsn::detail::dotter< Aut >::disable_ ( )
inlineprivate
template<Automaton Aut>
void vcsn::detail::dotter< Aut >::enable_ ( )
inlineprivate
template<Automaton Aut>
std::ostream& vcsn::detail::dotter< Aut >::operator() ( )
inline

Print the automaton on the stream.

Definition at line 71 of file dot.hh.

References vcsn::detail::printer< Aut >::os_, vcsn::detail::dotter< Aut >::print_epilogue_(), vcsn::detail::dotter< Aut >::print_prologue_(), vcsn::detail::dotter< Aut >::print_states_(), and vcsn::detail::dotter< Aut >::print_transitions_().

Here is the call graph for this function:

template<Automaton Aut>
bool vcsn::detail::dotter< Aut >::print_ ( const std::string &  sep,
const std::string &  kind,
const weight_t w 
)
inlineprivate

Print a TikZ attribute.

Parameters
septhe separator to print before (if we print something).
kindthe attribute name (e.g., "initial").
wthe associated weight (e.g., initial weight).

Definition at line 125 of file dot.hh.

References vcsn::detail::dotter< Aut >::bos_, vcsn::detail::dotter< Aut >::format_, and vcsn::detail::printer< Aut >::ws_.

Referenced by vcsn::detail::dotter< Aut >::print_state_().

template<Automaton Aut>
void vcsn::detail::dotter< Aut >::print_epilogue_ ( )
inlineprivate

Finish the dot graph.

Definition at line 115 of file dot.hh.

References vcsn::detail::dotter< Aut >::bos_.

Referenced by vcsn::detail::dotter< Aut >::operator()().

template<Automaton Aut>
void vcsn::detail::dotter< Aut >::print_prologue_ ( )
inlineprivate

Start the dot graph.

Definition at line 82 of file dot.hh.

References vcsn::detail::printer< Aut >::aut_, vcsn::detail::dotter< Aut >::bos_, vcsn::detail::dotter< Aut >::disable_(), vcsn::detail::dotter< Aut >::enable_(), vcsn::detail::dotter< Aut >::format_, vcsn::format::latex, and vcsn::format::sname.

Referenced by vcsn::detail::dotter< Aut >::operator()().

Here is the call graph for this function:

template<Automaton Aut>
void vcsn::detail::dotter< Aut >::print_state_ ( state_t  s)
inlineprivate
template<Automaton Aut>
void vcsn::detail::dotter< Aut >::print_states_ ( )
inlineprivate
template<Automaton Aut>
void vcsn::detail::dotter< Aut >::print_transitions_ ( const state_t  src,
const state_t  dst,
const polynomial_t entry 
)
inlineprivate

Print the transitions between state src and state dst.

Definition at line 283 of file dot.hh.

References vcsn::detail::printer< Aut >::aut_, vcsn::detail::dotter< Aut >::bos_, vcsn::detail::dotter< Aut >::disable_(), vcsn::detail::dotter< Aut >::enable_(), vcsn::detail::dotter< Aut >::format_, vcsn::detail::dotter< Aut >::gray, vcsn::has(), vcsn::detail::printer< Aut >::ps_, vcsn::to_string(), and vcsn::detail::dotter< Aut >::useful_.

Here is the call graph for this function:

template<Automaton Aut>
void vcsn::detail::dotter< Aut >::print_transitions_ ( )
inlineprivate

Print all the transitions, sorted by src state, then dst state.

Definition at line 326 of file dot.hh.

References vcsn::detail::all_out(), vcsn::detail::printer< Aut >::aut_, vcsn::detail::dotter< Aut >::format_, vcsn::format::latex, and vcsn::detail::printer< Aut >::ps_.

Referenced by vcsn::detail::dotter< Aut >::operator()().

Here is the call graph for this function:

Member Data Documentation

template<Automaton Aut>
const char* vcsn::detail::dotter< Aut >::gray = "color = DimGray"
private
template<Automaton Aut>
std::unordered_set<state_t_of<Aut> > vcsn::detail::dotter< Aut >::useful_ = useful_states(aut_, false)
private

Useful states, without evaluating the lazy states.

Definition at line 366 of file dot.hh.

Referenced by vcsn::detail::dotter< Aut >::print_state_(), and vcsn::detail::dotter< Aut >::print_transitions_().


The documentation for this class was generated from the following file: