tree-sitter-twolc
Version:
tree-sitter grammar of hfst-twolc
766 lines • 12.7 kB
JSON
[
{
"type": "alphabet",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "alphabet_header",
"named": true
},
{
"type": "semicolon",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "symbol_pair",
"named": true
}
]
}
},
{
"type": "arrow",
"named": true,
"fields": {}
},
{
"type": "context",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": false,
"types": [
{
"type": "pattern",
"named": true
}
]
},
"locus": {
"multiple": false,
"required": true,
"types": [
{
"type": "locus",
"named": true
}
]
},
"right": {
"multiple": false,
"required": false,
"types": [
{
"type": "pattern",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "semicolon",
"named": true
}
]
}
},
{
"type": "definition",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "symbol",
"named": true
}
]
},
"pattern": {
"multiple": false,
"required": true,
"types": [
{
"type": "pattern",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "eq",
"named": true
},
{
"type": "semicolon",
"named": true
}
]
}
},
{
"type": "definitions",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "definition",
"named": true
},
{
"type": "definitions_header",
"named": true
}
]
}
},
{
"type": "diacritics",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "diacritics_header",
"named": true
},
{
"type": "semicolon",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
},
{
"type": "negative_contexts",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "context",
"named": true
},
{
"type": "except",
"named": true
}
]
}
},
{
"type": "pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "any",
"named": true
},
{
"type": "bool_op",
"named": true
},
{
"type": "compose_op",
"named": true
},
{
"type": "ignore_op",
"named": true
},
{
"type": "loptional",
"named": true
},
{
"type": "lpar",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "prefix_op",
"named": true
},
{
"type": "replace_op",
"named": true
},
{
"type": "roptional",
"named": true
},
{
"type": "rpar",
"named": true
},
{
"type": "suffix_op",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "symbol_pair",
"named": true
},
{
"type": "word_boundary",
"named": true
}
]
}
},
{
"type": "positive_contexts",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "context",
"named": true
}
]
}
},
{
"type": "regex_arrow",
"named": true,
"fields": {}
},
{
"type": "regex_target",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "pattern",
"named": true
}
]
}
},
{
"type": "rule",
"named": true,
"fields": {
"arrow": {
"multiple": false,
"required": true,
"types": [
{
"type": "arrow",
"named": true
},
{
"type": "regex_arrow",
"named": true
}
]
},
"contexts": {
"multiple": false,
"required": true,
"types": [
{
"type": "positive_contexts",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "rule_name",
"named": true
}
]
},
"neg_contexts": {
"multiple": false,
"required": false,
"types": [
{
"type": "negative_contexts",
"named": true
}
]
},
"target": {
"multiple": false,
"required": true,
"types": [
{
"type": "regex_target",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "symbol_pair",
"named": true
}
]
},
"variables": {
"multiple": false,
"required": false,
"types": [
{
"type": "variables",
"named": true
}
]
}
}
},
{
"type": "rule_variables",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "rule_variables_header",
"named": true
},
{
"type": "semicolon",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
},
{
"type": "rules",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "rule",
"named": true
},
{
"type": "rules_header",
"named": true
}
]
}
},
{
"type": "set",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "symbol",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "eq",
"named": true
},
{
"type": "semicolon",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "symbol_pair",
"named": true
}
]
}
},
{
"type": "sets",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "set",
"named": true
},
{
"type": "sets_header",
"named": true
}
]
}
},
{
"type": "source_file",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "alphabet",
"named": true
},
{
"type": "definitions",
"named": true
},
{
"type": "diacritics",
"named": true
},
{
"type": "rule_variables",
"named": true
},
{
"type": "rules",
"named": true
},
{
"type": "sets",
"named": true
}
]
}
},
{
"type": "symbol_pair",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": false,
"types": [
{
"type": "symbol",
"named": true
}
]
},
"right": {
"multiple": false,
"required": false,
"types": [
{
"type": "symbol",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "colon",
"named": true
}
]
}
},
{
"type": "variable_keyword",
"named": true,
"fields": {}
},
{
"type": "variables",
"named": true,
"fields": {
"name": {
"multiple": true,
"required": true,
"types": [
{
"type": "symbol",
"named": true
}
]
},
"set": {
"multiple": true,
"required": true,
"types": [
{
"type": "loptional",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "roptional",
"named": true
},
{
"type": "symbol",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "variable_keyword",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "in_keyword",
"named": true
},
{
"type": "semicolon",
"named": true
},
{
"type": "where",
"named": true
}
]
}
},
{
"type": "/<=",
"named": false
},
{
"type": "/<==",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "<==",
"named": false
},
{
"type": "<==>",
"named": false
},
{
"type": "<=>",
"named": false
},
{
"type": "<[",
"named": false
},
{
"type": "==>",
"named": false
},
{
"type": "=>",
"named": false
},
{
"type": "]>",
"named": false
},
{
"type": "alphabet_header",
"named": true
},
{
"type": "any",
"named": true
},
{
"type": "bool_op",
"named": true
},
{
"type": "colon",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "compose_op",
"named": true
},
{
"type": "definitions_header",
"named": true
},
{
"type": "diacritics_header",
"named": true
},
{
"type": "eq",
"named": true
},
{
"type": "except",
"named": true
},
{
"type": "ignore_op",
"named": true
},
{
"type": "in_keyword",
"named": true
},
{
"type": "locus",
"named": true
},
{
"type": "loptional",
"named": true
},
{
"type": "lpar",
"named": true
},
{
"type": "matched",
"named": false
},
{
"type": "mixed",
"named": false
},
{
"type": "prefix_op",
"named": true
},
{
"type": "replace_op",
"named": true
},
{
"type": "roptional",
"named": true
},
{
"type": "rpar",
"named": true
},
{
"type": "rule_name",
"named": true
},
{
"type": "rule_variables_header",
"named": true
},
{
"type": "rules_header",
"named": true
},
{
"type": "semicolon",
"named": true
},
{
"type": "sets_header",
"named": true
},
{
"type": "suffix_op",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "where",
"named": true
},
{
"type": "word_boundary",
"named": true
}
]