-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #35 from bertbaron/develop
feat: grammar and highlighting fixes and improvements
- Loading branch information
Showing
16 changed files
with
123,038 additions
and
116,334 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
cmake_minimum_required(VERSION 3.13) | ||
|
||
project(tree-sitter-kcl | ||
VERSION "0.1.0" | ||
DESCRIPTION "KCL Configration and policy language" | ||
HOMEPAGE_URL "https://github.com/kcl-lang/tree-sitter-kcl" | ||
LANGUAGES C) | ||
|
||
option(BUILD_SHARED_LIBS "Build using shared libraries" ON) | ||
option(TREE_SITTER_REUSE_ALLOCATOR "Reuse the library allocator" OFF) | ||
|
||
set(TREE_SITTER_ABI_VERSION 15 CACHE STRING "Tree-sitter ABI version") | ||
if(NOT ${TREE_SITTER_ABI_VERSION} MATCHES "^[0-9]+$") | ||
unset(TREE_SITTER_ABI_VERSION CACHE) | ||
message(FATAL_ERROR "TREE_SITTER_ABI_VERSION must be an integer") | ||
endif() | ||
|
||
find_program(TREE_SITTER_CLI tree-sitter DOC "Tree-sitter CLI") | ||
|
||
add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/parser.c" | ||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json" | ||
COMMAND "${TREE_SITTER_CLI}" generate src/grammar.json | ||
--abi=${TREE_SITTER_ABI_VERSION} | ||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | ||
COMMENT "Generating parser.c") | ||
|
||
add_library(tree-sitter-kcl src/parser.c) | ||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/scanner.c) | ||
target_sources(tree-sitter-kcl PRIVATE src/scanner.c) | ||
endif() | ||
target_include_directories(tree-sitter-kcl | ||
PRIVATE src | ||
INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/bindings/c> | ||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) | ||
|
||
target_compile_definitions(tree-sitter-kcl PRIVATE | ||
$<$<BOOL:${TREE_SITTER_REUSE_ALLOCATOR}>:TREE_SITTER_REUSE_ALLOCATOR> | ||
$<$<CONFIG:Debug>:TREE_SITTER_DEBUG>) | ||
|
||
set_target_properties(tree-sitter-kcl | ||
PROPERTIES | ||
C_STANDARD 11 | ||
POSITION_INDEPENDENT_CODE ON | ||
SOVERSION "${TREE_SITTER_ABI_VERSION}.${PROJECT_VERSION_MAJOR}" | ||
DEFINE_SYMBOL "") | ||
|
||
configure_file(bindings/c/tree-sitter-kcl.pc.in | ||
"${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-kcl.pc" @ONLY) | ||
|
||
include(GNUInstallDirs) | ||
|
||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bindings/c/tree_sitter" | ||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" | ||
FILES_MATCHING PATTERN "*.h") | ||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-kcl.pc" | ||
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig") | ||
install(TARGETS tree-sitter-kcl | ||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") | ||
|
||
file(GLOB QUERIES queries/*.scm) | ||
install(FILES ${QUERIES} | ||
DESTINATION "${CMAKE_INSTALL_DATADIR}/tree-sitter/queries/kcl") | ||
|
||
add_custom_target(ts-test "${TREE_SITTER_CLI}" test | ||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | ||
COMMENT "tree-sitter test") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.