[poincare] Parser: forbid parsing 0xABCF as 0xABC*F

This commit is contained in:
Émilie Feral
2019-12-11 16:37:46 +01:00
committed by Léa Saviot
parent 00e8af789b
commit 7209265254
2 changed files with 6 additions and 3 deletions

View File

@@ -154,8 +154,11 @@ void Parser::parseNumber(Expression & leftHandSide, Token::Type stoppingType) {
return;
}
leftHandSide = m_currentToken.expression();
if (m_nextToken.isNumber()) {
m_status = Status::Error; // No implicit multiplication between two numbers
// No implicit multiplication between two numbers
if (m_nextToken.isNumber()
// No implicit multiplication between a hexadecimal number and an identifer (avoid parsing 0x2abch as 0x2ABC*h)
|| (m_currentToken.is(Token::Type::HexadecimalNumber) && m_nextToken.is(Token::Type::Identifier))) {
m_status = Status::Error;
return;
}
isThereImplicitMultiplication();

View File

@@ -238,7 +238,7 @@ QUIZ_CASE(poincare_parsing_parse) {
assert_text_not_parsable("0=0→x");
assert_text_not_parsable("1ᴇ2ᴇ3");
assert_text_not_parsable("0b001112");
//assert_text_not_parsable("0x123G");
assert_text_not_parsable("0x123G");
}
Matrix BuildMatrix(int rows, int columns, Expression entries[]) {