From fad826dcfe095d57aa5faf6cc8a863069f65b0d6 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sat, 24 Nov 2012 17:56:29 +0100 Subject: 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 --- parser.h | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'parser.h') 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; } -- cgit v1.2.3