mirror of
https://github.com/elladunbar/tree-sitter-zanscript.git
synced 2025-11-05 15:19:55 -06:00
Compare commits
No commits in common. "v1" and "main" have entirely different histories.
8 changed files with 81637 additions and 2481 deletions
34
.github/workflows/release.yml
vendored
34
.github/workflows/release.yml
vendored
|
|
@ -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
19
generate_case_insensitive.py
Executable 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
1455
grammar.js
File diff suppressed because it is too large
Load diff
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
5606
src/grammar.json
generated
5606
src/grammar.json
generated
File diff suppressed because it is too large
Load diff
5343
src/node-types.json
generated
5343
src/node-types.json
generated
File diff suppressed because it is too large
Load diff
71571
src/parser.c
generated
71571
src/parser.c
generated
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue