From 215c18ebc86b116827d3af19ca0779316e1a0e15 Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 8 Aug 2022 08:48:21 +0200 Subject: break & continue --- bootstrap/all.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'bootstrap/all.h') diff --git a/bootstrap/all.h b/bootstrap/all.h index 3145674..1629455 100644 --- a/bootstrap/all.h +++ b/bootstrap/all.h @@ -35,6 +35,7 @@ struct span { _(break) \ _(case) \ _(const) \ + _(continue) \ _(def) \ _(defmacro) \ _(do) \ @@ -74,6 +75,7 @@ enum toktype { TKgensym, TKtype, TKexpr, + TKlabel, TKeof, }; @@ -137,6 +139,7 @@ struct parser { bool save_envage; int envage; int varid; + int loopid, curloop; }; enum typetype { @@ -237,6 +240,7 @@ enum decltype { Ddef, Dmacro, Dtepl, + Dlabel, }; struct decl { @@ -268,6 +272,7 @@ struct decl { struct toktree toks; int envage; } tepl; + int loopid; }; int age; }; @@ -394,6 +399,8 @@ enum stmttype { Siswitch, Sreturn, Seuswitch, + Sbreak, + Scontinue, }; struct iswitchcase { @@ -424,6 +431,7 @@ struct stmt { } ifelse; struct { slice_t(struct stmt) ini; + int id; struct expr test; struct expr *next; struct blockstmt body; @@ -440,6 +448,9 @@ struct stmt { bool byptr; } euswitch; struct expr *retex; + struct { + int id; + } brkcon; }; }; -- cgit v1.2.3