aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/qregisters.h
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2015-06-29 14:45:41 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2015-06-29 14:45:41 +0200
commitcbcda49236665b3721ee9c3c66aa4bad08d777b8 (patch)
treec52c6eb8092c56429578c639246914170604a290 /src/qregisters.h
parent9c19ab0c91b6ac3e91093a2fec12dbfdb021cfb5 (diff)
MicroStateMachine::input() returns whether a result was set now
* this means that QRegSpecMachine::input() no longer has to return a dummy QRegister in parse-only mode. This saves an unnecessary QRegister table lookup and speeds up parsing. * QRegSpecMachine can now be easily extended to behave differently when returning a Q-Register, e.g. simply returning NULL if a register does not exist, or returning a register by prefix. This is important for some planned commands. * StateExpectQReg::got_register() now gets a QRegister *. It can theoretically be NULL - still we don't have to check for NULL in most cases since NULL is only passed in parse-only mode.
Diffstat (limited to 'src/qregisters.h')
-rw-r--r--src/qregisters.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/qregisters.h b/src/qregisters.h
index dc560b8..f4f944d 100644
--- a/src/qregisters.h
+++ b/src/qregisters.h
@@ -389,7 +389,7 @@ public:
void reset(void);
- QRegister *input(gchar chr);
+ bool input(gchar chr, QRegister *&result);
};
/*
@@ -409,12 +409,12 @@ private:
State *custom(gchar chr);
protected:
- virtual State *got_register(QRegister &reg) = 0;
+ virtual State *got_register(QRegister *reg) = 0;
};
class StatePushQReg : public StateExpectQReg {
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StatePopQReg : public StateExpectQReg {
@@ -422,7 +422,7 @@ public:
StatePopQReg() : StateExpectQReg(true) {}
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StateEQCommand : public StateExpectQReg {
@@ -430,7 +430,7 @@ public:
StateEQCommand() : StateExpectQReg(true) {}
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StateLoadQReg : public StateExpectFile {
@@ -440,7 +440,7 @@ private:
class StateEPctCommand : public StateExpectQReg {
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StateSaveQReg : public StateExpectFile {
@@ -450,7 +450,7 @@ private:
class StateQueryQReg : public StateExpectQReg {
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StateCtlUCommand : public StateExpectQReg {
@@ -458,7 +458,7 @@ public:
StateCtlUCommand() : StateExpectQReg(true) {}
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StateEUCommand : public StateExpectQReg {
@@ -466,7 +466,7 @@ public:
StateEUCommand() : StateExpectQReg(true) {}
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StateSetQRegString : public StateExpectString {
@@ -483,7 +483,7 @@ private:
class StateGetQRegString : public StateExpectQReg {
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StateSetQRegInteger : public StateExpectQReg {
@@ -491,7 +491,7 @@ public:
StateSetQRegInteger() : StateExpectQReg(true) {}
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StateIncreaseQReg : public StateExpectQReg {
@@ -499,12 +499,12 @@ public:
StateIncreaseQReg() : StateExpectQReg(true) {}
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StateMacro : public StateExpectQReg {
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
class StateMacroFile : public StateExpectFile {
@@ -517,7 +517,7 @@ public:
StateCopyToQReg() : StateExpectQReg(true) {}
private:
- State *got_register(QRegister &reg);
+ State *got_register(QRegister *reg);
};
namespace States {