{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "slint",
"rules": {
"sourcefile": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_definition"
}
},
"_definition": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "import_statement"
},
{
"type": "SYMBOL",
"name": "_exported_type"
},
{
"type": "SYMBOL",
"name": "_local_type"
}
]
},
"export": {
"type": "STRING",
"value": "export"
},
"_local_type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "struct_definition"
},
{
"type": "SYMBOL",
"name": "enum_definition"
},
{
"type": "SYMBOL",
"name": "global_definition"
},
{
"type": "SYMBOL",
"name": "component_definition"
}
]
},
"_exported_type": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "export"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "export_type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "export_type"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_local_type"
}
]
}
]
}
},
"import_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "import_type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "import_type"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
},
{
"type": "STRING",
"value": "from"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "string_value"
},
{
"type": "STRING",
"value": ";"
}
]
},
"export_type": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "local_name",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "export_name",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"import_type": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "import_name",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "local_name",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"component": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": ":="
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
"component_definition": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "component"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "inherits"
},
{
"type": "FIELD",
"name": "base_type",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
},
{
"type": "STRING",
"value": ":="
},
{
"type": "FIELD",
"name": "base_type",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
}
]
}
]
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
"_property_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "STRING",
"value": ">"
}
]
},
"imperative_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_imperative_block_statement"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"_imperative_block_statement": {
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "assignment_block"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "assignment_expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "if_expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "callback_event"
},
{
"type": "SYMBOL",
"name": "binding"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "return"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
},
"_binding": {
"type": "FIELD",
"name": "binding",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "imperative_block"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
},
"property": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "visibility",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "property_visibility"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": "property"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_property_type"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "binding_op",
"content": {
"type": "STRING",
"value": ":"
}
},
{
"type": "SYMBOL",
"name": "_binding"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "binding_op",
"content": {
"type": "STRING",
"value": "<=>"
}
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
]
},
"binding_alias": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "visibility",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "property_visibility"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "property"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": "<=>"
},
{
"type": "FIELD",
"name": "alias",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"binding": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_binding"
}
]
},
"global_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "property"
},
{
"type": "SYMBOL",
"name": "binding_alias"
},
{
"type": "SYMBOL",
"name": "callback"
},
{
"type": "SYMBOL",
"name": "callback_event"
},
{
"type": "SYMBOL",
"name": "function_definition"
}
]
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"global_definition": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "global"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ":="
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "global_block"
}
]
},
"struct_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
}
]
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"struct_definition": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "struct"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ":="
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "struct_block"
}
]
},
"enum_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"enum_definition": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "enum"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "user_type_identifier"
}
},
{
"type": "SYMBOL",
"name": "enum_block"
}
]
},
"anon_struct_block": {
"type": "PREC",
"value": 100,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
},
"block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_block_statement"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"_block_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "animate_statement"
},
{
"type": "SYMBOL",
"name": "binding_alias"
},
{
"type": "SYMBOL",
"name": "callback"
},
{
"type": "SYMBOL",
"name": "callback_alias"
},
{
"type": "SYMBOL",
"name": "callback_event"
},
{
"type": "SYMBOL",
"name": "children_identifier"
},
{
"type": "SYMBOL",
"name": "changed_callback"
},
{
"type": "SYMBOL",
"name": "component"
},
{
"type": "SYMBOL",
"name": "for_loop"
},
{
"type": "SYMBOL",
"name": "function_definition"
},
{
"type": "SYMBOL",
"name": "if_statement"
},
{
"type": "SYMBOL",
"name": "property"
},
{
"type": "SYMBOL",
"name": "property_assignment"
},
{
"type": "SYMBOL",
"name": "states_definition"
},
{
"type": "SYMBOL",
"name": "transitions_definition"
}
]
},
"property_assignment": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "imperative_block"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
}
]
},
"in_out_transition": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "in"
},
{
"type": "STRING",
"value": "out"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ":"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "animate_statement"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"transitions_definition": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "transitions"
},
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "in_out_transition"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"states_definition": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "states"
},
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": "when"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "in_out_transition"
},
{
"type": "SYMBOL",
"name": "assignment_block"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "assignment_expr"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "assignment_expr"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"animate_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "animate"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "animate_body"
}
]
},
"animate_option_identifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "delay"
},
{
"type": "STRING",
"value": "duration"
},
{
"type": "STRING",
"value": "iteration-count"
},
{
"type": "STRING",
"value": "direction"
},
{
"type": "STRING",
"value": "easing"
}
]
},
"animate_option": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "option",
"content": {
"type": "SYMBOL",
"name": "animate_option_identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "expression",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"animate_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "animate_option"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"if_expr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "SYMBOL",
"name": "imperative_block"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "if_expr"
},
{
"type": "SYMBOL",
"name": "imperative_block"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"if_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "component"
}
]
},
"for_loop": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "for"
},
{
"type": "FIELD",
"name": "identifier",
"content": {
"type": "SYMBOL",
"name": "simple_indexed_identifier"
}
},
{
"type": "STRING",
"value": "in"
},
{
"type": "FIELD",
"name": "range",
"content": {
"type": "SYMBOL",
"name": "for_range"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "component"
}
]
},
"for_range": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "value_list"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"type_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "type"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_identifier"
},
{
"type": "SYMBOL",
"name": "type_list"
},
{
"type": "SYMBOL",
"name": "struct_block"
}
]
},
"_assignment_setup": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "SYMBOL",
"name": "assignment_prec_operator"
}
}
]
},
"_assignment_value_block": {
"type": "FIELD",
"name": "value",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
}
},
"assignment_block": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_assignment_setup"
},
{
"type": "SYMBOL",
"name": "_assignment_value_block"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"assignment_expr": {
"type": "PREC_RIGHT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_assignment_setup"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parens_op"
},
{
"type": "SYMBOL",
"name": "index_op"
},
{
"type": "SYMBOL",
"name": "tr"
},
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "SYMBOL",
"name": "gradient_call"
},
{
"type": "SYMBOL",
"name": "image_call"
},
{
"type": "SYMBOL",
"name": "reference_identifier"
},
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "member_access"
},
{
"type": "SYMBOL",
"name": "unary_expression"
},
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"type": "SYMBOL",
"name": "ternary_expression"
}
]
}
},
"parens_op": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"index_op": {
"type": "PREC",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"tr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@tr"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "context",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "string_value"
},
{
"type": "STRING",
"value": "=>"
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "message",
"content": {
"type": "SYMBOL",
"name": "string_value"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "FIELD",
"name": "pipe",
"content": {
"type": "SYMBOL",
"name": "string_value"
}
},
{
"type": "STRING",
"value": "%"
},
{
"type": "FIELD",
"name": "percent",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"member_access": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "base",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "member",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"unary_expression": {
"type": "PREC_LEFT",
"value": 14,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "op",
"content": {
"type": "SYMBOL",
"name": "unary_prec_operator"
}
},
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"binary_expression": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_add_binary_expression"
},
{
"type": "SYMBOL",
"name": "_comparison_binary_expression"
},
{
"type": "SYMBOL",
"name": "_logic_binary_expression"
},
{
"type": "SYMBOL",
"name": "_mult_binary_expression"
}
]
}
},
"_add_binary_expression": {
"type": "PREC_LEFT",
"value": 11,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "SYMBOL",
"name": "add_prec_operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"_comparison_binary_expression": {
"type": "PREC_LEFT",
"value": 9,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "SYMBOL",
"name": "comparison_operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"logical_and": {
"type": "STRING",
"value": "&&"
},
"logical_or": {
"type": "STRING",
"value": "||"
},
"_logic_binary_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "SYMBOL",
"name": "logical_and"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "SYMBOL",
"name": "logical_or"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
}
]
},
"_mult_binary_expression": {
"type": "PREC_LEFT",
"value": 12,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "SYMBOL",
"name": "mult_prec_operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"ternary_expression": {
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "?"
},
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"callback": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "purity"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "callback"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_callback_signature"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "->"
},
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"purity": {
"type": "FIELD",
"name": "value",
"content": {
"type": "STRING",
"value": "pure"
}
},
"function_visibility": {
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "public"
},
{
"type": "STRING",
"value": "private"
}
]
}
},
"function_definition": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "purity"
},
{
"type": "SYMBOL",
"name": "function_visibility"
}
]
}
},
{
"type": "STRING",
"value": "function"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_function_signature"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "->"
},
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "type"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "imperative_block"
}
]
},
"callback_alias": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "purity"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "callback"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": "<=>"
},
{
"type": "FIELD",
"name": "alias",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"callback_event": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "simple_identifier"
}
]
}
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "FIELD",
"name": "action",
"content": {
"type": "SYMBOL",
"name": "imperative_block"
}
}
]
},
"changed_callback": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "changed"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "FIELD",
"name": "action",
"content": {
"type": "SYMBOL",
"name": "imperative_block"
}
}
]
},
"function_call": {
"type": "PREC",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "arguments"
}
}
]
}
},
"gradient_call": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "linear_gradient_identifier"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "angle",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "angle_value"
},
{
"type": "SYMBOL",
"name": "int_value"
},
{
"type": "SYMBOL",
"name": "float_value"
}
]
}
},
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "colors",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "gradient_color"
},
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "gradient_color"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "gradient_color"
}
]
}
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "radial_gradient_identifier"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "radial_gradient_kind"
}
},
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "colors",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "gradient_color"
},
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "gradient_color"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "gradient_color"
}
]
}
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"gradient_color": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "argument"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "percent_value"
},
{
"type": "BLANK"
}
]
}
]
},
"image_call": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "STRING",
"value": "@image-url"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "image",
"content": {
"type": "SYMBOL",
"name": "string_value"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "nine-slice"
},
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_int_number"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"typed_identifier": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
}
]
},
"_function_signature": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "typed_identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "typed_identifier"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"_callback_signature": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "type"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"argument": {
"type": "SYMBOL",
"name": "expression"
},
"arguments": {
"type": "PREC",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "argument"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "argument"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"unary_prec_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "!"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
"add_prec_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
"mult_prec_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
}
]
},
"comparison_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">="
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "!="
}
]
},
"assignment_prec_operator": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": ":"
},
{
"type": "STRING",
"value": "+="
},
{
"type": "STRING",
"value": "-="
},
{
"type": "STRING",
"value": "*="
},
{
"type": "STRING",
"value": "/="
}
]
}
},
"_string": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_unescaped_string_fragment"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
}
]
},
"_unescaped_string_fragment": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^\"\\\\]+"
}
}
},
"escape_sequence": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "u\\{[0-9a-fA-F]+\\}"
},
{
"type": "STRING",
"value": "n"
},
{
"type": "STRING",
"value": "\\"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "}"
}
]
}
]
}
]
},
"property_visibility": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "private"
},
{
"type": "STRING",
"value": "in"
},
{
"type": "STRING",
"value": "out"
},
{
"type": "STRING",
"value": "in-out"
}
]
},
"_identifier": {
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_-]*"
},
"simple_identifier": {
"type": "SYMBOL",
"name": "_identifier"
},
"simple_indexed_identifier": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index_var",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"builtin_type_identifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "int"
},
{
"type": "STRING",
"value": "float"
},
{
"type": "STRING",
"value": "bool"
},
{
"type": "STRING",
"value": "string"
},
{
"type": "STRING",
"value": "color"
},
{
"type": "STRING",
"value": "brush"
},
{
"type": "STRING",
"value": "physical-length"
},
{
"type": "STRING",
"value": "length"
},
{
"type": "STRING",
"value": "duration"
},
{
"type": "STRING",
"value": "angle"
},
{
"type": "STRING",
"value": "easing"
},
{
"type": "STRING",
"value": "percent"
},
{
"type": "STRING",
"value": "image"
},
{
"type": "STRING",
"value": "relative-font-size"
}
]
},
"easing_kind_identifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "linear"
},
{
"type": "STRING",
"value": "ease-in-quad"
},
{
"type": "STRING",
"value": "ease-out-quad"
},
{
"type": "STRING",
"value": "ease-in-out-quad"
},
{
"type": "STRING",
"value": "ease"
},
{
"type": "STRING",
"value": "ease-in"
},
{
"type": "STRING",
"value": "ease-out"
},
{
"type": "STRING",
"value": "ease-in-out"
},
{
"type": "STRING",
"value": "ease-in-quart"
},
{
"type": "STRING",
"value": "ease-out-quart"
},
{
"type": "STRING",
"value": "ease-in-out-quart"
},
{
"type": "STRING",
"value": "ease-in-quint"
},
{
"type": "STRING",
"value": "ease-out-quint"
},
{
"type": "STRING",
"value": "ease-in-out-quint"
},
{
"type": "STRING",
"value": "ease-in-expo"
},
{
"type": "STRING",
"value": "ease-out-expo"
},
{
"type": "STRING",
"value": "ease-in-out-expo"
},
{
"type": "STRING",
"value": "ease-in-sine"
},
{
"type": "STRING",
"value": "ease-out-sine"
},
{
"type": "STRING",
"value": "ease-in-out-sine"
},
{
"type": "STRING",
"value": "ease-in-back"
},
{
"type": "STRING",
"value": "ease-out-back"
},
{
"type": "STRING",
"value": "ease-in-out-back"
},
{
"type": "STRING",
"value": "ease-in-circ"
},
{
"type": "STRING",
"value": "ease-out-circ"
},
{
"type": "STRING",
"value": "ease-in-out-circ"
},
{
"type": "STRING",
"value": "ease-in-elastic"
},
{
"type": "STRING",
"value": "ease-out-elastic"
},
{
"type": "STRING",
"value": "ease-in-out-elastic"
},
{
"type": "STRING",
"value": "ease-in-bounce"
},
{
"type": "STRING",
"value": "ease-out-bounce"
},
{
"type": "STRING",
"value": "ease-in-out-bounce"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "cubic-bezier"
},
{
"type": "SYMBOL",
"name": "arguments"
}
]
}
]
},
"user_type_identifier": {
"type": "PREC",
"value": 1,
"content": {
"type": "SYMBOL",
"name": "_identifier"
}
},
"_type_identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "builtin_type_identifier"
},
{
"type": "SYMBOL",
"name": "user_type_identifier"
}
]
},
"value_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"value": {
"type": "PREC",
"value": 10,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "anon_struct_block"
},
{
"type": "SYMBOL",
"name": "value_list"
},
{
"type": "SYMBOL",
"name": "_basic_value"
}
]
}
},
"children_identifier": {
"type": "STRING",
"value": "@children"
},
"linear_gradient_identifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "@linear-gradient"
},
{
"type": "STRING",
"value": "@linear_gradient"
}
]
},
"radial_gradient_identifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "@radial-gradient"
},
{
"type": "STRING",
"value": "@radial_gradient"
}
]
},
"radial_gradient_kind": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "circle"
}
]
},
"reference_identifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "parent"
},
{
"type": "STRING",
"value": "root"
},
{
"type": "STRING",
"value": "self"
}
]
},
"_number": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_int_number"
},
{
"type": "SYMBOL",
"name": "_float_number"
}
]
},
"_int_number": {
"type": "PATTERN",
"value": "\\d+"
},
"_float_number": {
"type": "PATTERN",
"value": "(\\d*\\.\\d+|\\d+\\.\\d*)"
},
"int_value": {
"type": "SYMBOL",
"name": "_int_number"
},
"float_value": {
"type": "SYMBOL",
"name": "_float_number"
},
"bool_value": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "true"
},
{
"type": "STRING",
"value": "false"
}
]
},
"string_value": {
"type": "SYMBOL",
"name": "_string"
},
"color_value": {
"type": "PATTERN",
"value": "#[\\da-fA-F]+"
},
"physical_length_value": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_number"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "phx"
}
}
]
},
"length_value": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_number"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "px"
},
{
"type": "STRING",
"value": "cm"
},
{
"type": "STRING",
"value": "mm"
},
{
"type": "STRING",
"value": "in"
},
{
"type": "STRING",
"value": "pt"
}
]
}
}
]
},
"duration_value": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_number"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "ms"
},
{
"type": "STRING",
"value": "s"
}
]
}
}
]
},
"angle_value": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_number"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "deg"
},
{
"type": "STRING",
"value": "grad"
},
{
"type": "STRING",
"value": "turn"
},
{
"type": "STRING",
"value": "rad"
}
]
}
}
]
},
"percent_value": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_number"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "%"
}
}
]
},
"relative_font_size_value": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_number"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "rem"
}
}
]
},
"_basic_value": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "int_value"
},
{
"type": "SYMBOL",
"name": "float_value"
},
{
"type": "SYMBOL",
"name": "bool_value"
},
{
"type": "SYMBOL",
"name": "string_value"
},
{
"type": "SYMBOL",
"name": "color_value"
},
{
"type": "SYMBOL",
"name": "physical_length_value"
},
{
"type": "SYMBOL",
"name": "length_value"
},
{
"type": "SYMBOL",
"name": "duration_value"
},
{
"type": "SYMBOL",
"name": "angle_value"
},
{
"type": "SYMBOL",
"name": "percent_value"
},
{
"type": "SYMBOL",
"name": "relative_font_size_value"
},
{
"type": "SYMBOL",
"name": "easing_kind_identifier"
}
]
},
"comment": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": "[^\\n\\r]*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
},
{
"type": "STRING",
"value": "/"
}
]
}
]
}
}
},
"extras": [
{
"type": "PATTERN",
"value": "[\\s\\r\\n]+"
},
{
"type": "SYMBOL",
"name": "comment"
}
],
"conflicts": [
[
"_assignment_value_block"
],
[
"assignment_block"
]
],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}