{ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "test_lang", "word": "identifier", "rules": { "source_file": { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "statement" }, { "type": "SYMBOL", "name": "expression" } ] } }, "identifier": { "type": "PATTERN", "value": "[a-zA-Z_][a-zA-Z0-9_]*" }, "number": { "type": "PATTERN", "value": "\\d+" }, "string": { "type": "PATTERN", "value": "\"[^\"]*\"" }, "expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "string" } ] }, "statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "variable_declaration" } ] }, "variable_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "let" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": "=" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ";" } ] }, "line_comment": { "type": "SEQ", "members": [ { "type": "STRING", "value": "//" }, { "type": "PATTERN", "value": "[^\\n]*" } ] } }, "extras": [ { "type": "PATTERN", "value": "\\s" }, { "type": "SYMBOL", "name": "line_comment" } ], "conflicts": [], "precedences": [], "externals": [], "inline": [], "supertypes": [], "reserved": {} }