From d5862368521b8249d997a7def37fed08ff55d8f4 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sat, 27 Feb 2016 10:26:26 +0800 Subject: Parse/expr - Handle flow control in the middle of an expression --- src/parse/expr.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/parse/expr.cpp b/src/parse/expr.cpp index 8bcde31e..88e11262 100644 --- a/src/parse/expr.cpp +++ b/src/parse/expr.cpp @@ -958,6 +958,13 @@ ExprNodeP Parse_ExprVal(TokenStream& lex) lex.putback(tok); return Parse_ExprBlockNode(lex); + // TODO: Return/break/continue/... here? + case TOK_RWORD_RETURN: + case TOK_RWORD_CONTINUE: + case TOK_RWORD_BREAK: + lex.putback(tok); + return Parse_Stmt(lex); + case TOK_RWORD_LOOP: return NEWNODE( AST::ExprNode_Loop, "", Parse_ExprBlockNode(lex) ); case TOK_RWORD_WHILE: -- cgit v1.2.3