# tree-sitter-vm A [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) grammar for VM (Virtual Machine) language as used in the [nand2tetris](https://www.nand2tetris.org/) course. ## Supported File Types - `.vm` - VM language source files ## Features - **Syntax highlighting** for arithmetic, memory, program flow, and function commands - **Code navigation** with outline support for functions and labels - **Bracket matching** for all syntax elements - **Integration** with Zed editor and other Tree-sitter compatible editors ## Usage This grammar is designed to work with the [nand2tetris-zed](https://github.com/soconnor0919/nand2tetris-zed) extension for Zed editor, providing complete language support for the nand2tetris course. ## Grammar Details - **Language**: VM Language - **Scope**: `source.vm` - **File Types**: `.vm` - **Node Types**: `push_command`, `pop_command`, `arithmetic_command`, `memory_command`, `program_flow_command`, `function_command` ## Development ### Building ```bash # Generate parser tree-sitter generate # Build parser tree-sitter build # Test grammar tree-sitter test ``` ## License MIT License - see [LICENSE](LICENSE) file for details. ## Related - [nand2tetris-zed](https://github.com/soconnor0919/nand2tetris-zed) - Complete Zed extension - [nand2tetris.org](https://www.nand2tetris.org/) - Course website - [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) - Parser generator