tree-sitter-tablegen
Version:
LLVM TableGen grammar for tree-sitter
1,455 lines • 22.6 kB
JSON
[
{
"type": "simple_value",
"named": true,
"subtypes": [
{
"type": "anonymous_record",
"named": true
},
{
"type": "boolean",
"named": true
},
{
"type": "code",
"named": true
},
{
"type": "concatenated_string",
"named": true
},
{
"type": "dag_initializer",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list_initializer",
"named": true
},
{
"type": "operator",
"named": true
},
{
"type": "sequence",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "uninitialized_value",
"named": true
}
]
},
{
"type": "statement",
"named": true,
"subtypes": [
{
"type": "assert",
"named": true
},
{
"type": "class",
"named": true
},
{
"type": "def",
"named": true
},
{
"type": "defm",
"named": true
},
{
"type": "defset",
"named": true
},
{
"type": "defvar",
"named": true
},
{
"type": "foreach",
"named": true
},
{
"type": "if",
"named": true
},
{
"type": "include_directive",
"named": true
},
{
"type": "let",
"named": true
},
{
"type": "multiclass",
"named": true
}
]
},
{
"type": "type",
"named": true,
"subtypes": [
{
"type": "bits_type",
"named": true
},
{
"type": "class_identifier",
"named": true
},
{
"type": "list_type",
"named": true
},
{
"type": "primitive_type",
"named": true
}
]
},
{
"type": "anonymous_record",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "value",
"named": true
}
]
}
},
{
"type": "assert",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "value",
"named": true
}
]
}
},
{
"type": "bang_operator",
"named": true,
"fields": {}
},
{
"type": "bits_type",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "integer",
"named": true
}
]
}
},
{
"type": "block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "body",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "body_item",
"named": true
}
]
}
},
{
"type": "body_item",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "assert",
"named": true
},
{
"type": "def_var",
"named": true
},
{
"type": "instruction",
"named": true
},
{
"type": "let_instruction",
"named": true
}
]
}
},
{
"type": "boolean",
"named": true,
"fields": {}
},
{
"type": "class",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "record_body",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "template_args",
"named": true
}
]
}
},
{
"type": "concatenated_string",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "string",
"named": true
}
]
}
},
{
"type": "cond_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "value",
"named": true
}
]
}
},
{
"type": "cond_operator",
"named": true,
"fields": {}
},
{
"type": "dag_arg",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "value",
"named": true
},
{
"type": "var",
"named": true
}
]
}
},
{
"type": "dag_arg_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "dag_arg",
"named": true
}
]
}
},
{
"type": "dag_initializer",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "dag_arg",
"named": true
},
{
"type": "dag_arg_list",
"named": true
}
]
}
},
{
"type": "def",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "value",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "record_body",
"named": true
}
]
}
},
{
"type": "def_var",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "value",
"named": true
}
]
}
},
{
"type": "defm",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "value",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "parent_class_list",
"named": true
}
]
}
},
{
"type": "defset",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "statement",
"named": true
},
{
"type": "type",
"named": true
}
]
}
},
{
"type": "defvar",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "value",
"named": true
}
]
}
},
{
"type": "foreach",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "block",
"named": true
},
{
"type": "foreach_iterator",
"named": true
}
]
}
},
{
"type": "foreach_iterator",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "range_list",
"named": true
},
{
"type": "range_piece",
"named": true
},
{
"type": "value",
"named": true
}
]
}
},
{
"type": "if",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "block",
"named": true
},
{
"type": "value",
"named": true
}
]
}
},
{
"type": "include_directive",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "string",
"named": true
}
]
}
},
{
"type": "instruction",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "type",
"named": true
},
{
"type": "value",
"named": true
}
]
}
},
{
"type": "let",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "let_list",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "let_instruction",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "range_list",
"named": true
},
{
"type": "value",
"named": true
}
]
}
},
{
"type": "let_item",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "range_list",
"named": true
},
{
"type": "value",
"named": true
}
]
}
},
{
"type": "let_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "let_item",
"named": true
}
]
}
},
{
"type": "list_initializer",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "type",
"named": true
},
{
"type": "value_list",
"named": true
}
]
}
},
{
"type": "list_type",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
}
},
{
"type": "multiclass",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "multiclass_body",
"named": true
},
{
"type": "parent_class_list",
"named": true
},
{
"type": "template_args",
"named": true
}
]
}
},
{
"type": "multiclass_body",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "multiclass_statement",
"named": true
}
]
}
},
{
"type": "multiclass_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "assert",
"named": true
},
{
"type": "def",
"named": true
},
{
"type": "defm",
"named": true
},
{
"type": "defvar",
"named": true
},
{
"type": "foreach",
"named": true
},
{
"type": "if",
"named": true
},
{
"type": "let",
"named": true
}
]
}
},
{
"type": "operator",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "bang_operator",
"named": true
},
{
"type": "cond_clause",
"named": true
},
{
"type": "cond_operator",
"named": true
},
{
"type": "type",
"named": true
},
{
"type": "value_list",
"named": true
}
]
}
},
{
"type": "parent_class_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "value",
"named": true
}
]
}
},
{
"type": "paste_value",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "value",
"named": true
}
]
}
},
{
"type": "primitive_type",
"named": true,
"fields": {}
},
{
"type": "range_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "range_piece",
"named": true
}
]
}
},
{
"type": "range_piece",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "value",
"named": true
}
]
}
},
{
"type": "record_body",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "parent_class_list",
"named": true
}
]
}
},
{
"type": "sequence",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "value_list",
"named": true
}
]
}
},
{
"type": "string",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "escape_sequence",
"named": true
},
{
"type": "string_content",
"named": true
}
]
}
},
{
"type": "tablegen_file",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "preprocessor_directive",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "template_arg",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "type",
"named": true
},
{
"type": "value",
"named": true
}
]
}
},
{
"type": "template_args",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "template_arg",
"named": true
}
]
}
},
{
"type": "value",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "paste_value",
"named": true
},
{
"type": "simple_value",
"named": true
},
{
"type": "value_suffix",
"named": true
}
]
}
},
{
"type": "value_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "value",
"named": true
}
]
}
},
{
"type": "value_suffix",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "range_list",
"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": ";",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "]",
"named": false
},
{
"type": "add",
"named": false
},
{
"type": "and",
"named": false
},
{
"type": "assert",
"named": false
},
{
"type": "bit",
"named": false
},
{
"type": "bits",
"named": false
},
{
"type": "cast",
"named": false
},
{
"type": "class",
"named": false
},
{
"type": "class_identifier",
"named": true
},
{
"type": "code",
"named": false
},
{
"type": "code",
"named": true
},
{
"type": "code_escape_sequence",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "con",
"named": false
},
{
"type": "cond",
"named": false
},
{
"type": "dag",
"named": false
},
{
"type": "def",
"named": false
},
{
"type": "defm",
"named": false
},
{
"type": "defset",
"named": false
},
{
"type": "defvar",
"named": false
},
{
"type": "div",
"named": false
},
{
"type": "else",
"named": false
},
{
"type": "empty",
"named": false
},
{
"type": "eq",
"named": false
},
{
"type": "escape_sequence",
"named": true
},
{
"type": "exists",
"named": false
},
{
"type": "false",
"named": false
},
{
"type": "field",
"named": false
},
{
"type": "filter",
"named": false
},
{
"type": "find",
"named": false
},
{
"type": "foldl",
"named": false
},
{
"type": "foreach",
"named": false
},
{
"type": "ge",
"named": false
},
{
"type": "getdagop",
"named": false
},
{
"type": "getop",
"named": false
},
{
"type": "gt",
"named": false
},
{
"type": "head",
"named": false
},
{
"type": "identifier",
"named": true
},
{
"type": "if",
"named": false
},
{
"type": "in",
"named": false
},
{
"type": "include",
"named": false
},
{
"type": "int",
"named": false
},
{
"type": "integer",
"named": true
},
{
"type": "interleave",
"named": false
},
{
"type": "isa",
"named": false
},
{
"type": "le",
"named": false
},
{
"type": "let",
"named": false
},
{
"type": "list",
"named": false
},
{
"type": "listconcat",
"named": false
},
{
"type": "listremove",
"named": false
},
{
"type": "listsplat",
"named": false
},
{
"type": "logtwo",
"named": false
},
{
"type": "lt",
"named": false
},
{
"type": "mul",
"named": false
},
{
"type": "multiclass",
"named": false
},
{
"type": "multiline_comment",
"named": true
},
{
"type": "ne",
"named": false
},
{
"type": "not",
"named": false
},
{
"type": "or",
"named": false
},
{
"type": "preprocessor_directive",
"named": true
},
{
"type": "setdagop",
"named": false
},
{
"type": "setop",
"named": false
},
{
"type": "shl",
"named": false
},
{
"type": "size",
"named": false
},
{
"type": "sra",
"named": false
},
{
"type": "srl",
"named": false
},
{
"type": "strconcat",
"named": false
},
{
"type": "string",
"named": false
},
{
"type": "string_content",
"named": true
},
{
"type": "sub",
"named": false
},
{
"type": "subst",
"named": false
},
{
"type": "substr",
"named": false
},
{
"type": "tail",
"named": false
},
{
"type": "then",
"named": false
},
{
"type": "tolower",
"named": false
},
{
"type": "toupper",
"named": false
},
{
"type": "true",
"named": false
},
{
"type": "uninitialized_value",
"named": true
},
{
"type": "var",
"named": true
},
{
"type": "xor",
"named": false
},
{
"type": "{",
"named": false
},
{
"type": "}",
"named": false
}
]