parser generator beginnings

This commit is contained in:
Andrew Kelley
2015-11-03 22:31:27 -07:00
parent 303823b6b8
commit 7cfceeca2d
10 changed files with 972 additions and 755 deletions

View File

@@ -20,10 +20,21 @@ include_directories(
${CMAKE_BINARY_DIR}
)
set(GRAMMAR_TXT "${CMAKE_BINARY_DIR}/simple.txt")
set(PARSER_CPP "${CMAKE_BINARY_DIR}/parser.cpp")
set(ZIG_SOURCES
"${CMAKE_SOURCE_DIR}/src/main.cpp"
"${CMAKE_SOURCE_DIR}/src/util.cpp"
"${CMAKE_SOURCE_DIR}/src/buffer.cpp"
"${CMAKE_SOURCE_DIR}/src/tokenizer.cpp"
${PARSER_CPP}
)
set(PARSERGEN_SOURCES
"${CMAKE_SOURCE_DIR}/src/parsergen.cpp"
"${CMAKE_SOURCE_DIR}/src/util.cpp"
"${CMAKE_SOURCE_DIR}/src/buffer.cpp"
)
set(CONFIGURE_OUT_FILE "${CMAKE_BINARY_DIR}/config.h")
@@ -49,3 +60,16 @@ target_link_libraries(zig LINK_PUBLIC
${LLVM_LIBRARIES}
)
install(TARGETS zig DESTINATION bin)
add_executable(parsergen ${PARSERGEN_SOURCES})
set_target_properties(parsergen PROPERTIES
LINKER_LANGUAGE C
COMPILE_FLAGS ${EXE_CFLAGS})
add_custom_command(
OUTPUT ${PARSER_CPP}
COMMAND parsergen ARGS ${GRAMMAR_TXT} ${PARSER_CPP}
DEPENDS ${GRAMMAR_TXT} ${PARSERGEN_SOURCES}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)