MacOS fixes: lower CMake version, use strtoll instead of from_chars
This commit is contained in:
parent
0ba3e4324d
commit
da39ae1225
3 changed files with 8 additions and 2 deletions
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.30)
|
||||
cmake_minimum_required(VERSION 3.23)
|
||||
project(pslang CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ set(PSLANG_LEXER_SOURCE_FILE "${CMAKE_CURRENT_BINARY_DIR}/generated/gen_lexer.cp
|
|||
set(PSLANG_PARSER_HEADER_FILE "${CMAKE_CURRENT_BINARY_DIR}/generated/gen_parser.hpp")
|
||||
set(PSLANG_PARSER_SOURCE_FILE "${CMAKE_CURRENT_BINARY_DIR}/generated/gen_parser.cpp")
|
||||
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/generated")
|
||||
|
||||
flex_target(
|
||||
generate-pslang-lexer
|
||||
${PSLANG_LEXER_RULES_FILE}
|
||||
|
|
|
|||
|
|
@ -47,9 +47,13 @@ template <typename T>
|
|||
::pslang::ast::literal parse_primitive_literal(std::string const & str, ::pslang::ast::location const & location)
|
||||
{
|
||||
T value;
|
||||
#ifdef __clang__
|
||||
value = std::strtoll(str.data(), nullptr, 10);
|
||||
#else
|
||||
auto result = std::from_chars(str.data(), str.data() + str.size(), value);
|
||||
if (result.ec != std::errc())
|
||||
throw std::system_error(std::make_error_code(result.ec));
|
||||
#endif
|
||||
return ::pslang::ast::primitive_literal_base<T>{value, location};
|
||||
}
|
||||
|
||||
|
|
@ -101,7 +105,7 @@ template <typename T>
|
|||
%token <std::string> lit_f32
|
||||
%token <std::string> lit_f64
|
||||
|
||||
%token <char> lit_char8
|
||||
%token <std::uint8_t> lit_char8
|
||||
|
||||
%token <std::string> name
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue