Update t32 language queries to version 2.2.1 (#7811)

Version 2.2.1 of the grammar adds extended support for HLL (C, C++,..)
expressions. Quite a few node types were added, renamed or removed in
the process.

This change brings the highlight queries in sync with the ones found in
the repository of the grammar. The highlighting tests "look" okay after
updating the queries.

Recently, Codeberg had some reliability issues. That is why the language
is now using the mirror repository on GitLab as source instead.

Co-authored-by: Christoph Sax <christoph.sax@mailbox.org>
This commit is contained in:
Christoph Sax 2023-08-04 16:20:12 +02:00 committed by GitHub
parent 286e44050d
commit 5a51036bc1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 109 additions and 27 deletions

View file

@ -2691,7 +2691,7 @@ indent = { tab-width = 2, unit = " " }
[[grammar]]
name = "t32"
source = { git = "https://codeberg.org/xasc/tree-sitter-t32", rev = "1dd98248b01e4a3933c1b85b58bab0875e2ba437" }
source = { git = "https://gitlab.com/xasc/tree-sitter-t32", rev = "6da5e3cbabd376b566d04282005e52ffe67ef74a" }
[[language]]
name = "webc"

View file

@ -1,3 +1,28 @@
; Operators in command and conditional HLL expressions
(hll_comma_expression
"," @operator)
(hll_conditional_expression
[
"?"
":"
] @operator)
; Keywords, punctuation and operators
[
"enum"
"struct"
"union"
] @keyword.storage.type
"sizeof" @keyword.operator
[
"const"
"volatile"
] @keyword.storage.modifier
[
"="
"^^"
@ -28,49 +53,89 @@
"&"
"->"
"*"
"-="
"+="
"*="
"/="
"%="
"|="
"&="
"^="
">>="
"<<="
"--"
"++"
] @operator
[
"("
")"
"{"
"}"
"["
"]"
"("
")"
"{"
"}"
"["
"]"
] @punctuation.bracket
[
","
"."
";"
] @punctuation.delimiter
; Constants
; Strings and others literal types
(access_class) @constant.builtin
[
(access_class)
(address)
(bitmask)
(file_handle)
(frequency)
(time)
] @constant.builtin
(integer)
(hll_number_literal)
] @constant.numeric.integer
[
(float)
(frequency)
(percentage)
(time)
] @constant.numeric.float
(integer) @constant.numeric.integer
[
(string)
(hll_string_literal)
] @string
(character) @constant.character
; Strings
(string) @string
(hll_escape_sequence) @constant.character.escape
(path) @string.special.path
(symbol) @string.special.symbol
[
(character)
(hll_char_literal)
] @constant.character
; Types in HLL expressions
[
(hll_type_identifier)
(hll_type_descriptor)
] @type
(hll_type_qualifier) @keyword.storage.modifier
(hll_primitive_type) @type.builtin
; HLL call expressions
(hll_call_expression
function: (hll_field_expression
field: (hll_field_identifier) @function))
(hll_call_expression
function: (identifier) @function)
; Returns
(
(command_expression
@ -83,11 +148,13 @@
(#match? @keyword.return "^[rR][eE][tT][uU][rR][nN]$")
)
; Subroutine calls
(subroutine_call_expression
command: (identifier) @keyword
subroutine: (identifier) @function)
; Subroutine blocks
(subroutine_block
command: (identifier) @keyword
@ -97,15 +164,17 @@
label: (identifier) @function
(block))
; Parameter declarations
(parameter_declaration
command: (identifier) @keyword
(identifier)? @constant.builtin
macro: (macro) @variable.parameter)
; Variables, constants and labels
(macro) @variable
(internal_c_variable) @variable
(macro) @variable.builtin
(trace32_hll_variable) @variable.builtin
(
(command_expression
@ -116,17 +185,28 @@
(labeled_expression
label: (identifier) @label)
(option_expression
(identifier) @constant.builtin)
(format_expression
(identifier) @constant.builtin)
(
(argument_list (identifier) @constant.builtin)
(#match? @constant.builtin "^[%/][a-zA-Z][a-zA-Z0-9.]*$")
(argument_list (identifier) @constant.builtin)
(#match? @constant.builtin "^[%/][a-zA-Z][a-zA-Z0-9.]*$")
)
(argument_list
(identifier) @constant)
(identifier) @constant.builtin)
; Commands
(command_expression command: (identifier) @keyword)
(macro_definition command: (identifier) @keyword)
(call_expression
function: (identifier) @function.builtin)
; Control flow
(if_block
command: (identifier) @keyword.control.conditional.if)
@ -138,8 +218,10 @@
(repeat_block
command: (identifier) @keyword.control.loop)
(call_expression
function: (identifier) @function)
(type_identifier) @type
; HLL variables
(identifier) @variable
(hll_field_identifier) @variable.other.member
(comment) @comment