{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "jsonnet",
"word": "ident",
"rules": {
"source_file": {
"type": "SYMBOL",
"name": "_expr"
},
"line_comment": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": "[^\\r\\n]*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "PATTERN",
"value": "[^\\r\\n]*"
}
]
}
]
}
},
"block_comment": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "([^*]|\\*+[^*/])*\\**"
},
{
"type": "STRING",
"value": "*/"
}
]
}
},
"_expr": {
"type": "SYMBOL",
"name": "_binop_expr"
},
"local_expr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "local"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "bind"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "bind"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
"assert_expr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "assertion"
},
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
"assertion": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "assert"
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_binop_expr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "binary_expr"
},
{
"type": "SYMBOL",
"name": "_unary_expr"
}
]
},
"binary_expr": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 20,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
}
]
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 16,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<<"
},
{
"type": "STRING",
"value": ">>"
}
]
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 14,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ">="
},
{
"type": "STRING",
"value": "in"
}
]
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 12,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "!="
}
]
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "STRING",
"value": "&"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 8,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "STRING",
"value": "^"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "STRING",
"value": "|"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "STRING",
"value": "&&"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "||"
},
{
"type": "STRING",
"value": "??"
}
]
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_binop_expr"
}
}
]
}
}
]
},
"_unary_expr": {
"type": "CHOICE",
"members": [
{
"type": "PREC",
"value": 21,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "!"
},
{
"type": "STRING",
"value": "~"
}
]
},
{
"type": "SYMBOL",
"name": "_unary_expr"
}
]
}
},
{
"type": "SYMBOL",
"name": "_suffixed"
},
{
"type": "SYMBOL",
"name": "_full_expr"
}
]
},
"_suffixed": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_atom"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_suffix"
}
}
]
}
},
"_full_expr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "if_then_else"
},
{
"type": "SYMBOL",
"name": "function_expr"
},
{
"type": "SYMBOL",
"name": "error_expr"
},
{
"type": "SYMBOL",
"name": "import_expr"
},
{
"type": "SYMBOL",
"name": "local_expr"
},
{
"type": "SYMBOL",
"name": "assert_expr"
}
]
},
"_suffix": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "suffix_index"
},
{
"type": "SYMBOL",
"name": "suffix_index_expr"
},
{
"type": "SYMBOL",
"name": "suffix_slice"
},
{
"type": "SYMBOL",
"name": "suffix_apply"
},
{
"type": "SYMBOL",
"name": "suffix_object_apply"
}
]
},
"suffix_index": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "ident"
}
]
},
"suffix_index_expr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "]"
}
]
},
"suffix_slice": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"suffix_apply": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "arg"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "tailstrict"
},
{
"type": "BLANK"
}
]
}
]
},
"suffix_object_apply": {
"type": "SYMBOL",
"name": "object"
},
"arg": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ident"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
"_atom": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "literal"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "verbatim_string"
},
{
"type": "SYMBOL",
"name": "string_block"
},
{
"type": "SYMBOL",
"name": "ident_ref"
},
{
"type": "SYMBOL",
"name": "array"
},
{
"type": "SYMBOL",
"name": "object"
},
{
"type": "SYMBOL",
"name": "parened"
},
{
"type": "SYMBOL",
"name": "dollar"
}
]
},
"dollar": {
"type": "STRING",
"value": "$"
},
"literal": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "null"
},
{
"type": "STRING",
"value": "true"
},
{
"type": "STRING",
"value": "false"
},
{
"type": "STRING",
"value": "self"
},
{
"type": "STRING",
"value": "super"
}
]
},
"ident_ref": {
"type": "SYMBOL",
"name": "ident"
},
"if_then_else": {
"type": "CHOICE",
"members": [
{
"type": "PREC_RIGHT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "then"
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "else"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "then"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
}
]
},
"array": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_compspec"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"object": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "member"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "member"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_compspec"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"member": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "member_local"
},
{
"type": "SYMBOL",
"name": "member_assert"
},
{
"type": "SYMBOL",
"name": "field"
}
]
},
"member_local": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "local"
},
{
"type": "SYMBOL",
"name": "bind"
}
]
},
"member_assert": {
"type": "SYMBOL",
"name": "assertion"
},
"field": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "field_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "params"
},
{
"type": "SYMBOL",
"name": "visibility"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "PREC_DYNAMIC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "visibility"
},
{
"type": "STRING",
"value": "function"
},
{
"type": "SYMBOL",
"name": "params"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
},
{
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "visibility"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
}
]
}
]
},
"field_name": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ident"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "verbatim_string"
},
{
"type": "SYMBOL",
"name": "string_block"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "]"
}
]
}
]
},
"visibility": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "STRING",
"value": ":::"
}
]
},
"_compspec": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "for_spec"
},
{
"type": "SYMBOL",
"name": "if_spec"
}
]
},
"for_spec": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "for"
},
{
"type": "SYMBOL",
"name": "_destruct"
},
{
"type": "STRING",
"value": "in"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
"if_spec": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
"function_expr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "function"
},
{
"type": "SYMBOL",
"name": "params"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
"params": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "param"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "param"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"param": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_destruct"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"error_expr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "error"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
"import_expr": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "STRING",
"value": "importstr"
},
{
"type": "STRING",
"value": "importbin"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "verbatim_string"
},
{
"type": "SYMBOL",
"name": "string_block"
}
]
}
]
},
"parened": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"bind": {
"type": "CHOICE",
"members": [
{
"type": "PREC_DYNAMIC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ident"
},
{
"type": "SYMBOL",
"name": "params"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
},
{
"type": "PREC_DYNAMIC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ident"
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "function"
},
{
"type": "SYMBOL",
"name": "params"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
},
{
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_destruct"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
}
]
},
"_destruct": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ident"
},
{
"type": "STRING",
"value": "?"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_destruct"
},
{
"type": "SYMBOL",
"name": "destruct_rest"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_destruct"
},
{
"type": "SYMBOL",
"name": "destruct_rest"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "destruct_field"
},
{
"type": "SYMBOL",
"name": "destruct_rest"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "destruct_field"
},
{
"type": "SYMBOL",
"name": "destruct_rest"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"destruct_rest": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "..."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ident"
},
{
"type": "BLANK"
}
]
}
]
},
"destruct_field": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ident"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_destruct"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"string": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\"\\\\]"
},
{
"type": "PATTERN",
"value": "\\\\(.|\\n)"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^'\\\\]"
},
{
"type": "PATTERN",
"value": "\\\\(.|\\n)"
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
}
]
}
},
"verbatim_string": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\"]"
},
{
"type": "STRING",
"value": "\"\""
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^']"
},
{
"type": "STRING",
"value": "''"
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
}
]
}
},
"number": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "(?:0|[1-9][0-9]*(?:_[0-9]+)*)(?:\\.[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?"
}
},
"ident": {
"type": "PATTERN",
"value": "[_a-zA-Z][_a-zA-Z0-9]*"
}
},
"extras": [
{
"type": "PATTERN",
"value": "[ \\t\\r\\n]+"
},
{
"type": "SYMBOL",
"name": "line_comment"
},
{
"type": "SYMBOL",
"name": "block_comment"
}
],
"conflicts": [
[
"bind",
"_destruct"
],
[
"field",
"function_expr"
]
],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "string_block"
},
{
"type": "SYMBOL",
"name": "_sb_err_unexpected_end"
},
{
"type": "SYMBOL",
"name": "_sb_err_missing_newline"
},
{
"type": "SYMBOL",
"name": "_sb_err_missing_termination"
},
{
"type": "SYMBOL",
"name": "_sb_err_missing_indent"
}
],
"inline": [],
"supertypes": [],
"reserved": {}
}