/*
 * ToAutomatonTopDown.cpp
 *
 * Created on: 23. 11. 2020
 * Author: Jan Travnicek
 */
#include "ToAutomatonTopDown.h"
#include <registration/AlgoRegistration.hpp>

namespace {

auto ToAutomatonTopDownCFG = registration::AbstractRegister < grammar::convert::ToAutomatonTopDown, automaton::NPDA < DefaultSymbolType, ext::variant < DefaultSymbolType, DefaultSymbolType >, unsigned >, const grammar::CFG < > & > ( grammar::convert::ToAutomatonTopDown::convert, "grammar" ).setDocumentation (
"Converts a context free grammar to a pushdown automaton by method of top down analysis.\n\
\n\
@param grammar the converted context free grammar\n\
@return pushdown automaton accepting the language generated by @p grammar");

auto ToAutomatonTopDownEpsilonFreeCFG = registration::AbstractRegister < grammar::convert::ToAutomatonTopDown, automaton::NPDA < DefaultSymbolType, ext::variant < DefaultSymbolType, DefaultSymbolType >, unsigned >, const grammar::EpsilonFreeCFG < > & > ( grammar::convert::ToAutomatonTopDown::convert, "grammar" ).setDocumentation (
"Converts a context free grammar to a pushdown automaton by method of top down analysis.\n\
\n\
@param grammar the converted context free grammar\n\
@return pushdown automaton accepting the language generated by @p grammar");

} /* namespace */
