Compare commits

...

No commits in common. "v1" and "main" have entirely different histories.
v1 ... main

8 changed files with 81637 additions and 2481 deletions

View file

@ -35,7 +35,35 @@ jobs:
- name: Release - name: Release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with: with:
files: grammar-with-artifacts.zip files:
make_latest: true grammar-with-artifacts.zip
# release:
# needs: build
# runs-on: ubuntu-latest
# steps:
# - name: Download the artifact
# uses: actions/download-artifact@v3
# with:
# name: tree-sitter-grammar-release
#
# - name: Create GitHub Release
# id: create_release
# uses: actions/create-release@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN}}
# with:
# tag_name: v${{ github.run_number }}
# release_name: Release v${{ github.run_number }}
# draft: false
# prerelease: false
#
# - name: Upload zip file to GitHub release
# uses: actions/upload-release-asset@v1
# with:
# upload_url: ${{ steps.create_release.outputs.upload_url }}
# asset_path: ./tree-sitter-grammar-release.zip
# asset_name: tree-sitter-grammar-release.zip
# asset_content_type: application/zip
#

19
generate_case_insensitive.py Executable file
View file

@ -0,0 +1,19 @@
#!/usr/bin/env pypy3
import sys
import itertools
word = sys.argv[1]
if " " in word:
print("Word must contain only letters in the alphabet.")
sys.exit(1)
word_versions = tuple(zip(word.lower(), word.upper()))
capitalization_index_sets = itertools.product((0, 1), repeat=len(word))
for capitalization_index_set in capitalization_index_sets:
combined_word = ""
for i, capitalization_index in enumerate(capitalization_index_set):
combined_word += word_versions[i][capitalization_index]
print('"' + combined_word + '"')

1455
grammar.js

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
{ {
"name": "tree-sitter-zanscript", "name": "tree-sitter-zanscript",
"version": "1.0.0", "version": "3.0.0",
"description": "Zanscript grammar for tree-sitter", "description": "Zanscript grammar for tree-sitter",
"main": "index.js", "main": "index.js",
"types": "bindings/node", "types": "bindings/node",

View file

@ -1,46 +1,17 @@
; highlights.scm ; highlights.scm
[ (comment) @comment
"DEFINE" (variable) @variable
"define" (match) @constant.macro
"Define" (identifier) @constant
] @keyword.directive.define (number) @number
(string) @string
[ (function name: (identifier) @function.builtin)
"INCLUDE" (action name: (identifier) @function)
"include" (detector invoked_action: (identifier) @function.call)
"Include" (invoke invoked_action: (identifier) @function.call)
] @keyword.import (select first_action: (identifier) @function.call)
(select second_action: (identifier) @function.call)
[
"ACTION"
"action"
"Action"
"COMPLETE"
"complete"
"Complete"
] @keyword.function
[
"IF"
"if"
"If"
"ELSE"
"else"
"Else"
"ENDIF"
"endif"
"Endif"
] @keyword.conditional
[
"WHILE"
"while"
"While"
"ENDWHILE"
"endwhile"
"Endwhile"
] @keyword.repeat
[ [
"+" "+"
@ -59,11 +30,18 @@
")" ")"
] @punctuation.bracket ] @punctuation.bracket
(comment) @comment ; case insensitive
(variable) @variable
(match) @constant.macro (define_insensitive) @keyword.directive.define
(identifier) @constant (include_insensitive) @keyword.import
(number) @number (action_insensitive) @keyword.function
(string) @string (complete_insensitive) @keyword.function
(function name: (identifier) @function.call) (if_insensitive) @keyword.conditional
(action name: (identifier) @function) (else_insensitive) @keyword.conditional
(elseif_insensitive) @keyword.conditional
(endif_insensitive) @keyword.conditional
(while_insensitive) @keyword.repeat
(endwhile_insensitive) @keyword.repeat
(detector_insensitive) @function.builtin
(invoke_insensitive) @function.builtin
(select_insensitive) @function.builtin

5606
src/grammar.json generated

File diff suppressed because it is too large Load diff

5343
src/node-types.json generated

File diff suppressed because it is too large Load diff

71571
src/parser.c generated

File diff suppressed because it is too large Load diff