aboutsummaryrefslogtreecommitdiffhomepage
path: root/parser.h
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-24 17:56:29 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-24 17:56:29 +0100
commitfad826dcfe095d57aa5faf6cc8a863069f65b0d6 (patch)
tree729df2493b9a56a023ac04868bb5069451e27f45 /parser.h
parent0e536bd36250419698fe884d01d5997581241d93 (diff)
downloadsciteco-fad826dcfe095d57aa5faf6cc8a863069f65b0d6.tar.gz
allow symbolic names (symbols) being specified for the scintilla (ES) command
* new syntax is <[lParam,[wParam,[msg]]]>ES[msg[,wParam[,lParam]]]$[lParam string]$ * symbols are matched case-insensitive, the leading SCI_ for message symbols may be omitted * added support for more multiple string arguments (for commands in general) * fixed "C conditional: succeeds for every alpanumeric character, dot, dollar or underscore * added SCLEX_ and SCE_ constants as symbols * updated teco.ini: using symbolic names is preferred since that way code does not depend on the current Scintilla version
Diffstat (limited to 'parser.h')
-rw-r--r--parser.h33
1 files changed, 22 insertions, 11 deletions
diff --git a/parser.h b/parser.h
index 79f9219..c21f872 100644
--- a/parser.h
+++ b/parser.h
@@ -117,10 +117,12 @@ class StateExpectString : public State {
gint nesting;
bool string_building;
+ bool last;
public:
- StateExpectString(bool _building = true)
- : State(), nesting(1), string_building(_building) {}
+ StateExpectString(bool _building = true, bool _last = true)
+ : State(), nesting(1),
+ string_building(_building), last(_last) {}
private:
gchar *machine_input(gchar key) throw (Error);
@@ -202,7 +204,15 @@ private:
State *custom(gchar chr) throw (Error);
};
-class StateScintilla : public StateExpectString {
+class StateScintilla_symbols : public StateExpectString {
+public:
+ StateScintilla_symbols() : StateExpectString(true, false) {}
+
+private:
+ State *done(const gchar *str) throw (Error);
+};
+
+class StateScintilla_lParam : public StateExpectString {
private:
State *done(const gchar *str) throw (Error);
};
@@ -241,14 +251,15 @@ private:
};
namespace States {
- extern StateStart start;
- extern StateControl control;
- extern StateFlowCommand flowcommand;
- extern StateCondCommand condcommand;
- extern StateECommand ecommand;
- extern StateScintilla scintilla;
- extern StateInsert insert;
- extern StateSearch search;
+ extern StateStart start;
+ extern StateControl control;
+ extern StateFlowCommand flowcommand;
+ extern StateCondCommand condcommand;
+ extern StateECommand ecommand;
+ extern StateScintilla_symbols scintilla_symbols;
+ extern StateScintilla_lParam scintilla_lparam;
+ extern StateInsert insert;
+ extern StateSearch search;
extern State *current;
}