pd_alg_sub.cpp File Reference
#include "pd_alg_sub.h"

Go to the source code of this file.

Namespaces

namespace  faudes
 libFAUDES resides within the namespace faudes.

Functions

PushdownGenerator faudes::AnnotatePdStates (const std::string word, const PushdownGenerator &pd)
 Associates each state of the generator with an annotation.
PushdownGenerator faudes::RenameStackSymbold (const std::string word, const PushdownGenerator &pd)
 Adds an annotation to each stack symbol of the generator.
PushdownGenerator faudes::Nda (const PushdownGenerator &pd)
 Input must have passed SPDA() ! Remodels the generator to prevent double (or multiple) acceptance of the same input string.
void faudes::ReachableStateMap (const PushdownGenerator &rPd, std::map< Idx, StateSet > &rMap)
 Fill map.
bool faudes::PushdownTrim (PushdownGenerator &rPd, const uint n, bool debug=false)
 Make generator trim.
PushdownGenerator faudes::SPDA (const PushdownGenerator &pd, TransformationHistoryVec *pTransformHistory=NULL)
 (previously called Rpp) Restricts a pushdown generator to a simple pushdown generator SPDA with transitions that are either read (p,a,lambda,lambda,q), pop (p,lambda,x,lambda,q) or push (p,lambda,x,yx,q).
PushdownGenerator faudes::RebuildFromSPDA (const PushdownGenerator &rSPDA, const TransformationHistoryVec &rTransformHistory)
 Input must have passed SPDA() ! Rebuild a pushdown generator which passed SPDA as far as possible.
PushdownGenerator faudes::RemainingPd (const Grammar &rGr, const PushdownGenerator &pd)
 Input must have passed SPDA() ! Compares the given pushdown generator with the given grammar and removes all transition, which cannot be find in productions of the grammar.
PushdownGenerator faudes::RemoveLambdaPop (const PushdownGenerator &pd)
 (previously called Rep0) Removes all transitions popping lambda.
Grammar faudes::Sp2Lr (const PushdownGenerator &rPd, uint n=0, bool ignorReducible=false, bool debug=false)
 Input must have passed SPDA() and Nda() ! Transform a simple pushdown generator into a context free grammar.
std::set< Nonterminal > faudes::Filter (const std::set< Nonterminal > &symbolSet, const GrammarSymbolVector &w)
 Extract all symbols from the word that are in the symbol set.
std::set< Nonterminal > faudes::Rnpp1 (const Grammar &gr, const std::set< Nonterminal > &ntSet)
 Find all nonterminals that are eliminable in one step, assuming that a certain set of nonterminals has already been eliminated.
std::set< Nonterminal > faudes::Rnppl (const Grammar &gr, const std::set< Nonterminal > &ntSet)
 Find all nonterminals that are eliminable in as many steps as needed, assuming that a certain set of nonterminals has already been eliminated.
Grammar faudes::Rnpp (const Grammar &gr)
 Remove all productions from a grammar that are nonproductive, i.
Grammar faudes::Rup (const Grammar &gr)
 Remove all unreachable productions and nonterminals from the grammar.
PushdownGenerator faudes::RemoveMultPop (const PushdownGenerator &pd)
 (previously called Rep2) Removes transitions popping more than one stack symbol.
uint faudes::InTransitionSize (Idx trg, const PushdownGenerator &rPd)
 Getting the number of incoming transitions of a state.
std::set< std::pair
< Transition, Transition > > 
faudes::PossibleAdjacentMerges (Idx q, const PushdownGenerator &pd)
bool faudes::CombinedTransitions (Idx q, PushdownGenerator &rPd,StateSet &next, StateSet &done)
 Merge transitions from state q with adjacent transitions without changing the marked language.
void faudes::MergeAdjacentTransitions (PushdownGenerator &rPd)
 Merge adjacent transitions until no more mergers are possible.

libFAUDES 2.26g --- 2015.08.17 --- c++ api documentaion by doxygen