More case insensitivity and additional function highlighting

This commit is contained in:
Ella Dunbar 2025-10-18 16:58:19 -05:00
parent 0b9a232e1b
commit 6142d7d7f4
6 changed files with 77943 additions and 2439 deletions

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 + '"')

1447
grammar.js

File diff suppressed because it is too large Load diff

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

5581
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

67914
src/parser.c generated

File diff suppressed because it is too large Load diff