UNPKG

tree-sitter-zig

Version:
2,291 lines 110 kB
{ "name": "zig", "rules": { "source_file": { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_statement" } }, "doc_comment": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "///" }, { "type": "PATTERN", "value": ".*" } ] } }, "line_comment": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "//" }, { "type": "PATTERN", "value": ".*" } ] } }, "_any": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_statement" }, { "type": "SYMBOL", "name": "_expression" } ] }, "_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression_statement" }, { "type": "SYMBOL", "name": "_declaration_statement" } ] }, "_expression_statement": { "type": "PREC_LEFT", "value": 0, "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "STRING", "value": ";" } ] }, { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "_expression_ending_with_block" } } ] } }, "_expression_ending_with_block": { "type": "PREC", "value": 1, "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "block" }, { "type": "SYMBOL", "name": "comptime_block" }, { "type": "SYMBOL", "name": "defer_block" }, { "type": "SYMBOL", "name": "suspend_block" }, { "type": "SYMBOL", "name": "resume_block" }, { "type": "SYMBOL", "name": "if_expression" }, { "type": "SYMBOL", "name": "while_expression" }, { "type": "SYMBOL", "name": "for_expression" }, { "type": "SYMBOL", "name": "test_expression" } ] } }, "_declaration_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "empty_statement" }, { "type": "SYMBOL", "name": "assignment_statement" }, { "type": "SYMBOL", "name": "function_signature" }, { "type": "SYMBOL", "name": "function_declaration" } ] }, "_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "build_in_call_expr" }, { "type": "SYMBOL", "name": "call_expression" }, { "type": "SYMBOL", "name": "await_expression" }, { "type": "SYMBOL", "name": "suspend_expression" }, { "type": "SYMBOL", "name": "resume_expression" }, { "type": "SYMBOL", "name": "index_expression" }, { "type": "SYMBOL", "name": "field_expression" }, { "type": "SYMBOL", "name": "_expression_ending_with_block" }, { "type": "SYMBOL", "name": "struct_expression" }, { "type": "SYMBOL", "name": "struct_construction" }, { "type": "SYMBOL", "name": "anonymous_struct_enum" }, { "type": "SYMBOL", "name": "enum_expression" }, { "type": "SYMBOL", "name": "union_expression" }, { "type": "SYMBOL", "name": "error_expression" }, { "type": "SYMBOL", "name": "switch_expression" }, { "type": "SYMBOL", "name": "continue_expression" }, { "type": "SYMBOL", "name": "break_expression" }, { "type": "SYMBOL", "name": "return_expression" }, { "type": "SYMBOL", "name": "assignment_expression" }, { "type": "SYMBOL", "name": "array_expression" }, { "type": "SYMBOL", "name": "anonymous_array_expr" }, { "type": "SYMBOL", "name": "compound_assignment_expr" }, { "type": "SYMBOL", "name": "payload_expression" }, { "type": "SYMBOL", "name": "unary_expression" }, { "type": "SYMBOL", "name": "binary_expression" }, { "type": "SYMBOL", "name": "reference_expression" }, { "type": "SYMBOL", "name": "dereference_expression" }, { "type": "SYMBOL", "name": "orelse_postfix_expression" }, { "type": "SYMBOL", "name": "try_expression" }, { "type": "SYMBOL", "name": "range_pattern" }, { "type": "SYMBOL", "name": "unreachable_expression" }, { "type": "SYMBOL", "name": "usingnamespace_expression" }, { "type": "SYMBOL", "name": "defer_expression" }, { "type": "SYMBOL", "name": "_type" }, { "type": "SYMBOL", "name": "_literals" }, { "type": "SYMBOL", "name": "identifier" } ] } }, "empty_statement": { "type": "STRING", "value": ";" }, "assignment_statement": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "visibility_modifier" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "threadlocal" }, { "type": "STRING", "value": "comptime" } ] }, "named": true, "value": "assignment_modifier" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "const" }, { "type": "STRING", "value": "var" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "_type" } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "expression", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": ";" } ] }, "function_signature": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "visibility_modifier" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "function_modifiers" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "fn" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "parameters" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "return", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ";" } ] }, "function_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "visibility_modifier" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "function_modifiers" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "fn" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "parameters" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "return", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block" } } ] }, "visibility_modifier": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "pub" } ] }, "function_modifiers": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "export" }, { "type": "STRING", "value": "stdcallcc" }, { "type": "STRING", "value": "nakedcc" }, { "type": "STRING", "value": "inline" }, { "type": "SYMBOL", "name": "extern_modifier" } ] }, "extern_modifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "extern" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string_literal" }, { "type": "BLANK" } ] } ] }, "parameters": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "parameter" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "parameter" } ] } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "parameter": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "comptime" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "type", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "var" }, "named": true, "value": "inference_type" }, { "type": "SYMBOL", "name": "variadic_parameter" } ] } } ] }, "variadic_parameter": { "type": "STRING", "value": "..." }, "build_in_call_expr": { "type": "PREC", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "@" }, { "type": "FIELD", "name": "function", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "arguments", "content": { "type": "SYMBOL", "name": "arguments" } } ] } }, "call_expression": { "type": "PREC", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "async" }, "named": true, "value": "call_modifier" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "function", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "arguments", "content": { "type": "SYMBOL", "name": "arguments" } } ] } }, "await_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "await" }, { "type": "SYMBOL", "name": "_expression" } ] } }, "suspend_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "suspend" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "BLANK" } ] } ] } }, "resume_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "resume" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "BLANK" } ] } ] } }, "arguments": { "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": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "field_expression": { "type": "PREC_LEFT", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": "." }, { "type": "FIELD", "name": "field", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "field_identifier" }, { "type": "SYMBOL", "name": "_expression" } ] } } ] } }, "index_expression": { "type": "PREC", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "STRING", "value": "[" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "slice_pattern" } ] }, { "type": "STRING", "value": "]" } ] } }, "_pattern": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "slice_pattern" }, { "type": "SYMBOL", "name": "range_pattern" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "field_expression" }, "named": true, "value": "field_pattern" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_literals" }, "named": true, "value": "literal_pattern" } ] }, "slice_pattern": { "type": "PREC", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "start", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ".." }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "end", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "BLANK" } ] } ] } }, "range_pattern": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "start", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": "..." }, { "type": "FIELD", "name": "end", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, "switch_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "switch" }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": ")" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "switch_block" } } ] }, "switch_block": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "switch_arm" } }, { "type": "SYMBOL", "name": "switch_last_arm" } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] }, "switch_arm": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "pattern", "content": { "type": "SYMBOL", "name": "switch_pattern" } }, { "type": "STRING", "value": "=>" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": "," } ] }, { "type": "FIELD", "name": "value", "content": { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "_expression_ending_with_block" } } } ] } ] }, "switch_last_arm": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "pattern", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "else" }, "named": true, "value": "else_switch" }, { "type": "SYMBOL", "name": "switch_pattern" } ] } }, { "type": "STRING", "value": "=>" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, "switch_pattern": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_pattern" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_pattern" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_pattern" } ] } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] } ] }, "if_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "if" }, { "type": "SYMBOL", "name": "_condition" }, { "type": "FIELD", "name": "consequence", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "block" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_else_tail" }, { "type": "BLANK" } ] } ] } }, "while_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "loop_label" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "inline" }, "named": true, "value": "loop_modifier" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "while" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_condition" }, { "type": "SYMBOL", "name": "_condition_with_continue" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_else_tail" }, { "type": "BLANK" } ] } ] } }, "for_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "loop_label" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "inline" }, "named": true, "value": "loop_modifier" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "for" }, { "type": "SYMBOL", "name": "_condition" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_else_tail" }, { "type": "BLANK" } ] } ] } }, "_condition": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": ")" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "payload" }, { "type": "BLANK" } ] } ] } }, "_condition_with_continue": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": ")" }, { "type": "STRING", "value": ":" }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "continue", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "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": "STRING", "value": "}" } ] } ] } }, { "type": "STRING", "value": ")" } ] }, "_else_tail": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "else" }, { "type": "SYMBOL", "name": "_else_case" } ] } }, "_else_case": { "type": "PREC_LEFT", "value": 2, "content": { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "block" }, { "type": "SYMBOL", "name": "if_expression" }, { "type": "SYMBOL", "name": "payload_expression" } ] } } }, "loop_label": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "label_identifier" } }, { "type": "STRING", "value": ":" } ] }, "payload": { "type": "SEQ", "members": [ { "type": "STRING", "value": "|" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "*" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "values", "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "payload_identifier" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "payload_identifier" } ] } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] } }, { "type": "STRING", "value": "|" } ] }, "payload_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "payload" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "block" } ] } ] } }, "break_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "break" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "label", "content": { "type": "SYMBOL", "name": "loop_label_inverse" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "BLANK" } ] } ] } }, "continue_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "continue" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "label", "content": { "type": "SYMBOL", "name": "loop_label_inverse" } }, { "type": "BLANK" } ] } ] }, "loop_label_inverse": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "name", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "label_identifier" } } ] }, "return_expression": { "type": "CHOICE", "members": [ { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "return" }, { "type": "SYMBOL", "name": "_expression" } ] } }, { "type": "PREC", "value": -1, "content": { "type": "STRING", "value": "return" } } ] }, "test_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "test" }, { "type": "FIELD", "name": "test_name", "content": { "type": "SYMBOL", "name": "string_literal" } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block" } } ] }, "try_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "try" }, { "type": "FIELD", "name": "expression", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, "usingnamespace_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "visibility_modifier" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "usingnamespace" }, { "type": "FIELD", "name": "import", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, "_type": { "type": "PREC", "value": -1, "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "primitive_type" }, { "type": "SYMBOL", "name": "optional_type" }, { "type": "SYMBOL", "name": "pointer_type" }, { "type": "SYMBOL", "name": "error_type" }, { "type": "SYMBOL", "name": "array_type" }, { "type": "SYMBOL", "name": "custom_number_type" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "type_identifier" } ] } }, "primitive_type": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "i8" }, { "type": "STRING", "value": "u8" }, { "type": "STRING", "value": "i16" }, { "type": "STRING", "value": "u16" }, { "type": "STRING", "value": "i32" }, { "type": "STRING", "value": "u32" }, { "type": "STRING", "value": "i64" }, { "type": "STRING", "value": "u64" }, { "type": "STRING", "value": "i128" }, { "type": "STRING", "value": "u128" }, { "type": "STRING", "value": "isize" }, { "type": "STRING", "value": "usize" }, { "type": "STRING", "value": "c_short" }, { "type": "STRING", "value": "c_ushort" }, { "type": "STRING", "value": "c_int" }, { "type": "STRING", "value": "c_uint" }, { "type": "STRING", "value": "c_long" }, { "type": "STRING", "value": "c_ulong" }, { "type": "STRING", "value": "c_longlong" }, { "type": "STRING", "value": "c_ulonglong" }, { "type": "STRING", "value": "c_longdouble" }, { "type": "STRING", "value": "c_void" }, { "type": "STRING", "value": "f16" }, { "type": "STRING", "value": "f32" }, { "type": "STRING", "value": "f64" }, { "type": "STRING", "value": "f128" }, { "type": "STRING", "value": "comptime_int" }, { "type": "STRING", "value": "comptime_float" }, { "type": "STRING", "value": "bool" }, { "type": "STRING", "value": "void" }, { "type": "STRING", "value": "noreturn" }, { "type": "STRING", "value": "type" }, { "type": "STRING", "value": "anyerror" } ] }, "custom_number_type": { "type": "PATTERN", "value": "(i|u)[0-9]+" }, "error_type": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "err", "content": { "type": "SYMBOL", "name": "_type" } }, { "type": "STRING", "value": "!" }, { "type": "FIELD", "name": "ok", "content": { "type": "SYMBOL", "name": "_type" } } ] } }, "optional_type": { "type": "PREC", "value": -2, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "?" }, { "type": "SYMBOL", "name": "_type" } ] } }, "array_type": { "type": "PREC", "value": -3, "content": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "size", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "integer_literal" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "ALIAS", "conten