tree-sitter-tablegen
Version:
LLVM TableGen grammar for tree-sitter
2,253 lines (2,252 loc) • 53.4 kB
JSON
{
"name": "tablegen",
"word": "identifier",
"rules": {
"tablegen_file": {
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "statement"
},
{
"type": "SYMBOL",
"name": "preprocessor_directive"
}
]
}
},
"include_directive": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "include"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"preprocessor_directive": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "#define"
},
{
"type": "STRING",
"value": "#ifdef"
},
{
"type": "STRING",
"value": "#ifndef"
}
]
},
{
"type": "PATTERN",
"value": "\\s+"
},
{
"type": "FIELD",
"name": "macro_name",
"content": {
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z_0-9]*"
}
}
]
},
{
"type": "STRING",
"value": "#else"
},
{
"type": "STRING",
"value": "#endif"
}
]
}
},
"statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "assert"
},
{
"type": "SYMBOL",
"name": "class"
},
{
"type": "SYMBOL",
"name": "def"
},
{
"type": "SYMBOL",
"name": "defm"
},
{
"type": "SYMBOL",
"name": "defset"
},
{
"type": "SYMBOL",
"name": "defvar"
},
{
"type": "SYMBOL",
"name": "foreach"
},
{
"type": "SYMBOL",
"name": "if"
},
{
"type": "SYMBOL",
"name": "let"
},
{
"type": "SYMBOL",
"name": "multiclass"
},
{
"type": "SYMBOL",
"name": "include_directive"
}
]
},
"block": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "statement"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"class": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "class"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_args"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "record_body"
}
}
]
},
"template_args": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "template_arg"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "template_arg"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"template_arg": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"record_body": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parent_class_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "body"
}
]
},
"parent_class_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "value"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "value"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
}
}
]
}
]
},
"body": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "body_item"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"body_item": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "instruction"
},
{
"type": "SYMBOL",
"name": "let_instruction"
},
{
"type": "SYMBOL",
"name": "def_var"
},
{
"type": "SYMBOL",
"name": "assert"
}
]
},
"instruction": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "field"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "STRING",
"value": "code"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"let_instruction": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "let"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "range_list"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": ";"
}
]
},
"def_var": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "defvar"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": ";"
}
]
},
"def": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "def"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "record_body"
}
]
},
"let": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "let"
},
{
"type": "SYMBOL",
"name": "let_list"
},
{
"type": "STRING",
"value": "in"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "statement"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
]
}
]
},
"let_list": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "let_item"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "let_item"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
"let_item": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "range_list"
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
"multiclass": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "multiclass"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_args"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parent_class_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "multiclass_body"
}
]
},
"multiclass_body": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "multiclass_statement"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"multiclass_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "assert"
},
{
"type": "SYMBOL",
"name": "def"
},
{
"type": "SYMBOL",
"name": "defm"
},
{
"type": "SYMBOL",
"name": "defvar"
},
{
"type": "SYMBOL",
"name": "foreach"
},
{
"type": "SYMBOL",
"name": "if"
},
{
"type": "SYMBOL",
"name": "let"
}
]
},
"defm": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "defm"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parent_class_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"defset": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "defset"
},
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"defvar": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "defvar"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": ";"
}
]
},
"foreach": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "foreach"
},
{
"type": "SYMBOL",
"name": "foreach_iterator"
},
{
"type": "STRING",
"value": "in"
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
"foreach_iterator": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "range_list"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SYMBOL",
"name": "range_piece"
},
{
"type": "SYMBOL",
"name": "value"
}
]
}
]
},
"if": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": "then"
},
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"assert": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "assert"
},
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": ";"
}
]
},
"type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "primitive_type"
},
{
"type": "SYMBOL",
"name": "bits_type"
},
{
"type": "SYMBOL",
"name": "list_type"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "class_identifier"
}
]
},
"primitive_type": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "bit"
},
{
"type": "STRING",
"value": "int"
},
{
"type": "STRING",
"value": "string"
},
{
"type": "STRING",
"value": "dag"
}
]
},
"bits_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "bits"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "integer"
},
{
"type": "STRING",
"value": ">"
}
]
},
"list_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "list"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "STRING",
"value": ">"
}
]
},
"value": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "simple_value"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "value_suffix"
}
}
]
},
{
"type": "SYMBOL",
"name": "paste_value"
}
]
}
},
"paste_value": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": "#"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "BLANK"
}
]
}
]
}
},
"value_suffix": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "range_list"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "range_list"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
},
"value_list": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "value"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
"range_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "range_piece"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "range_piece"
}
]
}
}
]
},
"range_piece": {
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": "..."
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "SYMBOL",
"name": "value"
}
]
}
},
"simple_value": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "integer"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "concatenated_string"
},
{
"type": "SYMBOL",
"name": "code"
},
{
"type": "SYMBOL",
"name": "boolean"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "?"
},
"named": true,
"value": "uninitialized_value"
},
{
"type": "SYMBOL",
"name": "sequence"
},
{
"type": "SYMBOL",
"name": "list_initializer"
},
{
"type": "SYMBOL",
"name": "dag_initializer"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "anonymous_record"
},
{
"type": "SYMBOL",
"name": "operator"
}
]
}
},
"sequence": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "value_list"
},
{
"type": "STRING",
"value": "}"
}
]
},
"list_initializer": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "value_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"dag_initializer": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "dag_arg"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dag_arg_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"dag_arg_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "dag_arg"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "dag_arg"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
"dag_arg": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "var"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "var"
}
]
},
"anonymous_record": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "value"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"concatenated_string": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "string"
}
}
]
}
},
"operator": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "bang_operator"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "value_list"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "cond_operator"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "cond_clause"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "cond_clause"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"cond_clause": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
"bang_operator": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "!"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "add"
},
{
"type": "STRING",
"value": "and"
},
{
"type": "STRING",
"value": "cast"
},
{
"type": "STRING",
"value": "con"
},
{
"type": "STRING",
"value": "dag"
},
{
"type": "STRING",
"value": "div"
},
{
"type": "STRING",
"value": "empty"
},
{
"type": "STRING",
"value": "eq"
},
{
"type": "STRING",
"value": "exists"
},
{
"type": "STRING",
"value": "filter"
},
{
"type": "STRING",
"value": "find"
},
{
"type": "STRING",
"value": "foldl"
},
{
"type": "STRING",
"value": "foreach"
},
{
"type": "STRING",
"value": "ge"
},
{
"type": "STRING",
"value": "getop"
},
{
"type": "STRING",
"value": "getdagop"
},
{
"type": "STRING",
"value": "gt"
},
{
"type": "STRING",
"value": "head"
},
{
"type": "STRING",
"value": "if"
},
{
"type": "STRING",
"value": "interleave"
},
{
"type": "STRING",
"value": "isa"
},
{
"type": "STRING",
"value": "le"
},
{
"type": "STRING",
"value": "listconcat"
},
{
"type": "STRING",
"value": "listremove"
},
{
"type": "STRING",
"value": "listsplat"
},
{
"type": "STRING",
"value": "logtwo"
},
{
"type": "STRING",
"value": "lt"
},
{
"type": "STRING",
"value": "mul"
},
{
"type": "STRING",
"value": "ne"
},
{
"type": "STRING",
"value": "not"
},
{
"type": "STRING",
"value": "or"
},
{
"type": "STRING",
"value": "setop"
},
{
"type": "STRING",
"value": "setdagop"
},
{
"type": "STRING",
"value": "shl"
},
{
"type": "STRING",
"value": "size"
},
{
"type": "STRING",
"value": "sra"
},
{
"type": "STRING",
"value": "srl"
},
{
"type": "STRING",
"value": "strconcat"
},
{
"type": "STRING",
"value": "sub"
},
{
"type": "STRING",
"value": "subst"
},
{
"type": "STRING",
"value": "substr"
},
{
"type": "STRING",
"value": "tail"
},
{
"type": "STRING",
"value": "tolower"
},
{
"type": "STRING",
"value": "toupper"
},
{
"type": "STRING",
"value": "xor"
}
]
}
]
},
"cond_operator": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "!"
},
{
"type": "STRING",
"value": "cond"
}
]
},
"integer": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[+-]?\\d+"
},
{
"type": "PATTERN",
"value": "0x[\\da-fA-F]+"
},
{
"type": "PATTERN",
"value": "0b[01]+"
}
]
}
},
"string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string_content"
},
{
"type": "SYMBOL",
"name": "_escape_sequence"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"string_content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^\"\\\\]+"
}
}
},
"_escape_sequence": {
"type": "CHOICE",
"members": [
{
"type": "PREC",
"value": 2,
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "PATTERN",
"value": "[^abfnrtvxu'\\\"\\\\\\?]"
}
]
}
}
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "SYMBOL",