Parsing 11 languages in pure Go without CGO: replacing regex with a tree-sitter runtime