Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Static Public Member Functions
grammar::AddRawRule Class Reference

#include <AddRawRule.h>

Static Public Member Functions

template<class TerminalSymbolType , class NonterminalSymbolType >
static bool addRawRule (LG< TerminalSymbolType, NonterminalSymbolType > &grammar, NonterminalSymbolType leftHandSide, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > rightHandSide)
 
template<class TerminalSymbolType , class NonterminalSymbolType >
static bool addRawRule (GNF< TerminalSymbolType, NonterminalSymbolType > &grammar, NonterminalSymbolType leftHandSide, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > rightHandSide)
 
template<class TerminalSymbolType , class NonterminalSymbolType >
static bool addRawRule (EpsilonFreeCFG< TerminalSymbolType, NonterminalSymbolType > &grammar, NonterminalSymbolType leftHandSide, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > rightHandSide)
 
template<class TerminalSymbolType , class NonterminalSymbolType >
static bool addRawRule (CNF< TerminalSymbolType, NonterminalSymbolType > &grammar, NonterminalSymbolType leftHandSide, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > rightHandSide)
 
template<class TerminalSymbolType , class NonterminalSymbolType >
static bool addRawRule (CFG< TerminalSymbolType, NonterminalSymbolType > &grammar, NonterminalSymbolType leftHandSide, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > rightHandSide)
 
template<class TerminalSymbolType , class NonterminalSymbolType >
static bool addRawRule (LeftLG< TerminalSymbolType, NonterminalSymbolType > &grammar, NonterminalSymbolType leftHandSide, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > rightHandSide)
 
template<class TerminalSymbolType , class NonterminalSymbolType >
static bool addRawRule (LeftRG< TerminalSymbolType, NonterminalSymbolType > &grammar, NonterminalSymbolType leftHandSide, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > rightHandSide)
 
template<class TerminalSymbolType , class NonterminalSymbolType >
static bool addRawRule (RightLG< TerminalSymbolType, NonterminalSymbolType > &grammar, NonterminalSymbolType leftHandSide, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > rightHandSide)
 
template<class TerminalSymbolType , class NonterminalSymbolType >
static bool addRawRule (RightRG< TerminalSymbolType, NonterminalSymbolType > &grammar, NonterminalSymbolType leftHandSide, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > rightHandSide)
 

Detailed Description

Implementation of transformation from grammar specific rules to common representation, i.e. A -> (N \cup T) where A \in N and N is set of nonterminal symbols and T is set of terminal symbols of the grammar.

Member Function Documentation

◆ addRawRule() [1/9]

template<class TerminalSymbolType , class NonterminalSymbolType >
bool grammar::AddRawRule::addRawRule ( CFG< TerminalSymbolType, NonterminalSymbolType > &  grammar,
NonterminalSymbolType  leftHandSide,
ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > >  rightHandSide 
)
static

\override

◆ addRawRule() [2/9]

template<class TerminalSymbolType , class NonterminalSymbolType >
bool grammar::AddRawRule::addRawRule ( CNF< TerminalSymbolType, NonterminalSymbolType > &  grammar,
NonterminalSymbolType  leftHandSide,
ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > >  rightHandSide 
)
static

\override

Here is the call graph for this function:

◆ addRawRule() [3/9]

template<class TerminalSymbolType , class NonterminalSymbolType >
bool grammar::AddRawRule::addRawRule ( EpsilonFreeCFG< TerminalSymbolType, NonterminalSymbolType > &  grammar,
NonterminalSymbolType  leftHandSide,
ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > >  rightHandSide 
)
static

\override

◆ addRawRule() [4/9]

template<class TerminalSymbolType , class NonterminalSymbolType >
bool grammar::AddRawRule::addRawRule ( GNF< TerminalSymbolType, NonterminalSymbolType > &  grammar,
NonterminalSymbolType  leftHandSide,
ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > >  rightHandSide 
)
static

\override

Here is the call graph for this function:

◆ addRawRule() [5/9]

template<class TerminalSymbolType , class NonterminalSymbolType >
bool grammar::AddRawRule::addRawRule ( LeftLG< TerminalSymbolType, NonterminalSymbolType > &  grammar,
NonterminalSymbolType  leftHandSide,
ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > >  rightHandSide 
)
static

\override

Here is the call graph for this function:

◆ addRawRule() [6/9]

template<class TerminalSymbolType , class NonterminalSymbolType >
bool grammar::AddRawRule::addRawRule ( LeftRG< TerminalSymbolType, NonterminalSymbolType > &  grammar,
NonterminalSymbolType  leftHandSide,
ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > >  rightHandSide 
)
static

\override

Here is the call graph for this function:

◆ addRawRule() [7/9]

template<class TerminalSymbolType , class NonterminalSymbolType >
bool grammar::AddRawRule::addRawRule ( LG< TerminalSymbolType, NonterminalSymbolType > &  grammar,
NonterminalSymbolType  leftHandSide,
ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > >  rightHandSide 
)
static

Get rules in most common format of rules as mapping from leftHandSide to rightHandSides represented as vectors of symbols.

Template Parameters
TerminalSymbolTypethe type of terminal symbols in the grammar
NonterminalSymbolTypethe type of nontermnal symbols in the grammar
Parameters
grammarthe source grammar of rules to transform
Returns
rules of the grammar in a common representation
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addRawRule() [8/9]

template<class TerminalSymbolType , class NonterminalSymbolType >
bool grammar::AddRawRule::addRawRule ( RightLG< TerminalSymbolType, NonterminalSymbolType > &  grammar,
NonterminalSymbolType  leftHandSide,
ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > >  rightHandSide 
)
static

\override

Here is the call graph for this function:

◆ addRawRule() [9/9]

template<class TerminalSymbolType , class NonterminalSymbolType >
bool grammar::AddRawRule::addRawRule ( RightRG< TerminalSymbolType, NonterminalSymbolType > &  grammar,
NonterminalSymbolType  leftHandSide,
ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > >  rightHandSide 
)
static

\override

Here is the call graph for this function:

The documentation for this class was generated from the following file: