diff options
author | Lefteris Karapetsas <lefteris@refu.co> | 2014-12-16 00:54:29 +0800 |
---|---|---|
committer | Lefteris Karapetsas <lefteris@refu.co> | 2014-12-17 07:03:30 +0800 |
commit | 3f2600bb31a5a71ce4ebb4c2fa95762d68eb516b (patch) | |
tree | 86785ee0ceab9aea178c0cd06dcc13fe993d8fd9 | |
parent | f7029726be3bbf119548a83696402512374d809d (diff) | |
download | dexon-solidity-3f2600bb31a5a71ce4ebb4c2fa95762d68eb516b.tar dexon-solidity-3f2600bb31a5a71ce4ebb4c2fa95762d68eb516b.tar.gz dexon-solidity-3f2600bb31a5a71ce4ebb4c2fa95762d68eb516b.tar.bz2 dexon-solidity-3f2600bb31a5a71ce4ebb4c2fa95762d68eb516b.tar.lz dexon-solidity-3f2600bb31a5a71ce4ebb4c2fa95762d68eb516b.tar.xz dexon-solidity-3f2600bb31a5a71ce4ebb4c2fa95762d68eb516b.tar.zst dexon-solidity-3f2600bb31a5a71ce4ebb4c2fa95762d68eb516b.zip |
new ForStatement parsing test and small grammar fix
-rw-r--r-- | Parser.cpp | 1 | ||||
-rw-r--r-- | grammar.txt | 2 |
2 files changed, 1 insertions, 2 deletions
@@ -381,7 +381,6 @@ ASTPointer<ForStatement> Parser::parseForStatement() ASTPointer<Expression> conditionExpression = parseExpression(); expectToken(Token::SEMICOLON); ASTPointer<ExpressionStatement> loopExpression = parseExpressionStatement(); - expectToken(Token::SEMICOLON); expectToken(Token::RPAREN); ASTPointer<Statement> body = parseStatement(); nodeFactory.setEndPositionFromNode(body); diff --git a/grammar.txt b/grammar.txt index 99a59001..76e7bb6b 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? ';' |