mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #2815 from ethereum/parser-fallthrough
Remove fallthrough from literal parsing
This commit is contained in:
commit
ec6d8007db
@ -903,11 +903,13 @@ ASTPointer<Statement> Parser::parseStatement()
|
|||||||
{
|
{
|
||||||
statement = ASTNodeFactory(*this).createNode<PlaceholderStatement>(docString);
|
statement = ASTNodeFactory(*this).createNode<PlaceholderStatement>(docString);
|
||||||
m_scanner->next();
|
m_scanner->next();
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
// fall-through
|
else
|
||||||
|
statement = parseSimpleStatement(docString);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
statement = parseSimpleStatement(docString);
|
statement = parseSimpleStatement(docString);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
expectToken(Token::Semicolon);
|
expectToken(Token::Semicolon);
|
||||||
return statement;
|
return statement;
|
||||||
@ -1309,18 +1311,21 @@ ASTPointer<Expression> Parser::parsePrimaryExpression()
|
|||||||
Literal::SubDenomination subdenomination = static_cast<Literal::SubDenomination>(m_scanner->currentToken());
|
Literal::SubDenomination subdenomination = static_cast<Literal::SubDenomination>(m_scanner->currentToken());
|
||||||
m_scanner->next();
|
m_scanner->next();
|
||||||
expression = nodeFactory.createNode<Literal>(token, literal, subdenomination);
|
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();
|
ASTPointer<ASTString> literal = getLiteralAndAdvance();
|
||||||
nodeFactory.markEndPosition();
|
nodeFactory.markEndPosition();
|
||||||
Literal::SubDenomination subdenomination = static_cast<Literal::SubDenomination>(m_scanner->currentToken());
|
Literal::SubDenomination subdenomination = static_cast<Literal::SubDenomination>(m_scanner->currentToken());
|
||||||
m_scanner->next();
|
m_scanner->next();
|
||||||
expression = nodeFactory.createNode<Literal>(token, literal, subdenomination);
|
expression = nodeFactory.createNode<Literal>(token, literal, subdenomination);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
// fall-through
|
else
|
||||||
|
{
|
||||||
|
nodeFactory.markEndPosition();
|
||||||
|
expression = nodeFactory.createNode<Literal>(token, getLiteralAndAdvance());
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Token::StringLiteral:
|
case Token::StringLiteral:
|
||||||
nodeFactory.markEndPosition();
|
nodeFactory.markEndPosition();
|
||||||
expression = nodeFactory.createNode<Literal>(token, getLiteralAndAdvance());
|
expression = nodeFactory.createNode<Literal>(token, getLiteralAndAdvance());
|
||||||
@ -1357,9 +1362,9 @@ ASTPointer<Expression> Parser::parsePrimaryExpression()
|
|||||||
}
|
}
|
||||||
nodeFactory.markEndPosition();
|
nodeFactory.markEndPosition();
|
||||||
expectToken(oppositeToken);
|
expectToken(oppositeToken);
|
||||||
return nodeFactory.createNode<TupleExpression>(components, isArray);
|
expression = nodeFactory.createNode<TupleExpression>(components, isArray);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (Token::isElementaryTypeName(token))
|
if (Token::isElementaryTypeName(token))
|
||||||
{
|
{
|
||||||
|
@ -435,7 +435,7 @@ void Scanner::scanToken()
|
|||||||
m_nextToken.location.start = sourcePos();
|
m_nextToken.location.start = sourcePos();
|
||||||
switch (m_char)
|
switch (m_char)
|
||||||
{
|
{
|
||||||
case '\n': // fall-through
|
case '\n':
|
||||||
case ' ':
|
case ' ':
|
||||||
case '\t':
|
case '\t':
|
||||||
token = selectToken(Token::Whitespace);
|
token = selectToken(Token::Whitespace);
|
||||||
|
Loading…
Reference in New Issue
Block a user