From 9fec9e70a2e3f50ca88e75e0e40977571ec79d88 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Thu, 14 Feb 2013 02:59:03 +0100 Subject: use Q-Register micro state machine when parsing Q-Reg spec in string-building commands * allows referring to long Q-Register names in string arguments * currently, long names specified this way use their own string building char parsing (I'm unsure whether this makes any sense) --- src/parser.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/parser.h') 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 { + QRegSpecMachine *qregspec_machine; + enum Mode { MODE_NORMAL, MODE_UPPER, @@ -146,15 +151,11 @@ class StringBuildingMachine : public MicroStateMachine { 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); }; -- cgit v1.2.3