Vcsn  2.3
Be Rational
fwd.hh File Reference
#include <memory>
#include <vcsn/core/rat/identities.hh>
#include <vcsn/misc/type_traits.hh>
#include <vcsn/weightset/weightset.hh>
Include dependency graph for fwd.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  vcsn::rat::info< ExpSet >
 Gather information of the number of the different node types. More...
 
class  vcsn::rat::printer< ExpSet >
 Pretty-printer for rational expressions. More...
 
class  vcsn::rat::atom< Context >
 
class  vcsn::rat::inner< Context >
 An inner node. More...
 
class  vcsn::rat::leaf< Context >
 The root from which to derive the final node types. More...
 
class  vcsn::rat::node< Context >
 The abstract parameterized, root for all rational expression types. More...
 
class  vcsn::rat::const_visitor< Context >
 
class  vcsn::rat::constant< Type, Context >
 
class  vcsn::rat::unary< Type, Context >
 
class  vcsn::rat::variadic< Type, Context >
 An inner node with multiple children. More...
 
class  vcsn::rat::tuple< Context, Enable >
 Implementation of nodes of tuple of rational expressions. More...
 
class  vcsn::rat::weight_node< Type, Context >
 An inner node implementing a weight. More...
 
struct  vcsn::rat::expansionset< ExpSet >
 
class  vcsn::rat::expressionset_impl< Context >
 A typed expression set. More...
 

Namespaces

 vcsn
 
 vcsn::rat
 

Macros

#define DEFINE(Node)
 

Typedefs

using vcsn::rat::exp_t = std::shared_ptr< const exp >
 
template<typename Context >
using vcsn::rat::zero = constant< type_t::zero, Context >
 
template<typename Context >
using vcsn::rat::one = constant< type_t::one, Context >
 
template<typename Context >
using vcsn::rat::complement = unary< type_t::complement, Context >
 
template<typename Context >
using vcsn::rat::star = unary< type_t::star, Context >
 
template<typename Context >
using vcsn::rat::transposition = unary< type_t::transposition, Context >
 
template<typename Context >
using vcsn::rat::compose = variadic< type_t::compose, Context >
 
template<typename Context >
using vcsn::rat::conjunction = variadic< type_t::conjunction, Context >
 
template<typename Context >
using vcsn::rat::infiltrate = variadic< type_t::infiltrate, Context >
 
template<typename Context >
using vcsn::rat::ldivide = variadic< type_t::ldivide, Context >
 
template<typename Context >
using vcsn::rat::mul = variadic< type_t::mul, Context >
 
template<typename Context >
using vcsn::rat::shuffle = variadic< type_t::shuffle, Context >
 
template<typename Context >
using vcsn::rat::add = variadic< type_t::add, Context >
 
template<typename Context >
using vcsn::rat::lweight = weight_node< type_t::lweight, Context >
 
template<typename Context >
using vcsn::rat::rweight = weight_node< type_t::rweight, Context >
 
template<typename Context >
using vcsn::rat::expression = std::shared_ptr< const node< Context >>
 
template<typename Context >
using vcsn::expressionset = weightset_mixin< rat::expressionset_impl< Context >>
 
template<typename ExpSet >
using vcsn::expansionset = rat::expansionset< ExpSet >
 

Enumerations

enum  vcsn::rat::type_t {
  vcsn::rat::type_t::zero, vcsn::rat::type_t::one, vcsn::rat::type_t::atom, vcsn::rat::type_t::add,
  vcsn::rat::type_t::mul, vcsn::rat::type_t::ldivide, vcsn::rat::type_t::conjunction, vcsn::rat::type_t::shuffle,
  vcsn::rat::type_t::infiltrate, vcsn::rat::type_t::star, vcsn::rat::type_t::transposition, vcsn::rat::type_t::lweight,
  vcsn::rat::type_t::rweight, vcsn::rat::type_t::complement, vcsn::rat::type_t::tuple, vcsn::rat::type_t::compose
}
 The possible types of expressions. More...
 

Functions

template<typename ExpSet >
info< ExpSet > vcsn::rat::make_info (const typename ExpSet::value_t &r)
 
template<typename ExpSet >
printer< ExpSet > vcsn::rat::make_printer (const ExpSet &rs, std::ostream &out)
 
constexpr bool vcsn::rat::is_constant (type_t t)
 Whether is a constant (\z or \e). More...
 
constexpr bool vcsn::rat::is_unary (type_t t)
 Whether star, complement. More...
 
constexpr bool vcsn::rat::is_variadic (type_t t)
 Whether one of the variadic types. More...
 
std::ostream & vcsn::rat::operator<< (std::ostream &o, type_t t)
 Print a expression type. More...
 
template<typename ExpSet >
size_t vcsn::rat::size (const ExpSet &rs, const typename ExpSet::value_t &r)
 

Macro Definition Documentation

#define DEFINE (   Node)
Value:
template <typename Context> \
class Node

Definition at line 89 of file fwd.hh.