Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Data Structures | Functions
common Namespace Reference

Data Structures

class  GlobalData
 Class to represent some global modifiers and data. More...
 
class  Permutation
 
class  ranked_symbol
 
class  SparseBoolVector
 
class  Streams
 Aggregation class for various standard streams defined by the library. More...
 
class  symbol_or_epsilon
 

Functions

template<class T >
void inc (T &object)
 
template<>
void inc (std::string &object)
 
template<>
void inc (ext::string &object)
 
template<class T , class ... Alphabets>
createUnique (T object, const Alphabets &... alphabets)
 
template<class SymbolType >
ext::ostreamoperator<< (ext::ostream &out, const common::ranked_symbol< SymbolType > &symbol)
 
template<class SymbolType >
ext::ostreamoperator<< (ext::ostream &out, const common::symbol_or_epsilon< SymbolType > &symbol)
 

Function Documentation

◆ createUnique()

template<class T , class ... Alphabets>
T common::createUnique ( object,
const Alphabets &...  alphabets 
)

Creates a unique object of type T. If given object is already used in sets alphabets, the function attempts to make it unique.

The code tries to call preincrement operator on the object as many times as needed until the result is not in any set alphabets.

Parameters
namename of the state
Exceptions
exception::CommonExceptionif the symbol could not be created
Returns
created symbol
Here is the call graph for this function:
Here is the caller graph for this function:

◆ inc() [1/3]

template<>
void common::inc ( ext::string object)
inline

◆ inc() [2/3]

template<>
void common::inc ( std::string &  object)
inline

◆ inc() [3/3]

template<class T >
void common::inc ( T &  object)
inline
Here is the caller graph for this function:

◆ operator<<() [1/2]

template<class SymbolType >
ext::ostream & common::operator<< ( ext::ostream out,
const common::ranked_symbol< SymbolType > &  symbol 
)
Here is the call graph for this function:

◆ operator<<() [2/2]

template<class SymbolType >
ext::ostream & common::operator<< ( ext::ostream out,
const common::symbol_or_epsilon< SymbolType > &  symbol 
)
Here is the call graph for this function: