aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/parsing/Parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libsolidity/parsing/Parser.cpp')
-rw-r--r--libsolidity/parsing/Parser.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp
index ddfdb667..8429bf79 100644
--- a/libsolidity/parsing/Parser.cpp
+++ b/libsolidity/parsing/Parser.cpp
@@ -903,11 +903,13 @@ ASTPointer<Statement> Parser::parseStatement()
{
statement = ASTNodeFactory(*this).createNode<PlaceholderStatement>(docString);
m_scanner->next();
- break;
}
- // fall-through
+ else
+ statement = parseSimpleStatement(docString);
+ break;
default:
statement = parseSimpleStatement(docString);
+ break;
}
expectToken(Token::Semicolon);
return statement;
@@ -1309,18 +1311,21 @@ ASTPointer<Expression> Parser::parsePrimaryExpression()
Literal::SubDenomination subdenomination = static_cast<Literal::SubDenomination>(m_scanner->currentToken());
m_scanner->next();
expression = nodeFactory.createNode<Literal>(token, literal, subdenomination);
- break;
}
- if (Token::isTimeSubdenomination(m_scanner->peekNextToken()))
+ else if (Token::isTimeSubdenomination(m_scanner->peekNextToken()))
{
ASTPointer<ASTString> literal = getLiteralAndAdvance();
nodeFactory.markEndPosition();
Literal::SubDenomination subdenomination = static_cast<Literal::SubDenomination>(m_scanner->currentToken());
m_scanner->next();
expression = nodeFactory.createNode<Literal>(token, literal, subdenomination);
- break;
}
- // fall-through
+ else
+ {
+ nodeFactory.markEndPosition();
+ expression = nodeFactory.createNode<Literal>(token, getLiteralAndAdvance());
+ }
+ break;
case Token::StringLiteral:
nodeFactory.markEndPosition();
expression = nodeFactory.createNode<Literal>(token, getLiteralAndAdvance());
@@ -1357,9 +1362,9 @@ ASTPointer<Expression> Parser::parsePrimaryExpression()
}
nodeFactory.markEndPosition();
expectToken(oppositeToken);
- return nodeFactory.createNode<TupleExpression>(components, isArray);
+ expression = nodeFactory.createNode<TupleExpression>(components, isArray);
+ break;
}
-
default:
if (Token::isElementaryTypeName(token))
{