Skip to content

Commit

Permalink
fix stod
Browse files Browse the repository at this point in the history
  • Loading branch information
MistEO committed Dec 26, 2023
1 parent 515cd87 commit 97c2d59
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions include/json5.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1170,7 +1170,8 @@ inline std::optional<typename parser5<StringT>::Token> parser5<StringT>::lex_dec
return std::nullopt;
}

return newToken(TokenType::numeric, _sign * std::stod(_buffer));
std::string number = _sign == -1 ? ("-" + _buffer) : _buffer;
return newToken(TokenType::numeric, value(value::value_type::number, std::move(number)));
}

template <typename StringT>
Expand Down Expand Up @@ -1200,7 +1201,8 @@ inline std::optional<typename parser5<StringT>::Token> parser5<StringT>::lex_dec
return std::nullopt;
}

return newToken(TokenType::numeric, _sign * std::stod(_buffer));
std::string number = _sign == -1 ? ("-" + _buffer) : _buffer;
return newToken(TokenType::numeric, value(value::value_type::number, std::move(number)));
}

template <typename StringT>
Expand All @@ -1218,7 +1220,8 @@ inline std::optional<typename parser5<StringT>::Token> parser5<StringT>::lex_dec
return std::nullopt;
}

return newToken(TokenType::numeric, _sign * std::stod(_buffer));
std::string number = _sign == -1 ? ("-" + _buffer) : _buffer;
return newToken(TokenType::numeric, value(value::value_type::number, std::move(number)));
}

template <typename StringT>
Expand Down Expand Up @@ -1258,7 +1261,9 @@ inline std::optional<typename parser5<StringT>::Token> parser5<StringT>::lex_dec
_buffer += StringFromCharCode(read());
return std::nullopt;
}
return newToken(TokenType::numeric, _sign * std::stod(_buffer));

std::string number = _sign == -1 ? ("-" + _buffer) : _buffer;
return newToken(TokenType::numeric, value(value::value_type::number, std::move(number)));
}

template <typename StringT>
Expand All @@ -1279,7 +1284,9 @@ inline std::optional<typename parser5<StringT>::Token> parser5<StringT>::lex_hex
_buffer += StringFromCharCode(read());
return std::nullopt;
}
return newToken(TokenType::numeric, _sign * std::stod(_buffer));

std::string number = _sign == -1 ? ("-" + _buffer) : _buffer;
return newToken(TokenType::numeric, value(value::value_type::number, std::move(number)));
}

template <typename StringT>
Expand Down

0 comments on commit 97c2d59

Please sign in to comment.