SSH client config grammar for tree-sitter.
This grammar is available at crates.io, and you can use it together with the Rust language binding.
use tree_sitter::{Parser, Language};
let mut parser = Parser::new();
parser.set_language(tree_sitter_ssh_client_config::language()).expect("Error loading SSH client config grammar");
let config = "\
Host example.com
User your-name
Port 12345";
let tree = parser.parse(config, None).unwrap();
assert_eq!(tree.root_node().to_sexp(), "(client_config (host (host_value)) (user (user_value)) (port (port_value)))");