From 3f2600bb31a5a71ce4ebb4c2fa95762d68eb516b Mon Sep 17 00:00:00 2001 From: Lefteris Karapetsas Date: Mon, 15 Dec 2014 17:54:29 +0100 Subject: [PATCH] new ForStatement parsing test and small grammar fix --- Parser.cpp | 1 - grammar.txt | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Parser.cpp b/Parser.cpp index 9941fbf43..d936cfc72 100644 --- a/Parser.cpp +++ b/Parser.cpp @@ -381,7 +381,6 @@ ASTPointer Parser::parseForStatement() ASTPointer conditionExpression = parseExpression(); expectToken(Token::SEMICOLON); ASTPointer loopExpression = parseExpressionStatement(); - expectToken(Token::SEMICOLON); expectToken(Token::RPAREN); ASTPointer body = parseStatement(); nodeFactory.setEndPositionFromNode(body); diff --git a/grammar.txt b/grammar.txt index 99a590014..76e7bb6b6 100644 --- a/grammar.txt +++ b/grammar.txt @@ -20,7 +20,7 @@ Statement = IfStatement | WhileStatement | Block | IfStatement = 'if' '(' Expression ')' Statement ( 'else' Statement )? WhileStatement = 'while' '(' Expression ')' Statement -ForStatement = 'for' '(' Expressionstatement Expression Expressionstatement ')' Statement +ForStatement = 'for' '(' VardefOrExpressionstatement ';' Expression ';' Expressionstatement ')' Statement Continue = 'continue' ';' Break = 'break' ';' Return = 'return' Expression? ';'