Vcsn  2.1
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, bool dot2tex=false)
 
std::ostream & operator() ()
 Print the automaton on the stream. More...
 
- Public Member Functions inherited from vcsn::detail::outputter< Aut >
 outputter (const automaton_t &aut, std::ostream &out)
 

Private Types

using super_t = outputter< 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 format_ (const std::string &sep, const std::string &kind, const weight_t &w)
 Format a TikZ attribute. More...
 
void print_state_ (state_t s)
 Pretty-print state s for both dot and dot2tex. 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...
 
bool dot2tex_ = false
 Whether to format for dot2tex. 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::outputter< Aut >
using state_t = state_t_of< automaton_t >
 
- Protected Types inherited from vcsn::detail::outputter< 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::outputter< Aut >
virtual std::string label_ (const label_t &l) const
 Convert a label to its representation. More...
 
virtual void output_transition_ (transition_t t) const
 Output the transition t. More...
 
void output_state_ (const state_t s)
 Output transitions, sorted lexicographically on (Label, Dest). More...
 
void output_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::outputter< 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<typename 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<typename Aut>
using vcsn::detail::outputter< Aut >::automaton_t = Aut
private

Definition at line 31 of file grail.hh.

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

Definition at line 50 of file grail.hh.

template<typename Aut>
using vcsn::detail::outputter< Aut >::state_t = state_t_of<automaton_t>
private

Definition at line 41 of file grail.hh.

template<typename Aut>
using vcsn::detail::dotter< Aut >::super_t = outputter<Aut>
private

Definition at line 31 of file dot.hh.

template<typename Aut>
using vcsn::detail::outputter< Aut >::transition_t = transition_t_of<automaton_t>
private

Definition at line 46 of file grail.hh.

template<typename Aut>
using vcsn::detail::outputter< Aut >::weight_t = weight_t_of<automaton_t>
private

Definition at line 48 of file grail.hh.

template<typename Aut>
using vcsn::detail::outputter< Aut >::weightset_t = weightset_t_of<automaton_t>
private

Definition at line 47 of file grail.hh.

Constructor & Destructor Documentation

template<typename Aut>
vcsn::detail::dotter< Aut >::dotter ( const automaton_t aut,
std::ostream &  out,
bool  dot2tex = false 
)
inline

Definition at line 53 of file dot.hh.

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

Member Function Documentation

template<typename Aut>
void vcsn::detail::dotter< Aut >::disable_ ( )
inlineprivate

Disable the escaping of backslashes.

Definition at line 354 of file dot.hh.

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

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

template<typename Aut>
void vcsn::detail::dotter< Aut >::enable_ ( )
inlineprivate

Enable the escaping of backslashes.

Definition at line 347 of file dot.hh.

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

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

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

Format 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 123 of file dot.hh.

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

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

template<typename Aut>
std::ostream& vcsn::detail::dotter< Aut >::operator() ( )
inline

Print the automaton on the stream.

Definition at line 72 of file dot.hh.

References vcsn::detail::outputter< 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<typename Aut>
void vcsn::detail::dotter< Aut >::print_epilogue_ ( )
inlineprivate

Finish the dot graph.

Definition at line 114 of file dot.hh.

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

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

template<typename Aut>
void vcsn::detail::dotter< Aut >::print_prologue_ ( )
inlineprivate
template<typename Aut>
void vcsn::detail::dotter< Aut >::print_state_ ( state_t  s)
inlineprivate

Pretty-print state s for both dot and dot2tex.

Definition at line 142 of file dot.hh.

References vcsn::detail::outputter< Aut >::aut_, vcsn::detail::dotter< Aut >::bos_, vcsn::detail::dotter< Aut >::disable_(), vcsn::detail::dotter< Aut >::dot2tex_, vcsn::detail::dotter< Aut >::enable_(), vcsn::detail::dotter< Aut >::format_(), vcsn::detail::dotter< Aut >::gray, vcsn::has(), vcsn::format::latex, vcsn::format::text, and vcsn::detail::dotter< Aut >::useful_.

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

Here is the call graph for this function:

template<typename Aut>
void vcsn::detail::dotter< Aut >::print_states_ ( )
inlineprivate

Print the states.

Definition at line 222 of file dot.hh.

References vcsn::detail::outputter< Aut >::aut_, vcsn::detail::dotter< Aut >::bos_, vcsn::detail::dotter< Aut >::dot2tex_, vcsn::detail::outputter< Aut >::finals_(), vcsn::detail::outputter< Aut >::initials_(), and vcsn::detail::dotter< Aut >::print_state_().

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

Here is the call graph for this function:

template<typename 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 281 of file dot.hh.

References vcsn::detail::outputter< Aut >::aut_, vcsn::detail::dotter< Aut >::bos_, vcsn::detail::dotter< Aut >::disable_(), vcsn::detail::dotter< Aut >::dot2tex_, vcsn::detail::dotter< Aut >::enable_(), vcsn::detail::dotter< Aut >::gray, vcsn::has(), vcsn::format::latex, vcsn::detail::outputter< Aut >::ps_, vcsn::format::text, vcsn::to_string(), and vcsn::detail::dotter< Aut >::useful_.

Here is the call graph for this function:

template<typename 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::outputter< Aut >::aut_, vcsn::detail::dotter< Aut >::dot2tex_, and vcsn::detail::outputter< Aut >::ps_.

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

Member Data Documentation

template<typename Aut>
bool vcsn::detail::dotter< Aut >::dot2tex_ = false
private
template<typename Aut>
const char* vcsn::detail::dotter< Aut >::gray = "color = DimGray"
private
template<typename 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 365 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: