summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorBen Smith <binjimin@gmail.com>2019-04-03 23:20:50 -0700
committerGitHub <noreply@github.com>2019-04-03 23:20:50 -0700
commitcc39cc1174ac4182977704845d8dd1cdb8926f43 (patch)
tree7cf0a98bb63c096b477de1f4eb93b13b97da277d /CMakeLists.txt
parent65663b0e20cba18d340ca35195b13a37936adac6 (diff)
downloadwabt-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.txt18
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