Initial commit: Tree-sitter grammar for VM language

This commit is contained in:
2025-09-10 23:50:31 -04:00
commit 615f50fc59
139 changed files with 3987 additions and 0 deletions

54
queries/highlights.scm Normal file
View File

@@ -0,0 +1,54 @@
; VM language syntax highlighting queries based on actual node types
; Arithmetic and logical commands
(arithmetic_command) @keyword
; Memory access commands
"push" @keyword
"pop" @keyword
; Memory segments
(memory_segment) @type
; Program flow commands
"label" @keyword.control
"goto" @keyword.control
"if-goto" @keyword.control
; Function commands
"function" @keyword.function
"call" @keyword.function
(return_command) @keyword.function
; Numbers (indices, counts)
(index) @constant.numeric
(local_vars_count) @constant.numeric
(args_count) @constant.numeric
; Identifiers
(label_name) @label
(function_name) @function
; Comments
(comment) @comment
; Specific memory segments highlighting
"argument" @type.builtin
"local" @type.builtin
"static" @type.builtin
"constant" @type.builtin
"this" @type.builtin
"that" @type.builtin
"pointer" @type.builtin
"temp" @type.builtin
; Arithmetic operations
"add" @operator
"sub" @operator
"neg" @operator
"eq" @operator
"gt" @operator
"lt" @operator
"and" @operator
"or" @operator
"not" @operator