tree-sitter-nd
Version:
Plain text ND syntax (Fitch style)
928 lines • 18.2 kB
JSON
{
"name": "nd",
"word": "variable",
"rules": {
"proof": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
},
"block": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "guard"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "hypothesis"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_hypothesis_end"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "\n"
}
]
},
{
"type": "SYMBOL",
"name": "_nested_block"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
}
},
"guard": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_vars"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"annotation": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^<#\\n]+"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "PATTERN",
"value": "[^>]*"
},
{
"type": "STRING",
"value": ">"
}
]
}
]
}
}
]
},
"_vars": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "variable"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
"hypothesis": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ",\n"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "\n"
},
{
"type": "SYMBOL",
"name": "_hypothesis_end"
}
]
},
"_hypothesis_end": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "___"
},
{
"type": "REPEAT",
"content": {
"type": "STRING",
"value": "_"
}
}
]
}
},
"comment": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "PATTERN",
"value": ".*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "[^*]*\\*+([^\\/*][^*]*\\*+)*"
},
{
"type": "STRING",
"value": "/"
}
]
}
]
}
}
},
"_nested_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "STRING",
"value": "}"
}
]
},
"expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "BLANK"
}
]
}
]
},
"_term": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "SYMBOL",
"name": "function"
},
{
"type": "SYMBOL",
"name": "true"
},
{
"type": "SYMBOL",
"name": "false"
},
{
"type": "SYMBOL",
"name": "not"
},
{
"type": "SYMBOL",
"name": "and"
},
{
"type": "SYMBOL",
"name": "or"
},
{
"type": "SYMBOL",
"name": "implies"
},
{
"type": "SYMBOL",
"name": "iff"
},
{
"type": "SYMBOL",
"name": "forall"
},
{
"type": "SYMBOL",
"name": "exists"
},
{
"type": "SYMBOL",
"name": "_group"
},
{
"type": "SYMBOL",
"name": "_universal_group"
}
]
},
"function": {
"type": "PREC_RIGHT",
"value": 8,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "function_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_TF_func_name"
},
"named": true,
"value": "function_name"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
},
"not": {
"type": "PREC_RIGHT",
"value": 7,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_not_sym"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
},
"and": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "SYMBOL",
"name": "_and_sym"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
},
"or": {
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "SYMBOL",
"name": "_or_sym"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
},
"implies": {
"type": "PREC_RIGHT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "SYMBOL",
"name": "_implies_sym"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
},
"iff": {
"type": "PREC_RIGHT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "SYMBOL",
"name": "_iff_sym"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
},
"forall": {
"type": "PREC_LEFT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_forall_sym"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
},
"exists": {
"type": "PREC_LEFT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_exists_sym"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
},
"_group": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": ")"
}
]
},
"_universal_group": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
},
"variable": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[a-uw-z]"
},
{
"type": "PATTERN",
"value": "[a-z]\\w*"
}
]
}
},
"function_name": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_function_name"
},
{
"type": "SYMBOL",
"name": "_reserved_function_name"
}
]
},
"_function_name": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[A-Z]\\w*"
}
},
"_reserved_function_name": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "A"
},
{
"type": "STRING",
"value": "E"
}
]
},
"_TF_func_name": {
"type": "PREC_DYNAMIC",
"value": 12,
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "T"
},
{
"type": "STRING",
"value": "F"
}
]
}
},
"true": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "T"
},
{
"type": "STRING",
"value": "1"
},
{
"type": "STRING",
"value": "⊤"
}
]
},
"false": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "F"
},
{
"type": "STRING",
"value": "0"
},
{
"type": "STRING",
"value": "⊥"
}
]
},
"_not_sym": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "!"
},
{
"type": "STRING",
"value": "~"
},
{
"type": "STRING",
"value": "¬"
}
]
},
"_and_sym": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "^"
},
{
"type": "STRING",
"value": "&"
},
{
"type": "STRING",
"value": "∧"
}
]
},
"_or_sym": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "STRING",
"value": "|"
},
{
"type": "STRING",
"value": "v"
},
{
"type": "STRING",
"value": "∨"
}
]
},
"_implies_sym": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "STRING",
"value": "→"
},
{
"type": "STRING",
"value": "⇒"
}
]
},
"_iff_sym": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<->"
},
{
"type": "STRING",
"value": "<=>"
},
{
"type": "STRING",
"value": "↔"
},
{
"type": "STRING",
"value": "⇔"
},
{
"type": "STRING",
"value": "≡"
}
]
},
"_forall_sym": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "A"
},
{
"type": "STRING",
"value": "∀"
}
]
},
"_exists_sym": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "E"
},
{
"type": "STRING",
"value": "∃"
}
]
},
"_universal_sep": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "$"
}
]
}
},
"extras": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "PATTERN",
"value": "\\s"
}
],
"conflicts": [
[
"function_name",
"_forall_sym"
],
[
"function_name",
"_exists_sym"
],
[
"_TF_func_name",
"true"
],
[
"_TF_func_name",
"false"
],
[
"hypothesis",
"block"
]
],
"externals": [],
"inline": [
"_reserved_function_name"
]
}