aboutsummaryrefslogtreecommitdiffhomepage
path: root/parser.h
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-12 21:44:46 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-12 21:44:46 +0100
commit3bb56ae078e80b3d228be092dc66962760d9a892 (patch)
treef167d903ce5aa5e08fd6729f10ab47a931027e2d /parser.h
parent1dbea939c15ba5bf16484216950f7bd53cd47584 (diff)
downloadsciteco-3bb56ae078e80b3d228be092dc66962760d9a892.tar.gz
distinguish between GOTO, LOOP and CONDITIONAL parse-only modes: fixes loop branching in conditionals
e.g. <0"=1;'...do something...> now works as expected
Diffstat (limited to 'parser.h')
-rw-r--r--parser.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/parser.h b/parser.h
index fca2c20..edd8adf 100644
--- a/parser.h
+++ b/parser.h
@@ -166,11 +166,13 @@ namespace States {
extern enum Mode {
MODE_NORMAL = 0,
- MODE_PARSE_ONLY
+ MODE_PARSE_ONLY_GOTO,
+ MODE_PARSE_ONLY_LOOP,
+ MODE_PARSE_ONLY_COND
} mode;
#define BEGIN_EXEC(STATE) G_STMT_START { \
- if (mode != MODE_NORMAL) \
+ if (mode > MODE_NORMAL) \
return STATE; \
} G_STMT_END