# Series
[Algebra]

Collaboration diagram for Series:

## Classes

struct | SeriesBase< Self >
| Structural element of series K<A*> from a free monoid A* to a semiring K. More...
struct | series_traits< T >
| Meta information about series. More...
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< S, T >
| Proxy over Vaucanson Element. More...
struct | semiring_proxy< S, T >
| Proxy over Vaucanson Semiring. More...

## Files

file | krat_exp_parser.hh

| This file declares the parse() function.

## 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< bool, std::string > parse | ( | const std::string & | from,
|  | Element< S, T > & | exp,
|  | bool | lex_trace = `false`,
|  | bool | parse_trace = `false` |
| ) |  |  |

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).

Author:
  Yann Régis-Gianas <yann@lrde.epita.fr>, Thomas Claveirole <thomas@lrde.epita.fr> Vivien Delmon <vivien@lrde.epita.fr>

Definition at line 222 of file krat_exp_parser.hxx.