chore: something about hemar tree sitter

This commit is contained in:
2026-02-17 16:17:47 +00:00
parent d7ada535d4
commit ff87e8c411
6 changed files with 2244 additions and 0 deletions

View File

@@ -0,0 +1,311 @@
{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "hemar",
"rules": {
"source_file": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "element"
}
}
]
},
"element": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "interpolation"
},
{
"type": "SYMBOL",
"name": "segment"
},
{
"type": "SYMBOL",
"name": "zalupa"
},
{
"type": "SYMBOL",
"name": "actual_bracket"
},
{
"type": "SYMBOL",
"name": "include"
}
]
},
"interpolation": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{["
},
{
"type": "SYMBOL",
"name": "path"
},
{
"type": "STRING",
"value": "]}"
}
]
},
"segment": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "for"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "element"
}
},
{
"type": "SYMBOL",
"name": "done"
}
]
},
"for": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{["
},
{
"type": "STRING",
"value": "for"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "STRING",
"value": "in"
},
{
"type": "SYMBOL",
"name": "path"
},
{
"type": "STRING",
"value": "]}"
}
]
},
"done": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{["
},
{
"type": "STRING",
"value": "done"
},
{
"type": "STRING",
"value": "]}"
}
]
},
"actual_bracket": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{["
},
{
"type": "STRING",
"value": "{["
},
{
"type": "STRING",
"value": "]}"
}
]
},
"include": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{["
},
{
"type": "STRING",
"value": "include"
},
{
"type": "SYMBOL",
"name": "path"
},
{
"type": "STRING",
"value": "]}"
}
]
},
"path": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "index"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "index"
}
]
}
]
}
}
]
}
]
},
"index": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "integer_index"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"integer_index": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "PATTERN",
"value": "[1-9]\\d*"
},
{
"type": "PATTERN",
"value": "-[1-9]"
},
{
"type": "PATTERN",
"value": "-[1-9]\\d*"
}
]
}
},
"string": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "[^]\\[{} \\n\\t\\r.\\\\\"]+"
}
}
},
{
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "\"([^\"]|\"\")*\""
}
}
}
]
},
"zalupa": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "(?:\\{[^\\[]|[^{])+"
}
}
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": [],
"reserved": {}
}