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
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: grammar-with-artifacts.zip
make_latest: true
files:
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 + '"')

1457
grammar.js

File diff suppressed because it is too large Load diff

View file

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

View file

@ -1,46 +1,17 @@
; highlights.scm
[
"DEFINE"
"define"
"Define"
] @keyword.directive.define
[
"INCLUDE"
"include"
"Include"
] @keyword.import
[
"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
(comment) @comment
(variable) @variable
(match) @constant.macro
(identifier) @constant
(number) @number
(string) @string
(function name: (identifier) @function.builtin)
(action name: (identifier) @function)
(detector invoked_action: (identifier) @function.call)
(invoke invoked_action: (identifier) @function.call)
(select first_action: (identifier) @function.call)
(select second_action: (identifier) @function.call)
[
"+"
@ -59,11 +30,18 @@
")"
] @punctuation.bracket
(comment) @comment
(variable) @variable
(match) @constant.macro
(identifier) @constant
(number) @number
(string) @string
(function name: (identifier) @function.call)
(action name: (identifier) @function)
; case insensitive
(define_insensitive) @keyword.directive.define
(include_insensitive) @keyword.import
(action_insensitive) @keyword.function
(complete_insensitive) @keyword.function
(if_insensitive) @keyword.conditional
(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

5614
src/grammar.json generated

File diff suppressed because it is too large Load diff

5345
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