# Series [Algebra]

Collaboration diagram for Series:

## Files

file  krat_exp_parser.hh
This file declares the parse() function.

## Classes

struct  SeriesBase
Structural element of series K<A*> from a free monoid A* to a semiring K. More...
struct  series_traits
struct  dynamic_traits< algebra::SeriesBase< Self > >
class  MetaElement< algebra::SeriesBase< Self >, T >
Services of every series. More...
interface  semiring_virtual
Virtual pure class used by bison to deal with vaucanson's templated structures. More...
interface  krat_exp_virtual
Virtual pure class used by bison to deal with vaucanson's templated structures. More...
struct  krat_exp_proxy
Proxy over Vaucanson Element. More...
struct  semiring_proxy
Proxy over Vaucanson Semiring. More...

## Functions

template<typename S, typename T>
Element< S, T > transpose (const algebra::SeriesBase< S > &s, const T &t)
returns a fresh series that is the transposed of the argument.
template<typename S, typename T>
bool is_support_in_alphabet (const Element< S, T > &s)
Returns true if the support of the series is only composed of letters.
template<typename S1, typename S2, typename T1, typename T2>
void extract_support (Element< S1, T1 > &, Element< S2, T2 > &)
Make the first series be the support of the second.
template<class S, class T>
Element< S, T > hadamard (const Element< S, T > &lhs, const Element< S, T > &rhs)
Return the hadamard product of lhs and rhs.
template<class S, class T>
std::pair< bool, std::string > parse (const std::string &from, Element< S, T > &exp, bool lex_trace=false, bool parse_trace=false)
Parse a rational expression.

## Function Documentation

 std::pair vcsn::algebra::parse ( const std::string & from, Element< S, T > & exp, bool lex_trace = `false`, bool parse_trace = `false` ) ` [inline]`

Parse a rational expression.

This fonction parses any kind of rational expression using the bison generated parser.

The grammar is :

```     %start rexp

rexp ::= OPAR exp CPAR
|   rexp PLUS rexp
|   rexp TIMES rexp
|   rexp rexp
|   rexp STAR
|   WEIGHT rexp
|   rexp WEIGHT
|   ONE
|   ZERO
|   WORD
```

This function returns a pair which first element is a Boolean indicating whether an error occured or not. The second element is an error message when a parse error have been ecountered.

Parameters:
 from The rational expression, as a string. exp The element to store the result in. Be sure its set is correct before calling parse. lex_trace Enable lexer trace (for debuging purposes). parse_trace Enable parser trace (for debuging purposes).

Generated on Thu Jan 22 17:36:48 2009 for Vaucanson by  1.5.6