aboutsummaryrefslogtreecommitdiffhomepage
path: root/parser.h
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-11 10:23:39 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-11 10:23:39 +0100
commit8c6c6afe144adca0635edd0438b9889b3c3df6e4 (patch)
tree09d486b60b130861211e5cb42a4d7c8d9b9514f1 /parser.h
parent54c58efbcdef773475508d982431a0a8ae215e3d (diff)
downloadsciteco-8c6c6afe144adca0635edd0438b9889b3c3df6e4.tar.gz
automatic support for string building characters
* also improved <n>I...$ insertion of chars from stack
Diffstat (limited to 'parser.h')
-rw-r--r--parser.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/parser.h b/parser.h
index 940dbd5..bff15c7 100644
--- a/parser.h
+++ b/parser.h
@@ -45,10 +45,34 @@ protected:
* string building commands and accumulation into a string
*/
class StateExpectString : public State {
+ struct Machine {
+ enum State {
+ STATE_START,
+ STATE_ESCAPED,
+ STATE_LOWER,
+ STATE_UPPER,
+ STATE_CTL_E,
+ STATE_CTL_EQ,
+ STATE_CTL_EU
+ } state;
+
+ enum Mode {
+ MODE_NORMAL,
+ MODE_UPPER,
+ MODE_LOWER
+ } mode;
+
+ bool toctl;
+
+ Machine() : state(STATE_START),
+ mode(MODE_NORMAL), toctl(false) {}
+ } machine;
+
public:
StateExpectString() : State() {}
private:
+ gchar *machine_input(gchar key);
State *custom(gchar chr);
protected: