From 94b22d25080d91ff80504189ac9e1991df765c76 Mon Sep 17 00:00:00 2001 From: dabico Date: Mon, 18 Dec 2023 11:32:18 +0100 Subject: [PATCH 1/4] Using pattern matching instead of if-else for added clarity --- build.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/build.py b/build.py index a04065d9..e2cba12e 100755 --- a/build.py +++ b/build.py @@ -52,12 +52,17 @@ def build(repositories, output_path="libjava-tree-sitter", system=None, arch=Non repository_language = repository_name.split('tree-sitter-')[-1] repository_macro = f"TS_LANGUAGE_{repository_language.replace('-', '_').upper()}" compiler.define_macro(repository_macro, "1") - if repository_name in ["tree-sitter-dtd", "tree-sitter-markdown", "tree-sitter-xml"]: - src_path = path(repository, repository_name, "src") - elif repository_name in ["tree-sitter-ocaml", "tree-sitter-tsx", "tree-sitter-typescript"]: - src_path = path(repository, repository_language, "src") - else: - src_path = path(repository, "src") + match repository_name: + case "tree-sitter-dtd" |\ + "tree-sitter-markdown" |\ + "tree-sitter-xml": + src_path = path(repository, repository_name, "src") + case "tree-sitter-ocaml" |\ + "tree-sitter-tsx" |\ + "tree-sitter-typescript": + src_path = path(repository, repository_language, "src") + case _: + src_path = path(repository, "src") source_paths.append(path(src_path, "parser.c")) scanner_c = path(src_path, "scanner.c") scanner_cc = path(src_path, "scanner.cc") From 5fec15446d482c50268f5dca4ffd58922f639929 Mon Sep 17 00:00:00 2001 From: dabico Date: Mon, 18 Dec 2023 11:33:51 +0100 Subject: [PATCH 2/4] Variable extractions --- build.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/build.py b/build.py index e2cba12e..1d47faa8 100755 --- a/build.py +++ b/build.py @@ -32,7 +32,8 @@ def build(repositories, output_path="libjava-tree-sitter", system=None, arch=Non if arch and system == "Darwin": arch = "arm64" if "aarch64" in arch else arch - output_path = f"{output_path}.{'dylib' if system == 'Darwin' else 'so'}" + output_extension = 'dylib' if system == 'Darwin' else 'so' + output_path = f"{output_path}.{output_extension}" env = "" if arch: env += ( @@ -41,8 +42,10 @@ def build(repositories, output_path="libjava-tree-sitter", system=None, arch=Non else f"CFLAGS='-m{arch}' LDFLAGS='-m{arch}'" ) - cmd(f"make -C \"{path(here, 'tree-sitter')}\" clean {'> /dev/null' if not verbose else ''}") - cmd(f"{env} make -C \"{path(here, 'tree-sitter')}\" {'> /dev/null' if not verbose else ''}") + tree_sitter = path(here, 'tree-sitter') + redirect = '> /dev/null' if not verbose else '' + cmd(f"make -C \"{tree_sitter}\" clean {redirect}") + cmd(f"{env} make -C \"{tree_sitter}\" {redirect}") source_paths = find(path(here, "lib", "*.cc")) From f21edd6e8bc9d9f995471f4346984e4014f52af8 Mon Sep 17 00:00:00 2001 From: dabico Date: Tue, 19 Dec 2023 19:07:11 +0100 Subject: [PATCH 3/4] Swap single for double quotes --- build.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/build.py b/build.py index 1d47faa8..5f6198b2 100755 --- a/build.py +++ b/build.py @@ -32,7 +32,7 @@ def build(repositories, output_path="libjava-tree-sitter", system=None, arch=Non if arch and system == "Darwin": arch = "arm64" if "aarch64" in arch else arch - output_extension = 'dylib' if system == 'Darwin' else 'so' + output_extension = "dylib" if system == "Darwin" else "so" output_path = f"{output_path}.{output_extension}" env = "" if arch: @@ -42,8 +42,8 @@ def build(repositories, output_path="libjava-tree-sitter", system=None, arch=Non else f"CFLAGS='-m{arch}' LDFLAGS='-m{arch}'" ) - tree_sitter = path(here, 'tree-sitter') - redirect = '> /dev/null' if not verbose else '' + tree_sitter = path(here, "tree-sitter") + redirect = "> /dev/null" if not verbose else "" cmd(f"make -C \"{tree_sitter}\" clean {redirect}") cmd(f"{env} make -C \"{tree_sitter}\" {redirect}") @@ -51,9 +51,9 @@ def build(repositories, output_path="libjava-tree-sitter", system=None, arch=Non compiler = new_c_compiler() for repository in repositories: - repository_name = split_path(repository.rstrip('/'))[1] - repository_language = repository_name.split('tree-sitter-')[-1] - repository_macro = f"TS_LANGUAGE_{repository_language.replace('-', '_').upper()}" + repository_name = split_path(repository.rstrip("/"))[1] + repository_language = repository_name.split("tree-sitter-")[-1] + repository_macro = f"TS_LANGUAGE_{repository_language.replace("-", "_").upper()}" compiler.define_macro(repository_macro, "1") match repository_name: case "tree-sitter-dtd" |\ From 84e47e882e96d6c08e81ce72576216abd7bd5190 Mon Sep 17 00:00:00 2001 From: dabico Date: Fri, 22 Dec 2023 16:20:28 +0100 Subject: [PATCH 4/4] Fix syntax error --- build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.py b/build.py index 5f6198b2..520907e2 100755 --- a/build.py +++ b/build.py @@ -53,7 +53,7 @@ def build(repositories, output_path="libjava-tree-sitter", system=None, arch=Non for repository in repositories: repository_name = split_path(repository.rstrip("/"))[1] repository_language = repository_name.split("tree-sitter-")[-1] - repository_macro = f"TS_LANGUAGE_{repository_language.replace("-", "_").upper()}" + repository_macro = f"TS_LANGUAGE_{repository_language.replace('-', '_').upper()}" compiler.define_macro(repository_macro, "1") match repository_name: case "tree-sitter-dtd" |\