mirror of
https://github.com/yhirose/cpp-peglib.git
synced 2024-12-22 11:55:30 +00:00
Changed minimum target to be 'c++11'.
This commit is contained in:
parent
7ef51f6acb
commit
803335164d
@ -1,36 +1,34 @@
|
|||||||
cmake_minimum_required(VERSION 2.8)
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
|
||||||
# Check if a supported compiler is used and add c++14 flag:
|
# Check if a supported compiler is used and add c++11 flag:
|
||||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
|
||||||
message(FATAL_ERROR "Need at least gcc 4.9 to compile.")
|
message(FATAL_ERROR "Need at least gcc 4.9 to compile.")
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||||
elseif(MSVC)
|
elseif(MSVC)
|
||||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19)
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19)
|
||||||
message(FATAL_ERROR "Visual Studio 2015 or newer is required.")
|
message(FATAL_ERROR "Visual Studio 2015 or newer is required.")
|
||||||
endif()
|
endif()
|
||||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)
|
||||||
|
message(FATAL_ERROR "Need at least AppleClang 7.0 to compile.")
|
||||||
|
endif()
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
|
||||||
message(FATAL_ERROR "Clang below version 3.4 will most likely not work. Please upgrade your compiler.")
|
message(FATAL_ERROR "Clang below version 3.4 will most likely not work. Please upgrade your compiler.")
|
||||||
endif()
|
endif()
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.6)
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y")
|
|
||||||
else()
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
|
||||||
endif()
|
|
||||||
else() # no GNU, no MSVC, no Clang
|
else() # no GNU, no MSVC, no Clang
|
||||||
message(WARNING "You are using an unsupported compiler. Compilation has only been tested with MSVC, GCC and Clang.")
|
message(WARNING "You are using an unsupported compiler. Compilation has only been tested with MSVC, GCC and Clang.")
|
||||||
|
|
||||||
include(CheckCXXCompilerFlag)
|
include(CheckCXXCompilerFlag)
|
||||||
check_cxx_compiler_flag(-std=c++14 HAS_CXX14_FLAG)
|
check_cxx_compiler_flag(-std=c++11 HAS_CXX11_FLAG)
|
||||||
if(HAS_CXX14_FLAG)
|
if(HAS_CXX11_FLAG)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Your compiler doesn't support the '-std=c++14' flag.")
|
message(FATAL_ERROR "Your compiler doesn't support the '-std=c++11' flag.")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -73,4 +71,4 @@ if(NOT MSVC)
|
|||||||
add_subdirectory(lint)
|
add_subdirectory(lint)
|
||||||
add_subdirectory(language/pl0)
|
add_subdirectory(language/pl0)
|
||||||
add_subdirectory(language/culebra)
|
add_subdirectory(language/culebra)
|
||||||
endif()
|
endif()
|
||||||
|
@ -91,7 +91,7 @@ int main(int argc, const char** argv)
|
|||||||
|
|
||||||
peg::parser parser;
|
peg::parser parser;
|
||||||
|
|
||||||
parser.log = [&](auto ln, auto col, const auto& msg) {
|
parser.log = [&](size_t ln, size_t col, const string& msg) {
|
||||||
cerr << syntax_path << ":" << ln << ":" << col << ": " << msg << endl;
|
cerr << syntax_path << ":" << ln << ":" << col << ": " << msg << endl;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ int main(int argc, const char** argv)
|
|||||||
source_path = "[commendline]";
|
source_path = "[commendline]";
|
||||||
}
|
}
|
||||||
|
|
||||||
parser.log = [&](auto ln, auto col, const auto& msg) {
|
parser.log = [&](size_t ln, size_t col, const string& msg) {
|
||||||
cerr << source_path << ":" << ln << ":" << col << ": " << msg << endl;
|
cerr << source_path << ":" << ln << ":" << col << ": " << msg << endl;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -122,7 +122,13 @@ int main(int argc, const char** argv)
|
|||||||
std::cout << "pos:lev\trule/ope" << std::endl;
|
std::cout << "pos:lev\trule/ope" << std::endl;
|
||||||
std::cout << "-------\t--------" << std::endl;
|
std::cout << "-------\t--------" << std::endl;
|
||||||
size_t prev_pos = 0;
|
size_t prev_pos = 0;
|
||||||
parser.enable_trace([&](auto name, auto s, auto /*n*/, auto& /*sv*/, auto& c, auto& /*dt*/) {
|
parser.enable_trace([&](
|
||||||
|
const char* name,
|
||||||
|
const char* s,
|
||||||
|
size_t /*n*/,
|
||||||
|
const peg::SemanticValues& /*sv*/,
|
||||||
|
const peg::Context& c,
|
||||||
|
const peg::any& /*dt*/) {
|
||||||
auto pos = static_cast<size_t>(s - c.s);
|
auto pos = static_cast<size_t>(s - c.s);
|
||||||
auto backtrack = (pos < prev_pos ? "*" : "");
|
auto backtrack = (pos < prev_pos ? "*" : "");
|
||||||
string indent;
|
string indent;
|
||||||
|
Loading…
Reference in New Issue
Block a user