tree-sitter-d2/src/grammar.json

441 lines
9.4 KiB
JSON
Raw Normal View History

2022-12-04 00:07:26 +03:00
{
"name": "d2",
"rules": {
"source_file": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_definition"
}
},
"_definition": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "connection"
},
{
"type": "SYMBOL",
"name": "shape"
}
]
},
"_end": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "STRING",
"value": "\n"
}
]
},
"connection": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
2022-12-04 03:21:42 +03:00
"name": "identifier"
2022-12-04 00:07:26 +03:00
},
{
2022-12-04 03:25:38 +03:00
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "arrow"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "label"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "arrow"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
}
]
2022-12-04 00:07:26 +03:00
},
{
"type": "SYMBOL",
"name": "_end"
}
]
},
"shape": {
2022-12-04 03:13:40 +03:00
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
2022-12-04 03:36:46 +03:00
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "dot"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
2022-12-04 03:13:40 +03:00
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "label"
}
]
},
{
"type": "BLANK"
2022-12-04 00:07:26 +03:00
}
2022-12-04 03:13:40 +03:00
]
},
{
"type": "SYMBOL",
"name": "_end"
}
]
2022-12-04 00:07:26 +03:00
},
2022-12-04 03:36:46 +03:00
"dot": {
"type": "STRING",
"value": "."
},
2022-12-04 00:07:26 +03:00
"label": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
2022-12-04 03:36:46 +03:00
"type": "SYMBOL",
"name": "_unquoted_string"
2022-12-04 00:07:26 +03:00
}
]
},
"identifier": {
"type": "SYMBOL",
"name": "_identifier"
},
2022-12-04 18:35:37 +03:00
"_identifier": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
2022-12-04 00:07:26 +03:00
"type": "STRING",
2022-12-04 18:35:37 +03:00
"value": " "
2022-12-04 00:07:26 +03:00
}
2022-12-04 18:35:37 +03:00
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_dash"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_word"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_word"
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "STRING",
"value": " "
}
},
{
"type": "SYMBOL",
"name": "_dash"
}
]
},
{
"type": "SYMBOL",
"name": "_word"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_dash"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
2022-12-04 00:07:26 +03:00
"type": "STRING",
2022-12-04 18:35:37 +03:00
"value": " "
}
}
]
}
},
"_dash": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "-"
}
},
"_word": {
"type": "PATTERN",
"value": "[\\w\\d]+"
},
"arrow": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "--"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_dash"
}
}
]
},
{
"type": "SEQ",
"members": [
{
2022-12-04 00:07:26 +03:00
"type": "STRING",
2022-12-04 18:35:37 +03:00
"value": "<-"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_dash"
}
2022-12-04 00:07:26 +03:00
}
2022-12-04 18:35:37 +03:00
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<-"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_dash"
}
},
{
2022-12-04 00:07:26 +03:00
"type": "STRING",
2022-12-04 18:35:37 +03:00
"value": ">"
2022-12-04 00:07:26 +03:00
}
2022-12-04 18:35:37 +03:00
]
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_dash"
}
},
{
2022-12-04 00:07:26 +03:00
"type": "STRING",
2022-12-04 18:35:37 +03:00
"value": "->"
2022-12-04 00:07:26 +03:00
}
2022-12-04 18:35:37 +03:00
]
}
]
}
2022-12-04 00:07:26 +03:00
},
2022-12-04 03:36:46 +03:00
"_unquoted_string": {
"type": "PATTERN",
"value": "[^\\n;{]+"
},
2022-12-04 00:07:26 +03:00
"string": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[^'\\n]+"
}
}
},
{
"type": "STRING",
"value": "'"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[^'\\n]+"
}
}
},
{
"type": "STRING",
"value": "\""
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "`"
},
{
"type": "REPEAT",
"content": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[^'\\n]+"
}
}
},
{
"type": "STRING",
"value": "`"
}
]
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
}
],
"conflicts": [],
"precedences": [],
2022-12-04 18:35:37 +03:00
"externals": [],
2022-12-04 00:07:26 +03:00
"inline": [],
"supertypes": []
}