From ae9b8fb6a738d0f8be49c63d846ca713eaa2eab1 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sun, 26 Nov 2017 11:27:18 +0800 Subject: macro_rules - Fix parsing of loop labels --- src/macro_rules/eval.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/macro_rules/eval.cpp b/src/macro_rules/eval.cpp index 6344b26a..fc54616e 100644 --- a/src/macro_rules/eval.cpp +++ b/src/macro_rules/eval.cpp @@ -1116,6 +1116,9 @@ namespace return consume_tt(lex); } break; + case TOK_RWORD_BOX: + lex.consume(); + return consume_pat(lex); case TOK_AMP: case TOK_DOUBLE_AMP: lex.consume(); @@ -1202,6 +1205,7 @@ namespace case TOK_STAR: // Deref case TOK_DASH: // Negate case TOK_EXCLAM: // Invert + case TOK_RWORD_BOX: // Box lex.consume(); break; case TOK_AMP: @@ -1222,8 +1226,11 @@ namespace switch(lex.next()) { case TOK_RWORD_CONTINUE: - case TOK_RWORD_RETURN: case TOK_RWORD_BREAK: + lex.consume(); + lex.consume_if(TOK_LIFETIME); + if(0) + case TOK_RWORD_RETURN: lex.consume(); switch(lex.next()) { -- cgit v1.2.3