tree-sitter-hy/src/grammar.json
2025-05-13 16:17:42 -05:00

2295 lines
No EOL
60 KiB
JSON
Generated

{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "hy",
"word": "symbol",
"rules": {
"source_file": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "shebang"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_element"
}
}
]
},
"shebang": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#!"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
},
"_element": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_form"
},
{
"type": "SYMBOL",
"name": "discard"
},
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "import"
},
{
"type": "SYMBOL",
"name": "require"
},
{
"type": "SYMBOL",
"name": "function"
},
{
"type": "SYMBOL",
"name": "lambda"
},
{
"type": "SYMBOL",
"name": "class"
},
{
"type": "SYMBOL",
"name": "macro"
},
{
"type": "SYMBOL",
"name": "reader"
}
]
},
"_form": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "sugar"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "SYMBOL",
"name": "_sequence"
},
{
"type": "SYMBOL",
"name": "_string"
}
]
}
]
},
"discard": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#_"
},
{
"type": "SYMBOL",
"name": "_form"
}
]
},
"comment": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
},
"sugar": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "STRING",
"value": "`"
},
{
"type": "STRING",
"value": "~"
},
{
"type": "STRING",
"value": "~@"
},
{
"type": "STRING",
"value": "#*"
},
{
"type": "STRING",
"value": "#**"
}
]
},
"_identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_numeric_literal"
},
{
"type": "SYMBOL",
"name": "keyword"
},
{
"type": "SYMBOL",
"name": "_symbol_or_dots"
},
{
"type": "SYMBOL",
"name": "dotted_identifier"
}
]
},
"_sequence": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "list"
},
{
"type": "SYMBOL",
"name": "tuple"
},
{
"type": "SYMBOL",
"name": "set"
},
{
"type": "SYMBOL",
"name": "dictionary"
}
]
},
"_string": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "bracket_string"
}
]
},
"_numeric_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "integer"
},
{
"type": "SYMBOL",
"name": "float"
},
{
"type": "SYMBOL",
"name": "complex"
}
]
},
"keyword": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "immediate_symbol"
},
{
"type": "BLANK"
}
]
}
]
}
},
"_symbol_or_dots": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "symbol"
},
{
"type": "SYMBOL",
"name": "dots"
}
]
},
"dotted_identifier": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[.]+"
},
{
"type": "SYMBOL",
"name": "immediate_symbol"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "."
}
},
{
"type": "SYMBOL",
"name": "immediate_symbol"
}
]
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "sym",
"content": {
"type": "SYMBOL",
"name": "symbol"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "."
}
},
{
"type": "SYMBOL",
"name": "immediate_symbol"
}
]
}
}
]
}
]
},
"expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"tuple": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#("
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"set": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"dictionary": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_element"
}
}
]
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"string": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[rbf]*\""
},
{
"type": "FIELD",
"name": "content",
"content": {
"type": "PATTERN",
"value": "[^\"]*"
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"bracket_string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#[["
},
{
"type": "FIELD",
"name": "content",
"content": {
"type": "PATTERN",
"value": "[^\\]]*"
}
},
{
"type": "STRING",
"value": "]]"
}
]
},
"integer": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_decinteger"
},
{
"type": "SYMBOL",
"name": "_bininteger"
},
{
"type": "SYMBOL",
"name": "_octinteger"
},
{
"type": "SYMBOL",
"name": "_hexinteger"
}
]
},
"float": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "STRING",
"value": "."
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "STRING",
"value": "."
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "e"
},
{
"type": "STRING",
"value": "E"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
}
]
}
]
},
{
"type": "STRING",
"value": "Inf"
},
{
"type": "STRING",
"value": "NaN"
}
]
}
]
}
}
},
"complex": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "STRING",
"value": "."
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "STRING",
"value": "."
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "e"
},
{
"type": "STRING",
"value": "E"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "STRING",
"value": "Inf"
},
{
"type": "STRING",
"value": "NaN"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "STRING",
"value": "."
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "STRING",
"value": "."
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "e"
},
{
"type": "STRING",
"value": "E"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "_*\\d+"
}
}
]
},
{
"type": "STRING",
"value": "NaN"
},
{
"type": "STRING",
"value": "Inf"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "j"
},
{
"type": "STRING",
"value": "J"
}
]
}
]
}
]
}
}
},
"symbol": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^()\\[\\]{};\"'`~:.\\d\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "[^()\\[\\]{};\"'`~.\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]"
}
}
]
}
},
"immediate_symbol": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^()\\[\\]{};\"'`~:.\\d\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "[^()\\[\\]{};\"'`~.\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]"
}
}
]
}
},
"dots": {
"type": "PATTERN",
"value": "[.]+"
},
"_decinteger": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "\\d"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "[,_]*\\d+"
}
}
]
}
}
},
"_bininteger": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "PATTERN",
"value": "[bB]"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "[,_]*[01]+"
}
}
]
}
}
},
"_octinteger": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "PATTERN",
"value": "[oO]"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "[,_]*[0-7]+"
}
}
]
}
}
},
"_hexinteger": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "PATTERN",
"value": "[xX]"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "[,_]*[\\da-fA-F]+"
}
}
]
}
}
},
"import": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": "import"
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "module_import"
},
{
"type": "SYMBOL",
"name": "named_import"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"require": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": "require"
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "module_import"
},
{
"type": "SYMBOL",
"name": "named_import"
},
{
"type": "SYMBOL",
"name": "namespace_require"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"function": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": "defn"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "async"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "decorators",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable_list"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_annotation"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "symbol"
}
},
{
"type": "SYMBOL",
"name": "parameter_list"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"lambda": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": "fn"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "async"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "parameter_list"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"class": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": "defclass"
},
{
"type": "FIELD",
"name": "decorators",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable_list"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "symbol"
}
},
{
"type": "FIELD",
"name": "superclasses",
"content": {
"type": "SYMBOL",
"name": "variable_list"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"macro": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": "defmacro"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "symbol"
}
},
{
"type": "SYMBOL",
"name": "parameter_list"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"reader": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": "defreader"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "symbol"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"module_import": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_variable"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "aliased_import"
}
]
}
]
},
"named_import": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_variable"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "symbol"
},
{
"type": "SYMBOL",
"name": "aliased_import"
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
}
]
},
"namespace_require": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_variable"
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "macros"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "readers"
}
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "symbol"
},
{
"type": "SYMBOL",
"name": "aliased_import"
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "keyword"
},
{
"type": "STRING",
"value": "*"
}
]
}
]
}
]
},
"variable_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_variable"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"type_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "tp"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_variable"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"type_annotation": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#^"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_variable"
}
}
]
},
"parameter_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "symbol"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "symbol"
},
{
"type": "SYMBOL",
"name": "_form"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "#*"
},
{
"type": "STRING",
"value": "#**"
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"_variable": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "symbol"
},
{
"type": "SYMBOL",
"name": "dotted_identifier"
}
]
},
"aliased_import": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_variable"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "as"
}
},
{
"type": "SYMBOL",
"name": "symbol"
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "[\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]"
},
{
"type": "SYMBOL",
"name": "comment"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": [],
"reserved": {}
}