UNPKG

tree-sitter-swift

Version:

A tree-sitter grammar for the Swift programming language.

2,335 lines 643 kB
[ { "type": "?", "named": false, "fields": {} }, { "type": "additive_expression", "named": true, "fields": { "lhs": { "multiple": true, "required": true, "types": [ { "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": "<<", "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": "additive_expression", "named": true }, { "type": "array_literal", "named": true }, { "type": "as_expression", "named": true }, { "type": "assignment", "named": true }, { "type": "await_expression", "named": true }, { "type": "bang", "named": true }, { "type": "bin_literal", "named": true }, { "type": "bitwise_operation", "named": true }, { "type": "boolean_literal", "named": true }, { "type": "call_expression", "named": true }, { "type": "check_expression", "named": true }, { "type": "comparison_expression", "named": true }, { "type": "conjunction_expression", "named": true }, { "type": "constructor_expression", "named": true }, { "type": "custom_operator", "named": true }, { "type": "diagnostic", "named": true }, { "type": "dictionary_literal", "named": true }, { "type": "directive", "named": true }, { "type": "disjunction_expression", "named": true }, { "type": "equality_expression", "named": true }, { "type": "fully_open_range", "named": true }, { "type": "hex_literal", "named": true }, { "type": "if_statement", "named": true }, { "type": "infix_expression", "named": true }, { "type": "integer_literal", "named": true }, { "type": "key_path_expression", "named": true }, { "type": "key_path_string_expression", "named": true }, { "type": "lambda_literal", "named": true }, { "type": "line_string_literal", "named": true }, { "type": "macro_invocation", "named": true }, { "type": "multi_line_string_literal", "named": true }, { "type": "multiplicative_expression", "named": true }, { "type": "navigation_expression", "named": true }, { "type": "nil", "named": false }, { "type": "nil_coalescing_expression", "named": true }, { "type": "oct_literal", "named": true }, { "type": "open_end_range_expression", "named": true }, { "type": "open_start_range_expression", "named": true }, { "type": "playground_literal", "named": true }, { "type": "postfix_expression", "named": true }, { "type": "prefix_expression", "named": true }, { "type": "range_expression", "named": true }, { "type": "raw_string_literal", "named": true }, { "type": "real_literal", "named": true }, { "type": "regex_literal", "named": true }, { "type": "selector_expression", "named": true }, { "type": "self_expression", "named": true }, { "type": "simple_identifier", "named": true }, { "type": "special_literal", "named": true }, { "type": "super_expression", "named": true }, { "type": "switch_statement", "named": true }, { "type": "ternary_expression", "named": true }, { "type": "try_expression", "named": true }, { "type": "tuple_expression", "named": true }, { "type": "value_pack_expansion", "named": true }, { "type": "value_parameter_pack", "named": true }, { "type": "|", "named": false }, { "type": "~", "named": false } ] }, "op": { "multiple": false, "required": true, "types": [ { "type": "+", "named": false }, { "type": "-", "named": false } ] }, "rhs": { "multiple": true, "required": true, "types": [ { "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": "<<", "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": "additive_expression", "named": true }, { "type": "array_literal", "named": true }, { "type": "as_expression", "named": true }, { "type": "assignment", "named": true }, { "type": "await_expression", "named": true }, { "type": "bang", "named": true }, { "type": "bin_literal", "named": true }, { "type": "bitwise_operation", "named": true }, { "type": "boolean_literal", "named": true }, { "type": "call_expression", "named": true }, { "type": "check_expression", "named": true }, { "type": "comparison_expression", "named": true }, { "type": "conjunction_expression", "named": true }, { "type": "constructor_expression", "named": true }, { "type": "custom_operator", "named": true }, { "type": "diagnostic", "named": true }, { "type": "dictionary_literal", "named": true }, { "type": "directive", "named": true }, { "type": "disjunction_expression", "named": true }, { "type": "equality_expression", "named": true }, { "type": "fully_open_range", "named": true }, { "type": "hex_literal", "named": true }, { "type": "if_statement", "named": true }, { "type": "infix_expression", "named": true }, { "type": "integer_literal", "named": true }, { "type": "key_path_expression", "named": true }, { "type": "key_path_string_expression", "named": true }, { "type": "lambda_literal", "named": true }, { "type": "line_string_literal", "named": true }, { "type": "macro_invocation", "named": true }, { "type": "multi_line_string_literal", "named": true }, { "type": "multiplicative_expression", "named": true }, { "type": "navigation_expression", "named": true }, { "type": "nil", "named": false }, { "type": "nil_coalescing_expression", "named": true }, { "type": "oct_literal", "named": true }, { "type": "open_end_range_expression", "named": true }, { "type": "open_start_range_expression", "named": true }, { "type": "playground_literal", "named": true }, { "type": "postfix_expression", "named": true }, { "type": "prefix_expression", "named": true }, { "type": "range_expression", "named": true }, { "type": "raw_string_literal", "named": true }, { "type": "real_literal", "named": true }, { "type": "regex_literal", "named": true }, { "type": "selector_expression", "named": true }, { "type": "self_expression", "named": true }, { "type": "simple_identifier", "named": true }, { "type": "special_literal", "named": true }, { "type": "super_expression", "named": true }, { "type": "switch_statement", "named": true }, { "type": "ternary_expression", "named": true }, { "type": "try_expression", "named": true }, { "type": "tuple_expression", "named": true }, { "type": "value_pack_expansion", "named": true }, { "type": "value_parameter_pack", "named": true }, { "type": "|", "named": false }, { "type": "~", "named": false } ] } } }, { "type": "array_literal", "named": true, "fields": { "element": { "multiple": true, "required": false, "types": [ { "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": "<<", "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": "additive_expression", "named": true }, { "type": "array_literal", "named": true }, { "type": "as_expression", "named": true }, { "type": "assignment", "named": true }, { "type": "await_expression", "named": true }, { "type": "bang", "named": true }, { "type": "bin_literal", "named": true }, { "type": "bitwise_operation", "named": true }, { "type": "boolean_literal", "named": true }, { "type": "call_expression", "named": true }, { "type": "check_expression", "named": true }, { "type": "comparison_expression", "named": true }, { "type": "conjunction_expression", "named": true }, { "type": "constructor_expression", "named": true }, { "type": "custom_operator", "named": true }, { "type": "diagnostic", "named": true }, { "type": "dictionary_literal", "named": true }, { "type": "directive", "named": true }, { "type": "disjunction_expression", "named": true }, { "type": "equality_expression", "named": true }, { "type": "fully_open_range", "named": true }, { "type": "hex_literal", "named": true }, { "type": "if_statement", "named": true }, { "type": "infix_expression", "named": true }, { "type": "integer_literal", "named": true }, { "type": "key_path_expression", "named": true }, { "type": "key_path_string_expression", "named": true }, { "type": "lambda_literal", "named": true }, { "type": "line_string_literal", "named": true }, { "type": "macro_invocation", "named": true }, { "type": "multi_line_string_literal", "named": true }, { "type": "multiplicative_expression", "named": true }, { "type": "navigation_expression", "named": true }, { "type": "nil", "named": false }, { "type": "nil_coalescing_expression", "named": true }, { "type": "oct_literal", "named": true }, { "type": "open_end_range_expression", "named": true }, { "type": "open_start_range_expression", "named": true }, { "type": "playground_literal", "named": true }, { "type": "postfix_expression", "named": true }, { "type": "prefix_expression", "named": true }, { "type": "range_expression", "named": true }, { "type": "raw_string_literal", "named": true }, { "type": "real_literal", "named": true }, { "type": "regex_literal", "named": true }, { "type": "selector_expression", "named": true }, { "type": "self_expression", "named": true }, { "type": "simple_identifier", "named": true }, { "type": "special_literal", "named": true }, { "type": "super_expression", "named": true }, { "type": "switch_statement", "named": true }, { "type": "ternary_expression", "named": true }, { "type": "try_expression", "named": true }, { "type": "tuple_expression", "named": true }, { "type": "value_pack_expansion", "named": true }, { "type": "value_parameter_pack", "named": true }, { "type": "|", "named": false }, { "type": "~", "named": false } ] } } }, { "type": "array_type", "named": true, "fields": { "element": { "multiple": true, "required": true, "types": [ { "type": "array_type", "named": true }, { "type": "dictionary_type", "named": true }, { "type": "existential_type", "named": true }, { "type": "function_type", "named": true }, { "type": "metatype", "named": true }, { "type": "opaque_type", "named": true }, { "type": "optional_type", "named": true }, { "type": "protocol_composition_type", "named": true }, { "type": "suppressed_constraint", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type_modifiers", "named": true }, { "type": "type_pack_expansion", "named": true }, { "type": "type_parameter_pack", "named": true }, { "type": "user_type", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "array_type", "named": true }, { "type": "dictionary_type", "named": true }, { "type": "existential_type", "named": true }, { "type": "function_type", "named": true }, { "type": "metatype", "named": true }, { "type": "opaque_type", "named": true }, { "type": "optional_type", "named": true }, { "type": "protocol_composition_type", "named": true }, { "type": "suppressed_constraint", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type_pack_expansion", "named": true }, { "type": "type_parameter_pack", "named": true }, { "type": "user_type", "named": true } ] } } }, { "type": "as_expression", "named": true, "fields": { "expr": { "multiple": true, "required": true, "types": [ { "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": "<<", "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": "additive_expression", "named": true }, { "type": "array_literal", "named": true }, { "type": "as_expression", "named": true }, { "type": "assignment", "named": true }, { "type": "await_expression", "named": true }, { "type": "bang", "named": true }, { "type": "bin_literal", "named": true }, { "type": "bitwise_operation", "named": true }, { "type": "boolean_literal", "named": true }, { "type": "call_expression", "named": true }, { "type": "check_expression", "named": true }, { "type": "comparison_expression", "named": true }, { "type": "conjunction_expression", "named": true }, { "type": "constructor_expression", "named": true }, { "type": "custom_operator", "named": true }, { "type": "diagnostic", "named": true }, { "type": "dictionary_literal", "named": true }, { "type": "directive", "named": true }, { "type": "disjunction_expression", "named": true }, { "type": "equality_expression", "named": true }, { "type": "fully_open_range", "named": true }, { "type": "hex_literal", "named": true }, { "type": "if_statement", "named": true }, { "type": "infix_expression", "named": true }, { "type": "integer_literal", "named": true }, { "type": "key_path_expression", "named": true }, { "type": "key_path_string_expression", "named": true }, { "type": "lambda_literal", "named": true }, { "type": "line_string_literal", "named": true }, { "type": "macro_invocation", "named": true }, { "type": "multi_line_string_literal", "named": true }, { "type": "multiplicative_expression", "named": true }, { "type": "navigation_expression", "named": true }, { "type": "nil", "named": false }, { "type": "nil_coalescing_expression", "named": true }, { "type": "oct_literal", "named": true }, { "type": "open_end_range_expression", "named": true }, { "type": "open_start_range_expression", "named": true }, { "type": "playground_literal", "named": true }, { "type": "postfix_expression", "named": true }, { "type": "prefix_expression", "named": true }, { "type": "range_expression", "named": true }, { "type": "raw_string_literal", "named": true }, { "type": "real_literal", "named": true }, { "type": "regex_literal", "named": true }, { "type": "selector_expression", "named": true }, { "type": "self_expression", "named": true }, { "type": "simple_identifier", "named": true }, { "type": "special_literal", "named": true }, { "type": "super_expression", "named": true }, { "type": "switch_statement", "named": true }, { "type": "ternary_expression", "named": true }, { "type": "try_expression", "named": true }, { "type": "tuple_expression", "named": true }, { "type": "value_pack_expansion", "named": true }, { "type": "value_parameter_pack", "named": true }, { "type": "|", "named": false }, { "type": "~", "named": false } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "array_type", "named": true }, { "type": "dictionary_type", "named": true }, { "type": "existential_type", "named": true }, { "type": "function_type", "named": true }, { "type": "metatype", "named": true }, { "type": "opaque_type", "named": true }, { "type": "optional_type", "named": true }, { "type": "protocol_composition_type", "named": true }, { "type": "suppressed_constraint", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type_pack_expansion", "named": true }, { "type": "type_parameter_pack", "named": true }, { "type": "user_type", "named": true } ] }, "type": { "multiple": true, "required": true, "types": [ { "type": "array_type", "named": true }, { "type": "dictionary_type", "named": true }, { "type": "existential_type", "named": true }, { "type": "function_type", "named": true }, { "type": "metatype", "named": true }, { "type": "opaque_type", "named": true }, { "type": "optional_type", "named": true }, { "type": "protocol_composition_type", "named": true }, { "type": "suppressed_constraint", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type_modifiers", "named": true }, { "type": "type_pack_expansion", "named": true }, { "type": "type_parameter_pack", "named": true }, { "type": "user_type", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "as_operator", "named": true } ] } }, { "type": "as_operator", "named": true, "fields": {} }, { "type": "assignment", "named": true, "fields": { "operator": { "multiple": false, "required": true, "types": [ { "type": "%=", "named": false }, { "type": "*=", "named": false }, { "type": "+=", "named": false }, { "type": "-=", "named": false }, { "type": "/=", "named": false }, { "type": "=", "named": false } ] }, "result": { "multiple": true, "required": true, "types": [ { "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": "<<", "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": "additive_expression", "named": true }, { "type": "array_literal", "named": true }, { "type": "as_expression", "named": true }, { "type": "assignment", "named": true }, { "type": "await_expression", "named": true }, { "type": "bang", "named": true }, { "type": "bin_literal", "named": true }, { "type": "bitwise_operation", "named": true }, { "type": "boolean_literal", "named": true }, { "type": "call_expression", "named": true }, { "type": "check_expression", "named": true }, { "type": "comparison_expression", "named": true }, { "type": "conjunction_expression", "named": true }, { "type": "constructor_expression", "named": true }, { "type": "custom_operator", "named": true }, { "type": "diagnostic", "named": true }, { "type": "dictionary_literal", "named": true }, { "type": "directive", "named": true }, { "type": "disjunction_expression", "named": true }, { "type": "equality_expression", "named": true }, { "type": "fully_open_range", "named": true }, { "type": "hex_literal", "named": true }, { "type": "if_statement", "named": true }, { "type": "infix_expression", "named": true }, { "type": "integer_literal", "named": true }, { "type": "key_path_expression", "named": true }, { "type": "key_path_string_expression", "named": true }, { "type": "lambda_literal", "named": true }, { "type": "line_string_literal", "named": true }, { "type": "macro_invocation", "named": true }, { "type": "multi_line_string_literal", "named": true }, { "type": "multiplicative_expression", "named": true }, { "type": "navigation_expression", "named": true }, { "type": "nil", "named": false }, { "type": "nil_coalescing_expression", "named": true }, { "type": "oct_literal", "named": true }, { "type": "open_end_range_expression", "named": true }, { "type": "open_start_range_expression", "named": true }, { "type": "playground_literal", "named": true }, { "type": "postfix_expression", "named": true }, { "type": "prefix_expression", "named": true }, { "type": "range_expression", "named": true }, { "type": "raw_string_literal", "named": true }, { "type": "real_literal", "named": true }, { "type": "regex_literal", "named": true }, { "type": "selector_expression", "named": true }, { "type": "self_expression", "named": true }, { "type": "simple_identifier", "named": true }, { "type": "special_literal", "named": true }, { "type": "super_expression", "named": true }, { "type": "switch_statement", "named": true }, { "type": "ternary_expression", "named": true }, { "type": "try_expression", "named": true }, { "type": "tuple_expression", "named": true }, { "type": "value_pack_expansion", "named": true }, { "type": "value_parameter_pack", "named": true }, { "type": "|", "named": false }, { "type": "~", "named": false } ] }, "target": { "multiple": false, "required": true, "types": [ { "type": "directly_assignable_expression", "named": true } ] } } }, { "type": "associatedtype_declaration", "named": true, "fields": { "default_value": { "multiple": true, "required": false, "types": [ { "type": "array_type", "named": true }, { "type": "dictionary_type", "named": true }, { "type": "existential_type", "named": true }, { "type": "function_type", "named": true }, { "type": "metatype", "named": true }, { "type": "opaque_type", "named": true }, { "type": "optional_type", "named": true }, { "type": "protocol_composition_type", "named": true }, { "type": "suppressed_constraint", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type_modifiers", "named": true }, { "type": "type_pack_expansion", "named": true }, { "type": "type_parameter_pack", "named": true }, { "type": "user_type", "named": true } ] }, "must_inherit": { "multiple": true, "required": false, "types": [ { "type": "array_type", "named": true }, { "type": "dictionary_type", "named": true }, { "type": "existential_type", "named": true }, { "type": "function_type", "named": true }, { "type": "metatype", "named": true }, { "type": "opaque_type", "named": true }, { "type": "optional_type", "named": true }, { "type": "protocol_composition_type", "named": true }, { "type": "suppressed_constraint", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type_modifiers", "named": true }, { "type": "type_pack_expansion", "named": true }, { "type": "type_parameter_pack", "named": true }, { "type": "user_type", "named": true } ] }, "name": { "multiple": true, "required": true, "types": [ { "type": "array_type", "named": true }, { "type": "dictionary_type", "named": true }, { "type": "existential_type", "named": true }, { "type": "function_type", "named": true }, { "type": "metatype", "named": true }, { "type": "opaque_type", "named": true }, { "type": "optional_type", "named": true }, { "type": "protocol_composition_type", "named": true }, { "type": "suppressed_constraint", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type_identifier", "named": true }, { "type": "type_pack_expansion", "named": true }, { "type": "type_parameter_pack", "named": true }, { "type": "user_type", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "modifiers", "named": true }, { "type": "type_constraints", "named": true } ] } }, { "type": "attribute", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "additive_expression", "named": true }, { "type": "array_literal", "named": true }, { "type": "as_expression", "named": true }, { "type": "assignment", "named": true }, { "type": "await_expression", "named": true }, { "type": "bang", "named": true }, { "type": "bin_literal", "named": true }, { "type": "bitwise_operation", "named": true }, { "type": "boolean_literal", "named": true }, { "type": "call_expression", "named": true }, { "type": "check_expression", "named": true }, { "type": "comparison_expression", "named": true }, { "type": "conjunction_expression", "named": true }, { "type": "constructor_expression", "named": true }, { "type": "custom_operator", "named": true }, { "type": "diagnostic", "named": true }, { "type": "dicti