From de3d219f998e854091a0663c7e57cb1b3334e995 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Thu, 3 Nov 2016 11:35:01 +0800 Subject: Parse Expr - Slight tweak to handling of ; --- src/parse/expr.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/parse/expr.cpp b/src/parse/expr.cpp index f2ec1857..17a40364 100644 --- a/src/parse/expr.cpp +++ b/src/parse/expr.cpp @@ -203,7 +203,8 @@ ExprNodeP Parse_ExprBlockLine(TokenStream& lex, bool *add_silence) case TOK_INTERPOLATED_BLOCK: return tok.take_frag_node(); case TOK_SEMICOLON: - return NEWNODE(AST::ExprNode_Tuple, ::std::vector()); + // Return a NULL expression, nothing here. + return nullptr; // let binding case TOK_RWORD_LET: @@ -239,6 +240,12 @@ ExprNodeP Parse_ExprBlockLine(TokenStream& lex, bool *add_silence) lex.putback( Token(Token::TagTakeIP(), InterpolatedFragment(InterpolatedFragment::EXPR, ret.release())) ); return Parse_ExprBlockLine_Stmt(lex, *add_silence); } + + if( LOOK_AHEAD(lex) == TOK_SEMICOLON ) { + GET_TOK(tok, lex); + *add_silence = true; + } + return ret; // Flow control -- cgit v1.2.3