diff options
author | Ben Smith <binjimin@gmail.com> | 2019-04-03 23:20:50 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-03 23:20:50 -0700 |
commit | cc39cc1174ac4182977704845d8dd1cdb8926f43 (patch) | |
tree | 7cf0a98bb63c096b477de1f4eb93b13b97da277d /CMakeLists.txt | |
parent | 65663b0e20cba18d340ca35195b13a37936adac6 (diff) | |
download | wabt-cc39cc1174ac4182977704845d8dd1cdb8926f43.tar.gz wabt-cc39cc1174ac4182977704845d8dd1cdb8926f43.tar.bz2 wabt-cc39cc1174ac4182977704845d8dd1cdb8926f43.zip |
Rewrite the lexer manually, instead of re2c (#1058)
The current lexer uses re2c. It easy to change, but it generates a huge amount of code, and it's easy to forgot to update it.
This PR rewrites the lexer manually, and uses gperf instead to match keywords. The generated source is much smaller.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index e0799db1..49f5bfbc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,6 @@ project(WABT) option(BUILD_TESTS "Build GTest-based tests" ON) option(BUILD_TOOLS "Build wabt commandline tools" ON) -option(RUN_RE2C "Run re2c" ON) option(USE_ASAN "Use address sanitizer" OFF) option(USE_MSAN "Use memory sanitizer" OFF) option(USE_LSAN "Use leak sanitizer" OFF) @@ -203,21 +202,6 @@ if (USE_UBSAN) endif () set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${WABT_SOURCE_DIR}/cmake) -find_package(RE2C) -if (RUN_RE2C AND RE2C_EXECUTABLE AND (NOT ${RE2C_VERSION} VERSION_LESS "0.16")) - message(STATUS "Using generated re2c lexer") - set(WAST_LEXER_CC ${WABT_SOURCE_DIR}/src/wast-lexer.cc) - set(WAST_LEXER_GEN_CC ${WABT_BINARY_DIR}/wast-lexer-gen.cc) - RE2C_TARGET( - NAME WAST_LEXER_GEN_CC - INPUT ${WAST_LEXER_CC} - OUTPUT ${WAST_LEXER_GEN_CC} - OPTIONS -bc8 -W -Werror - ) -else () - message(STATUS "Using prebuilt re2c lexer") - set(WAST_LEXER_GEN_CC src/prebuilt/wast-lexer-gen.cc) -endif () add_custom_target(everything) @@ -255,9 +239,9 @@ add_library(wabt STATIC src/type-checker.cc src/utf8.cc src/validator.cc + src/wast-lexer.cc src/wast-parser.cc src/wat-writer.cc - ${WAST_LEXER_GEN_CC} # TODO(binji): Move this into its own library? src/interp/binary-reader-interp.cc |