aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/preproc
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/preproc')
-rw-r--r--src/interfaces/ecpg/preproc/ecpg.trailer6
-rw-r--r--src/interfaces/ecpg/preproc/output.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer
index d273070dabf..f60a62099d4 100644
--- a/src/interfaces/ecpg/preproc/ecpg.trailer
+++ b/src/interfaces/ecpg/preproc/ecpg.trailer
@@ -1454,6 +1454,12 @@ action : CONTINUE_P
$<action>$.command = NULL;
$<action>$.str = mm_strdup("break");
}
+ | DO CONTINUE_P
+ {
+ $<action>$.code = W_CONTINUE;
+ $<action>$.command = NULL;
+ $<action>$.str = mm_strdup("continue");
+ }
| SQL_CALL name '(' c_args ')'
{
$<action>$.code = W_DO;
diff --git a/src/interfaces/ecpg/preproc/output.c b/src/interfaces/ecpg/preproc/output.c
index 0479c93c991..a55bf2b06a7 100644
--- a/src/interfaces/ecpg/preproc/output.c
+++ b/src/interfaces/ecpg/preproc/output.c
@@ -51,6 +51,9 @@ print_action(struct when *w)
case W_BREAK:
fprintf(base_yyout, "break;");
break;
+ case W_CONTINUE:
+ fprintf(base_yyout, "continue;");
+ break;
default:
fprintf(base_yyout, "{/* %d not implemented yet */}", w->code);
break;