Fixed values handling
This commit is contained in:
@@ -44,10 +44,11 @@ shared_ptr<ExpressionLiteral> ExpressionLiteral::expressionLiteralForToken(share
|
||||
expression->u32Value = *charValue;
|
||||
return expression;
|
||||
}
|
||||
case TokenKind::REAL:
|
||||
case TokenKind::REAL: {
|
||||
expression->r32Value = stof(token->getLexme());
|
||||
expression->valueType = ValueType::valueTypeForToken(token, nullptr, 0);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
@@ -63,15 +64,15 @@ bool ExpressionLiteral::getBoolValue() {
|
||||
}
|
||||
|
||||
uint8_t ExpressionLiteral::getU8Value() {
|
||||
return s32Value;
|
||||
return u8Value;
|
||||
}
|
||||
|
||||
uint32_t ExpressionLiteral::getU32Value() {
|
||||
return s32Value;
|
||||
return u32Value;
|
||||
}
|
||||
|
||||
int8_t ExpressionLiteral::getS8Value() {
|
||||
return s32Value;
|
||||
return s8Value;
|
||||
}
|
||||
|
||||
int32_t ExpressionLiteral::getS32Value() {
|
||||
|
||||
@@ -756,8 +756,8 @@ shared_ptr<Expression> Parser::matchPrimary() {
|
||||
return expression;
|
||||
|
||||
expression = matchExpressionArrayLiteral();
|
||||
if (expression != nullptr || errors.size() > errorsCount)
|
||||
return expression;
|
||||
if (expression != nullptr || errors.size() > errorsCount)
|
||||
return expression;
|
||||
|
||||
expression = matchExpressionLiteral();
|
||||
if (expression != nullptr || errors.size() > errorsCount)
|
||||
|
||||
@@ -37,6 +37,7 @@ shared_ptr<ValueType> ValueType::valueTypeForToken(shared_ptr<Token> token, shar
|
||||
case TokenKind::BOOL:
|
||||
return make_shared<ValueType>(ValueTypeKind::BOOL, nullptr, 0);
|
||||
case TokenKind::INTEGER_DEC:
|
||||
return make_shared<ValueType>(ValueTypeKind::S32, nullptr, 0);
|
||||
case TokenKind::INTEGER_HEX:
|
||||
case TokenKind::INTEGER_BIN:
|
||||
case TokenKind::INTEGER_CHAR:
|
||||
|
||||
Reference in New Issue
Block a user