; 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