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)
|
project(pslang CXX)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 23)
|
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_HEADER_FILE "${CMAKE_CURRENT_BINARY_DIR}/generated/gen_parser.hpp")
|
||||||
set(PSLANG_PARSER_SOURCE_FILE "${CMAKE_CURRENT_BINARY_DIR}/generated/gen_parser.cpp")
|
set(PSLANG_PARSER_SOURCE_FILE "${CMAKE_CURRENT_BINARY_DIR}/generated/gen_parser.cpp")
|
||||||
|
|
||||||
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/generated")
|
||||||
|
|
||||||
flex_target(
|
flex_target(
|
||||||
generate-pslang-lexer
|
generate-pslang-lexer
|
||||||
${PSLANG_LEXER_RULES_FILE}
|
${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)
|
::pslang::ast::literal parse_primitive_literal(std::string const & str, ::pslang::ast::location const & location)
|
||||||
{
|
{
|
||||||
T value;
|
T value;
|
||||||
|
#ifdef __clang__
|
||||||
|
value = std::strtoll(str.data(), nullptr, 10);
|
||||||
|
#else
|
||||||
auto result = std::from_chars(str.data(), str.data() + str.size(), value);
|
auto result = std::from_chars(str.data(), str.data() + str.size(), value);
|
||||||
if (result.ec != std::errc())
|
if (result.ec != std::errc())
|
||||||
throw std::system_error(std::make_error_code(result.ec));
|
throw std::system_error(std::make_error_code(result.ec));
|
||||||
|
#endif
|
||||||
return ::pslang::ast::primitive_literal_base<T>{value, location};
|
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_f32
|
||||||
%token <std::string> lit_f64
|
%token <std::string> lit_f64
|
||||||
|
|
||||||
%token <char> lit_char8
|
%token <std::uint8_t> lit_char8
|
||||||
|
|
||||||
%token <std::string> name
|
%token <std::string> name
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue