mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-10 23:40:04 -04:00
feat(t32): initial support
This commit is contained in:
parent
51df4212e7
commit
2d48cbc831
10 changed files with 371 additions and 0 deletions
|
|
@ -365,6 +365,9 @@
|
||||||
"sxhkdrc": {
|
"sxhkdrc": {
|
||||||
"revision": "440d5f913d9465c9c776a1bd92334d32febcf065"
|
"revision": "440d5f913d9465c9c776a1bd92334d32febcf065"
|
||||||
},
|
},
|
||||||
|
"t32": {
|
||||||
|
"revision": "20fe21a5a4eb79e1788f6424dcc6a1f2bd023ffa"
|
||||||
|
},
|
||||||
"teal": {
|
"teal": {
|
||||||
"revision": "1ae8c68e90523b26b93af56feb7868fe4214e2b2"
|
"revision": "1ae8c68e90523b26b93af56feb7868fe4214e2b2"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1206,6 +1206,19 @@ list.tiger = {
|
||||||
maintainers = { "@ambroisie" },
|
maintainers = { "@ambroisie" },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list.t32 = {
|
||||||
|
install_info = {
|
||||||
|
url = "https://codeberg.org/xasc/tree-sitter-t32",
|
||||||
|
files = { "src/parser.c", "src/scanner.c" },
|
||||||
|
branch = "main",
|
||||||
|
revision = "675cd7de4eb80f2faa1e6d3bc9ee195fa9ef9790",
|
||||||
|
generate_requires_npm = false,
|
||||||
|
requires_generate_from_grammar = false,
|
||||||
|
},
|
||||||
|
filetype = "t32",
|
||||||
|
maintainers = { "@xasc" },
|
||||||
|
}
|
||||||
|
|
||||||
list.sxhkdrc = {
|
list.sxhkdrc = {
|
||||||
install_info = {
|
install_info = {
|
||||||
url = "https://github.com/RaafatTurki/tree-sitter-sxhkdrc",
|
url = "https://github.com/RaafatTurki/tree-sitter-sxhkdrc",
|
||||||
|
|
|
||||||
1
queries/t32/folds.scm
Normal file
1
queries/t32/folds.scm
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
(block) @fold
|
||||||
141
queries/t32/highlights.scm
Normal file
141
queries/t32/highlights.scm
Normal file
|
|
@ -0,0 +1,141 @@
|
||||||
|
[
|
||||||
|
"="
|
||||||
|
"^^"
|
||||||
|
"||"
|
||||||
|
"&&"
|
||||||
|
"+"
|
||||||
|
"-"
|
||||||
|
"*"
|
||||||
|
"/"
|
||||||
|
"%"
|
||||||
|
"|"
|
||||||
|
"^"
|
||||||
|
"=="
|
||||||
|
"!="
|
||||||
|
">"
|
||||||
|
">="
|
||||||
|
"<="
|
||||||
|
"<"
|
||||||
|
"<<"
|
||||||
|
">>"
|
||||||
|
".."
|
||||||
|
"--"
|
||||||
|
"++"
|
||||||
|
"+"
|
||||||
|
"-"
|
||||||
|
"~"
|
||||||
|
"!"
|
||||||
|
"&"
|
||||||
|
"->"
|
||||||
|
"*"
|
||||||
|
] @operator
|
||||||
|
|
||||||
|
[
|
||||||
|
"("
|
||||||
|
")"
|
||||||
|
"{"
|
||||||
|
"}"
|
||||||
|
"["
|
||||||
|
"]"
|
||||||
|
] @punctuation.bracket
|
||||||
|
|
||||||
|
[
|
||||||
|
","
|
||||||
|
"."
|
||||||
|
";"
|
||||||
|
] @punctuation.delimiter
|
||||||
|
|
||||||
|
[
|
||||||
|
(access_class)
|
||||||
|
(address)
|
||||||
|
(bitmask)
|
||||||
|
(file_handle)
|
||||||
|
(frequency)
|
||||||
|
(integer)
|
||||||
|
(percentage)
|
||||||
|
(time)
|
||||||
|
] @number
|
||||||
|
|
||||||
|
(float) @float
|
||||||
|
|
||||||
|
(string) @string
|
||||||
|
|
||||||
|
(path) @string.special
|
||||||
|
|
||||||
|
(symbol) @symbol
|
||||||
|
|
||||||
|
(character) @character
|
||||||
|
|
||||||
|
; Commands
|
||||||
|
(command_expression
|
||||||
|
command: (identifier) @keyword)
|
||||||
|
(macro_definition
|
||||||
|
command: (identifier) @keyword)
|
||||||
|
|
||||||
|
; Returns
|
||||||
|
(
|
||||||
|
(command_expression
|
||||||
|
command: (identifier) @keyword.return)
|
||||||
|
(#match? @keyword.return "^[eE][nN][dD]([dD][oO])?$")
|
||||||
|
)
|
||||||
|
(
|
||||||
|
(command_expression
|
||||||
|
command: (identifier) @keyword.return)
|
||||||
|
(#match? @keyword.return "^[rR][eE][tT][uU][rR][nN]$")
|
||||||
|
)
|
||||||
|
|
||||||
|
; Subroutine calls
|
||||||
|
(subroutine_call_expression
|
||||||
|
command: (identifier) @keyword
|
||||||
|
subroutine: (identifier) @function.call)
|
||||||
|
|
||||||
|
; Variables, constants and labels
|
||||||
|
(macro) @variable.builtin
|
||||||
|
(internal_c_variable) @variable.builtin
|
||||||
|
|
||||||
|
(argument_list
|
||||||
|
(identifier) @constant)
|
||||||
|
(
|
||||||
|
(argument_list (identifier) @constant.builtin)
|
||||||
|
(#match? @constant.builtin "^[%/][a-zA-Z][a-zA-Z0-9.]*$")
|
||||||
|
)
|
||||||
|
|
||||||
|
(
|
||||||
|
(command_expression
|
||||||
|
command: (identifier) @keyword
|
||||||
|
arguments: (argument_list . (identifier) @label))
|
||||||
|
(#match? @keyword "^[gG][oO][tT][oO]$")
|
||||||
|
)
|
||||||
|
(labeled_expression
|
||||||
|
label: (identifier) @label)
|
||||||
|
|
||||||
|
; Subroutine blocks
|
||||||
|
(subroutine_block
|
||||||
|
command: (identifier) @keyword
|
||||||
|
subroutine: (identifier) @function)
|
||||||
|
|
||||||
|
(labeled_expression
|
||||||
|
label: (identifier) @function
|
||||||
|
(block))
|
||||||
|
|
||||||
|
; Parameter declarations
|
||||||
|
(parameter_declaration
|
||||||
|
command: (identifier) @keyword
|
||||||
|
macro: (macro) @parameter)
|
||||||
|
|
||||||
|
; Control flow
|
||||||
|
(if_block
|
||||||
|
command: (identifier) @conditional)
|
||||||
|
(else_block
|
||||||
|
command: (identifier) @conditional)
|
||||||
|
|
||||||
|
(while_block
|
||||||
|
command: (identifier) @repeat)
|
||||||
|
(repeat_block
|
||||||
|
command: (identifier) @repeat)
|
||||||
|
|
||||||
|
(call_expression
|
||||||
|
function: (identifier) @function.builtin)
|
||||||
|
|
||||||
|
(type_identifier) @type
|
||||||
|
(comment) @comment @spell
|
||||||
1
queries/t32/injections.scm
Normal file
1
queries/t32/injections.scm
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
(comment) @comment
|
||||||
35
queries/t32/locals.scm
Normal file
35
queries/t32/locals.scm
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
(block) @scope
|
||||||
|
|
||||||
|
; Parameter definitions
|
||||||
|
(parameter_declaration
|
||||||
|
command: (identifier)
|
||||||
|
macro: (macro) @definition.parameter)
|
||||||
|
|
||||||
|
; Variable definitions
|
||||||
|
(macro_definition
|
||||||
|
command: (identifier)
|
||||||
|
macro: (macro) @definition.var)
|
||||||
|
|
||||||
|
(command_expression
|
||||||
|
command: (identifier)
|
||||||
|
arguments: (argument_list
|
||||||
|
variable: (identifier) @definition.var))
|
||||||
|
|
||||||
|
; Function definitions
|
||||||
|
(subroutine_block
|
||||||
|
command: (identifier)
|
||||||
|
subroutine: (identifier) @definition.function)
|
||||||
|
|
||||||
|
(labeled_expression
|
||||||
|
label: (identifier) @definition.function
|
||||||
|
(block))
|
||||||
|
|
||||||
|
; References
|
||||||
|
(
|
||||||
|
(subroutine_call_expression
|
||||||
|
command: (identifier)
|
||||||
|
subroutine: (identifier) @reference)
|
||||||
|
(set! reference.kind "function")
|
||||||
|
)
|
||||||
|
|
||||||
|
(macro) @reference
|
||||||
10
tests/query/highlights/t32/comments.cmm
Normal file
10
tests/query/highlights/t32/comments.cmm
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
// This is a comment
|
||||||
|
; <- comment
|
||||||
|
|
||||||
|
; Another comment
|
||||||
|
; <- comment
|
||||||
|
|
||||||
|
ECHO &a // This is a trailing comment
|
||||||
|
; ^ comment
|
||||||
|
|
||||||
|
// vim: set ft=t32:
|
||||||
103
tests/query/highlights/t32/keywords.cmm
Normal file
103
tests/query/highlights/t32/keywords.cmm
Normal file
|
|
@ -0,0 +1,103 @@
|
||||||
|
PRIVATE &password
|
||||||
|
; <- keyword
|
||||||
|
; ^ variable.builtin
|
||||||
|
ENTRY &password
|
||||||
|
; <- keyword
|
||||||
|
; ^ parameter
|
||||||
|
|
||||||
|
IF "&password"==""
|
||||||
|
; <- conditional
|
||||||
|
; ^ string
|
||||||
|
; ^ variable.builtin
|
||||||
|
; ^ operator
|
||||||
|
(
|
||||||
|
ECHO "Failed to provide password."
|
||||||
|
ENDDO
|
||||||
|
; ^ keyword.return
|
||||||
|
)
|
||||||
|
ELSE
|
||||||
|
; <- conditional
|
||||||
|
(
|
||||||
|
PRIVATE &pass
|
||||||
|
|
||||||
|
&pass=FALSE()
|
||||||
|
; ^ function.builtin
|
||||||
|
WHILE !&pass
|
||||||
|
; ^ operator
|
||||||
|
(
|
||||||
|
GOSUB verify_password "&password"
|
||||||
|
; ^ function.call
|
||||||
|
RETURNVALUES &pass
|
||||||
|
; ^ parameter
|
||||||
|
WAIT 10.ms
|
||||||
|
; ^ number
|
||||||
|
)
|
||||||
|
|
||||||
|
IF !&pass
|
||||||
|
GOTO fail
|
||||||
|
; ^ label
|
||||||
|
ELSE
|
||||||
|
(
|
||||||
|
GOSUB start_debug
|
||||||
|
; ^ function.call
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
LOCAL &num
|
||||||
|
; ^ variable.builtin
|
||||||
|
|
||||||
|
&num = 2.
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
RePeaT &num PRINT "Password: &password"
|
||||||
|
; ^ variable.builtin
|
||||||
|
; ^ variable.builtin
|
||||||
|
|
||||||
|
WinCLEAR
|
||||||
|
FramePOS ,,,,Maximized
|
||||||
|
; ^ punctuation.delimiter
|
||||||
|
; ^ constant
|
||||||
|
WinPOS 0% 50% 100% 35%
|
||||||
|
; ^ number
|
||||||
|
COVerage.ListFunc
|
||||||
|
|
||||||
|
ENDDO
|
||||||
|
|
||||||
|
|
||||||
|
fail:
|
||||||
|
; <- label
|
||||||
|
PRINT %ERROR "Password verification failed."
|
||||||
|
END
|
||||||
|
; ^ keyword.return
|
||||||
|
|
||||||
|
|
||||||
|
verify_password:
|
||||||
|
; <- function
|
||||||
|
(
|
||||||
|
PARAMETERS &password
|
||||||
|
; ^ parameter
|
||||||
|
|
||||||
|
SYStem.Option.KEYCODE "&password"
|
||||||
|
SYStem.JtagClock 1kHz
|
||||||
|
; ^ number
|
||||||
|
SYStem.Mode.Attach
|
||||||
|
|
||||||
|
Data.Set EAXI:0x34000000 %Long 0x34000100 0x34000021 /verify
|
||||||
|
; ^ number
|
||||||
|
; ^ constant.builtin
|
||||||
|
; ^ constant
|
||||||
|
|
||||||
|
RETURN TRUE()
|
||||||
|
; ^ keyword.return
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
SUBROUTINE start_debug
|
||||||
|
; ^ function
|
||||||
|
(
|
||||||
|
Go main
|
||||||
|
RETURN
|
||||||
|
; ^ keyword.return
|
||||||
|
)
|
||||||
|
|
||||||
|
// vim: set ft=t32:
|
||||||
37
tests/query/highlights/t32/literals.cmm
Normal file
37
tests/query/highlights/t32/literals.cmm
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
WinPOS ,,1000.,,,,myWatchWindow
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
PRinTer.OPEN "~~~/varwatch.txt" ASCIIE
|
||||||
|
; ^ string
|
||||||
|
|
||||||
|
sYmbol.NEW _InitialSP 0x34000100
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
DO ~~~~/test.cmm
|
||||||
|
; ^ string.special
|
||||||
|
|
||||||
|
WAIT 1.ns
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
SYStem.JtagClock 100.GHZ
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
DATA.SET P:&HEAD+0x4 %LONG DATA.LONG(EA:&HEAD+0x4)&0xFFFFFF
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
List `main`
|
||||||
|
; ^ symbol
|
||||||
|
|
||||||
|
&range = 'a'--'z'||'0'--'9'
|
||||||
|
; ^ character
|
||||||
|
; ^ operator
|
||||||
|
; ^ character
|
||||||
|
|
||||||
|
Data.Set 0xffff800000 0y0011xx01xx&&a
|
||||||
|
; ^ number
|
||||||
|
; ^ operator
|
||||||
|
|
||||||
|
WinPOS 0% 85% 100% 15%
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
// vim: set ft=t32:
|
||||||
27
tests/query/highlights/t32/var.cmm
Normal file
27
tests/query/highlights/t32/var.cmm
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
Var.NEWGLOBAL char[4][32] \myarr
|
||||||
|
; <- keyword
|
||||||
|
; ^ type
|
||||||
|
; ^ variable.builtin
|
||||||
|
LOCAL &i &data
|
||||||
|
|
||||||
|
&data="zero|one|two|three"
|
||||||
|
|
||||||
|
&i=0.
|
||||||
|
WHILE &i<4
|
||||||
|
(
|
||||||
|
PRIVATE &val
|
||||||
|
&val=STRing.SPLIT("&data","|",&i)
|
||||||
|
Var.Assign \myarr[&i]="&val"
|
||||||
|
; ^ variable.builtin
|
||||||
|
&i=&i+1.
|
||||||
|
)
|
||||||
|
|
||||||
|
Var.NEWLOCAL \x
|
||||||
|
; <- keyword
|
||||||
|
; ^ variable.builtin
|
||||||
|
Var.set \x=func3(5,3)
|
||||||
|
; ^ variable.builtin
|
||||||
|
PRINT Var.VALUE(\x)
|
||||||
|
; ^ variable.builtin
|
||||||
|
|
||||||
|
// vim: set ft=t32:
|
||||||
Loading…
Add table
Add a link
Reference in a new issue