00001 #ifndef _WHEN_H
00002 #define _WHEN_H
00003
00004 #include "CParsedFile.h"
00005 #include "xi-BlockConstruct.h"
00006
00007 namespace xi {
00008
00009 class WhenConstruct : public BlockConstruct {
00010 public:
00011
00012 CStateVar* speculativeState;
00013 WhenConstruct(EntryList* el, SdagConstruct* body);
00014 void generateCode(XStr& decls, XStr& defs, Entry* entry);
00015 void generateEntryList(std::list<CEntry*>& CEntrylist, WhenConstruct* thisWhen);
00016 void propagateState(std::list<EncapState*>, std::list<CStateVar*>&,
00017 std::list<CStateVar*>&, int);
00018 void generateEntryName(XStr& defs, Entry* e, int curEntry);
00019 void generateWhenCode(XStr& op, int indent);
00020 void numberNodes();
00021 };
00022
00023 }
00024
00025 #endif // ifndef _WHEN_H