10 #ifndef FAUDES_PD_GOTOGENERATOR_H
11 #define FAUDES_PD_GOTOGENERATOR_H
103 template <
class GlobalAttr,
class StateAttr,
class EventAttr,
class TransAttr>
249 void ConfigSet(
Idx index,
const std::set<Lr1Configuration>& configs);
259 std::set<Lr1Configuration>
const&
ConfigSet(
Idx index)
const;
269 Idx StateIndex(
const std::set<Lr1Configuration>& configs)
const;
277 virtual bool Valid(
void);
282 typedef TgotoGenerator<AttributeVoid, AttributeGotoState, AttributeVoid, AttributeGotoTransition>
287 #define THISGOTO TgotoGenerator<GlobalAttr, StateAttr, EventAttr, TransAttr>
288 #define BASEGOTO TaGenerator<GlobalAttr, StateAttr, EventAttr, TransAttr>
289 #define TEMPGOTO template <class GlobalAttr, class StateAttr, class EventAttr, class TransAttr>
294 FD_DG(
"GotoGenerator(" <<
this <<
")::GotoGenerator()");
298 TEMPGOTO THISGOTO::TgotoGenerator(
const TgotoGenerator& rOtherGen) :
BASEGOTO(rOtherGen) {
299 FD_DG(
"GotoGenerator(" <<
this <<
")::GotoGenerator(rOtherGen)");
303 TEMPGOTO THISGOTO::TgotoGenerator(
const vGenerator& rOtherGen) :
BASEGOTO(rOtherGen) {
305 FD_DG(
"GotoGenerator(" <<
this <<
")::GotoGenerator(rOtherGen)");
309 TEMPGOTO THISGOTO::TgotoGenerator(
const std::string& rFileName) :
BASEGOTO(rFileName) {
310 FD_DG(
"GotoGenerator(" <<
this <<
")::GotoGenerator(rOtherGen)");
319 res->EventSymbolTablep(BASEGOTO::mpEventSymbolTable);
320 res->mStateNamesEnabled=BASEGOTO::mStateNamesEnabled;
321 res->mReindexOnWrite=BASEGOTO::mReindexOnWrite;
346 return BASEGOTO::SetTransition(rTrans,attr);
352 Idx ev = BASEGOTO::InsEvent(
"dummy");
353 return SetTransition(Transition(x1,ev,x2), symbol);
357 return BASEGOTO::pTransRel->Attribute(rTrans).Symbol();
361 TEMPGOTO void THISGOTO::ConfigSet(
Idx index,
const std::set<Lr1Configuration>& configs){
362 BASEGOTO::pStates->Attributep(index)->ConfigSet(configs);
366 TEMPGOTO std::set<Lr1Configuration>
const& THISGOTO::ConfigSet(
Idx index)
const{
367 return BASEGOTO::pStates->Attributep(index)->ConfigSet();
371 TEMPGOTO Idx THISGOTO::StateIndex(
const std::set<Lr1Configuration>& configs)
const{
373 StateSet::Iterator stateit;
375 for(stateit = BASEGOTO::StatesBegin(); stateit != BASEGOTO::StatesEnd(); stateit++){
378 std::set<Lr1Configuration> curretConfigs = BASEGOTO::pStates->Attributep(*stateit)->ConfigSet();
390 TEMPGOTO bool THISGOTO::Valid(
void) {
391 FD_DV(
"GotoGenerator(" <<
this <<
")::Valid()");
393 if(!BASEGOTO::Valid())
return false;