-
Notifications
You must be signed in to change notification settings - Fork 20
Update tree-sitter #47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| root = true | ||
|
|
||
| [*] | ||
| charset = utf-8 | ||
|
|
||
| [*.{json,toml,yml,gyp}] | ||
| indent_style = space | ||
| indent_size = 2 | ||
|
|
||
| [*.js] | ||
| indent_style = space | ||
| indent_size = 2 | ||
|
|
||
| [*.scm] | ||
| indent_style = space | ||
| indent_size = 2 | ||
|
|
||
| [*.{c,cc,h}] | ||
| indent_style = space | ||
| indent_size = 4 | ||
|
|
||
| [*.rs] | ||
| indent_style = space | ||
| indent_size = 4 | ||
|
|
||
| [*.{py,pyi}] | ||
| indent_style = space | ||
| indent_size = 4 | ||
|
|
||
| [*.swift] | ||
| indent_style = space | ||
| indent_size = 4 | ||
|
|
||
| [*.go] | ||
| indent_style = tab | ||
| indent_size = 8 | ||
|
|
||
| [Makefile] | ||
| indent_style = tab | ||
| indent_size = 8 | ||
|
|
||
| [parser.c] | ||
| indent_size = 2 | ||
|
|
||
| [{alloc,array,parser}.h] | ||
| indent_size = 2 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| cmake_minimum_required(VERSION 3.13) | ||
|
|
||
| project(tree-sitter-heex | ||
| VERSION "0.7.0" | ||
| DESCRIPTION "Tree-sitter grammar for HEEx files" | ||
| HOMEPAGE_URL "https://github.com/phoenixframework/tree-sitter-heex" | ||
| 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 14 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-heex src/parser.c) | ||
| if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/scanner.c) | ||
| target_sources(tree-sitter-heex PRIVATE src/scanner.c) | ||
| endif() | ||
| target_include_directories(tree-sitter-heex PRIVATE src) | ||
|
|
||
| target_compile_definitions(tree-sitter-heex PRIVATE | ||
| $<$<BOOL:${TREE_SITTER_REUSE_ALLOCATOR}>:TREE_SITTER_REUSE_ALLOCATOR> | ||
| $<$<CONFIG:Debug>:TREE_SITTER_DEBUG>) | ||
|
|
||
| set_target_properties(tree-sitter-heex | ||
| PROPERTIES | ||
| C_STANDARD 11 | ||
| POSITION_INDEPENDENT_CODE ON | ||
| SOVERSION "${TREE_SITTER_ABI_VERSION}.${PROJECT_VERSION_MAJOR}" | ||
| DEFINE_SYMBOL "") | ||
|
|
||
| configure_file(bindings/c/tree-sitter-heex.pc.in | ||
| "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-heex.pc" @ONLY) | ||
|
|
||
| include(GNUInstallDirs) | ||
|
|
||
| install(FILES bindings/c/tree-sitter-heex.h | ||
| DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/tree_sitter") | ||
| install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-heex.pc" | ||
| DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig") | ||
| install(TARGETS tree-sitter-heex | ||
| LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") | ||
|
|
||
| add_custom_target(ts-test "${TREE_SITTER_CLI}" test | ||
| WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | ||
| COMMENT "tree-sitter test") |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| ifeq ($(OS),Windows_NT) | ||
| $(error Windows is not supported) | ||
| endif | ||
|
|
||
| LANGUAGE_NAME := tree-sitter-heex | ||
| HOMEPAGE_URL := https://github.com/phoenixframework/tree-sitter-heex | ||
| VERSION := 0.7.0 | ||
|
|
||
| # repository | ||
| SRC_DIR := src | ||
|
|
||
| TS ?= tree-sitter | ||
|
|
||
| # install directory layout | ||
| PREFIX ?= /usr/local | ||
| INCLUDEDIR ?= $(PREFIX)/include | ||
| LIBDIR ?= $(PREFIX)/lib | ||
| PCLIBDIR ?= $(LIBDIR)/pkgconfig | ||
|
|
||
| # source/object files | ||
| PARSER := $(SRC_DIR)/parser.c | ||
| EXTRAS := $(filter-out $(PARSER),$(wildcard $(SRC_DIR)/*.c)) | ||
| OBJS := $(patsubst %.c,%.o,$(PARSER) $(EXTRAS)) | ||
|
|
||
| # flags | ||
| ARFLAGS ?= rcs | ||
| override CFLAGS += -I$(SRC_DIR) -std=c11 -fPIC | ||
|
|
||
| # ABI versioning | ||
| SONAME_MAJOR = $(shell sed -n 's/\#define LANGUAGE_VERSION //p' $(PARSER)) | ||
| SONAME_MINOR = $(word 1,$(subst ., ,$(VERSION))) | ||
|
|
||
| # OS-specific bits | ||
| ifeq ($(shell uname),Darwin) | ||
| SOEXT = dylib | ||
| SOEXTVER_MAJOR = $(SONAME_MAJOR).$(SOEXT) | ||
| SOEXTVER = $(SONAME_MAJOR).$(SONAME_MINOR).$(SOEXT) | ||
| LINKSHARED = -dynamiclib -Wl,-install_name,$(LIBDIR)/lib$(LANGUAGE_NAME).$(SOEXTVER),-rpath,@executable_path/../Frameworks | ||
| else | ||
| SOEXT = so | ||
| SOEXTVER_MAJOR = $(SOEXT).$(SONAME_MAJOR) | ||
| SOEXTVER = $(SOEXT).$(SONAME_MAJOR).$(SONAME_MINOR) | ||
| LINKSHARED = -shared -Wl,-soname,lib$(LANGUAGE_NAME).$(SOEXTVER) | ||
| endif | ||
| ifneq ($(filter $(shell uname),FreeBSD NetBSD DragonFly),) | ||
| PCLIBDIR := $(PREFIX)/libdata/pkgconfig | ||
| endif | ||
|
|
||
| all: lib$(LANGUAGE_NAME).a lib$(LANGUAGE_NAME).$(SOEXT) $(LANGUAGE_NAME).pc | ||
|
|
||
| lib$(LANGUAGE_NAME).a: $(OBJS) | ||
| $(AR) $(ARFLAGS) $@ $^ | ||
|
|
||
| lib$(LANGUAGE_NAME).$(SOEXT): $(OBJS) | ||
| $(CC) $(LDFLAGS) $(LINKSHARED) $^ $(LDLIBS) -o $@ | ||
| ifneq ($(STRIP),) | ||
| $(STRIP) $@ | ||
| endif | ||
|
|
||
| $(LANGUAGE_NAME).pc: bindings/c/$(LANGUAGE_NAME).pc.in | ||
| sed -e 's|@PROJECT_VERSION@|$(VERSION)|' \ | ||
| -e 's|@CMAKE_INSTALL_LIBDIR@|$(LIBDIR:$(PREFIX)/%=%)|' \ | ||
| -e 's|@CMAKE_INSTALL_INCLUDEDIR@|$(INCLUDEDIR:$(PREFIX)/%=%)|' \ | ||
| -e 's|@PROJECT_DESCRIPTION@|$(DESCRIPTION)|' \ | ||
| -e 's|@PROJECT_HOMEPAGE_URL@|$(HOMEPAGE_URL)|' \ | ||
| -e 's|@CMAKE_INSTALL_PREFIX@|$(PREFIX)|' $< > $@ | ||
|
|
||
| $(PARSER): $(SRC_DIR)/grammar.json | ||
| $(TS) generate $^ | ||
|
|
||
| install: all | ||
| install -d '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter '$(DESTDIR)$(PCLIBDIR)' '$(DESTDIR)$(LIBDIR)' | ||
| install -m644 bindings/c/$(LANGUAGE_NAME).h '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h | ||
| install -m644 $(LANGUAGE_NAME).pc '$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc | ||
| install -m644 lib$(LANGUAGE_NAME).a '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).a | ||
| install -m755 lib$(LANGUAGE_NAME).$(SOEXT) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER) | ||
| ln -sf lib$(LANGUAGE_NAME).$(SOEXTVER) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) | ||
| ln -sf lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXT) | ||
|
|
||
| uninstall: | ||
| $(RM) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).a \ | ||
| '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER) \ | ||
| '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) \ | ||
| '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXT) \ | ||
| '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h \ | ||
| '$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc | ||
|
|
||
| clean: | ||
| $(RM) $(OBJS) $(LANGUAGE_NAME).pc lib$(LANGUAGE_NAME).a lib$(LANGUAGE_NAME).$(SOEXT) | ||
|
|
||
| test: | ||
| $(TS) test | ||
|
|
||
| .PHONY: all install uninstall clean test |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| // swift-tools-version:5.3 | ||
| import PackageDescription | ||
|
|
||
| let package = Package( | ||
| name: "TreeSitterHeex", | ||
| products: [ | ||
| .library(name: "TreeSitterHeex", targets: ["TreeSitterHeex"]), | ||
| ], | ||
| dependencies: [ | ||
| .package(url: "https://github.com/ChimeHQ/SwiftTreeSitter", from: "0.8.0"), | ||
| ], | ||
| targets: [ | ||
| .target( | ||
| name: "TreeSitterHeex", | ||
| dependencies: [], | ||
| path: ".", | ||
| sources: [ | ||
| "src/parser.c", | ||
| // NOTE: if your language has an external scanner, add it here. | ||
| ], | ||
| resources: [ | ||
| .copy("queries") | ||
| ], | ||
| publicHeadersPath: "bindings/swift", | ||
| cSettings: [.headerSearchPath("src")] | ||
| ), | ||
| .testTarget( | ||
| name: "TreeSitterHeexTests", | ||
| dependencies: [ | ||
| "SwiftTreeSitter", | ||
| "TreeSitterHeex", | ||
| ], | ||
| path: "bindings/swift/TreeSitterHeexTests" | ||
| ) | ||
| ], | ||
| cLanguageStandard: .c11 | ||
| ) |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.