diff options
Diffstat (limited to 'parser.h')
-rw-r--r-- | parser.h | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -50,6 +50,14 @@ private: State *custom(gchar chr); }; +class StateControl : public State { +public: + StateControl(); + +private: + State *custom(gchar chr); +}; + #include "goto.h" extern gint macro_pc; @@ -57,6 +65,7 @@ extern gint macro_pc; extern struct States { StateStart start; StateLabel label; + StateControl control; } states; extern enum Mode { @@ -64,6 +73,11 @@ extern enum Mode { MODE_PARSE_ONLY } mode; +#define BEGIN_EXEC(STATE) G_STMT_START { \ + if (mode != MODE_NORMAL) \ + return STATE; \ +} G_STMT_END + extern gchar *strings[2]; bool macro_execute(const gchar *macro); |