Tree-sitter is a parser generator tool and an incremental parsing library. It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited. Tree-sitter grammars can be reused in many different languages.
Example setup for compiling Rust code that depends on an unmodified tree-sitter crate to the web via WebAssembly (and WASI)