diff options
Diffstat (limited to 'src/qregisters.h')
| -rw-r--r-- | src/qregisters.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/qregisters.h b/src/qregisters.h index a5b20cb..2e1772a 100644 --- a/src/qregisters.h +++ b/src/qregisters.h @@ -254,6 +254,27 @@ public: bool pop(QRegister ®); }; +class QRegSpecMachine : public MicroStateMachine<QRegister *> { + StringBuildingMachine string_machine; + + bool is_local; + gint nesting; + gchar *name; + +public: + QRegSpecMachine() : MicroStateMachine(), + is_local(false), nesting(0), name(NULL) {} + + ~QRegSpecMachine() + { + g_free(name); + } + + void reset(void); + + QRegister *input(gchar chr) throw (State::Error); +}; + /* * Command states */ @@ -262,7 +283,7 @@ public: * Super class for states accepting Q-Register specifications */ class StateExpectQReg : public State { - bool got_local; + QRegSpecMachine machine; public: StateExpectQReg(); |
