aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.h')
-rw-r--r--src/parser.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/parser.h b/src/parser.h
index 26cd064..7ef6329 100644
--- a/src/parser.h
+++ b/src/parser.h
@@ -135,7 +135,12 @@ public:
virtual Type input(gchar chr) throw (State::Error) = 0;
};
+/* avoid circular dependency on qregisters.h */
+class QRegSpecMachine;
+
class StringBuildingMachine : public MicroStateMachine<gchar *> {
+ QRegSpecMachine *qregspec_machine;
+
enum Mode {
MODE_NORMAL,
MODE_UPPER,
@@ -146,15 +151,11 @@ class StringBuildingMachine : public MicroStateMachine<gchar *> {
public:
StringBuildingMachine() : MicroStateMachine(),
+ qregspec_machine(NULL),
mode(MODE_NORMAL), toctl(false) {}
+ ~StringBuildingMachine();
- void
- reset(void)
- {
- MicroStateMachine::reset();
- undo.push_var(mode) = MODE_NORMAL;
- undo.push_var(toctl) = false;
- }
+ void reset(void);
gchar *input(gchar chr) throw (State::Error);
};