Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Data Structures | Namespaces | Functions
ToCNF.h File Reference
#include <grammar/Grammar.h>
#include <grammar/ContextFree/CFG.h>
#include <grammar/ContextFree/EpsilonFreeCFG.h>
#include <grammar/ContextFree/CNF.h>
#include <grammar/ContextFree/GNF.h>
#include <grammar/ContextFree/LG.h>
#include <grammar/Regular/LeftLG.h>
#include <grammar/Regular/LeftRG.h>
#include <grammar/Regular/RightLG.h>
#include <grammar/Regular/RightRG.h>
#include <common/createUnique.hpp>
#include "EpsilonRemover.h"
#include "SimpleRulesRemover.h"
#include <exception/CommonException.h>
Include dependency graph for ToCNF.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  grammar::simplify::ToCNF
 

Namespaces

namespace  grammar
 
namespace  grammar::simplify
 

Functions

template<class TerminalSymbolType , class NonterminalSymbolType >
void grammar::simplify::splitRule (ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > lhs, const ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > &rhs, grammar::CNF< TerminalSymbolType, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > > &result)
 
template<class T , class TerminalSymbolType = typename grammar::TerminalSymbolTypeOfGrammar < T >, class NonterminalSymbolType = typename grammar::NonterminalSymbolTypeOfGrammar < T >>
grammar::CNF< TerminalSymbolType, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > > grammar::simplify::convertInternal (const T &grammar)