pd_alg_opt.hGo to the documentation of this file.00001 /** @file pd_alg_opt.h functions for optimizations*/ 00002 00003 00004 /* Pushdown plugin for FAU Discrete Event Systems Library (libfaudes) 00005 00006 Copyright (C) 2013 Stefan Jacobi, Sven Schneider, Anne-Kathrin Hess 00007 00008 */ 00009 00010 00011 #ifndef FAUDES_PD_ALG_OPT_H 00012 #define FAUDES_PD_ALG_OPT_H 00013 00014 #include "corefaudes.h" 00015 #include "pd_pdgenerator.h" 00016 00017 namespace faudes { 00018 00019 /** 00020 * Delete stack symbols from the generator that are not used in any of the transitions 00021 * 00022 * @param pd 00023 * pushdown generator to trim 00024 * @return 00025 * trimmed pushdown generator 00026 */ 00027 PushdownGenerator TrimStackSymbols(const PushdownGenerator& pd); 00028 00029 /** 00030 * Remove certain transitions that can never be used because their pop symbol can never 00031 * be the stack top. 00032 * 00033 * @param pd 00034 * the generator from which to remove transitions 00035 * @return 00036 * generator with removed transitions 00037 */ 00038 PushdownGenerator RemoveUselessTransitions(const PushdownGenerator& pd); 00039 00040 /** 00041 * Get all possible stack top symbols for a state. 00042 * 00043 * @param pd 00044 * the pushdown generator containing the state 00045 * @param examinedStates 00046 * the already examined states 00047 * @param q 00048 * the state 00049 * @return 00050 * set of all possible stack top symbols 00051 */ 00052 StackSymbolSet GetPossibleStackTops(const PushdownGenerator& pd, const StateSet& examinedStates, Idx q); 00053 00054 00055 00056 } // namespace faudes 00057 00058 #endif libFAUDES 2.23h --- 2014.04.03 --- c++ api documentaion by doxygen |