summaryrefslogtreecommitdiff
path: root/vendor/tree-sitter-zig/src/grammar.json
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/tree-sitter-zig/src/grammar.json')
-rw-r--r--vendor/tree-sitter-zig/src/grammar.json6570
1 files changed, 6570 insertions, 0 deletions
diff --git a/vendor/tree-sitter-zig/src/grammar.json b/vendor/tree-sitter-zig/src/grammar.json
new file mode 100644
index 0000000..6cabde9
--- /dev/null
+++ b/vendor/tree-sitter-zig/src/grammar.json
@@ -0,0 +1,6570 @@
+{
+ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
+ "name": "zig",
+ "word": "_identifier",
+ "rules": {
+ "source_file": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_container_members"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ "_container_members": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "test_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "comptime_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "variable_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "function_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "using_namespace_declaration"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "container_field"
+ },
+ {
+ "type": "STRING",
+ "value": ","
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "container_field"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "container_field"
+ }
+ ]
+ },
+ "test_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "pub"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "test"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "block"
+ }
+ ]
+ },
+ "comptime_declaration": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "pub"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "comptime"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "block"
+ }
+ ]
+ }
+ },
+ "container_field": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "PREC_DYNAMIC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "comptime"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_reserved_identifier"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "builtin_type"
+ },
+ "named": true,
+ "value": "identifier"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "primary_type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "if_type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "comptime_type_expression"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "primary_type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "if_type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "comptime_type_expression"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "byte_alignment"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "variable_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "pub"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "export"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "extern"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "threadlocal"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_variable_declaration_header"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ";"
+ }
+ ]
+ },
+ "_variable_declaration_expression_statement": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_variable_declaration_header"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_variable_declaration_header"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ";"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "STRING",
+ "value": "*="
+ },
+ {
+ "type": "STRING",
+ "value": "*%="
+ },
+ {
+ "type": "STRING",
+ "value": "*|="
+ },
+ {
+ "type": "STRING",
+ "value": "/="
+ },
+ {
+ "type": "STRING",
+ "value": "%="
+ },
+ {
+ "type": "STRING",
+ "value": "+="
+ },
+ {
+ "type": "STRING",
+ "value": "+%="
+ },
+ {
+ "type": "STRING",
+ "value": "+|="
+ },
+ {
+ "type": "STRING",
+ "value": "-="
+ },
+ {
+ "type": "STRING",
+ "value": "-%="
+ },
+ {
+ "type": "STRING",
+ "value": "-|="
+ },
+ {
+ "type": "STRING",
+ "value": "<<="
+ },
+ {
+ "type": "STRING",
+ "value": "<<|="
+ },
+ {
+ "type": "STRING",
+ "value": ">>="
+ },
+ {
+ "type": "STRING",
+ "value": "&="
+ },
+ {
+ "type": "STRING",
+ "value": "^="
+ },
+ {
+ "type": "STRING",
+ "value": "|="
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_variable_declaration_header"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ";"
+ }
+ ]
+ }
+ ]
+ },
+ "_variable_declaration_header": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "const"
+ },
+ {
+ "type": "STRING",
+ "value": "var"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "if_type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "comptime_type_expression"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "byte_alignment"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "address_space"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "link_section"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "function_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "pub"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "export"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "extern"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "inline"
+ },
+ {
+ "type": "STRING",
+ "value": "noinline"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_function_prototype"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ";"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "block"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "_function_prototype": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "fn"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "identifier"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "parameters"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "byte_alignment"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "address_space"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "link_section"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "calling_convention"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "if_type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "comptime_type_expression"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "parameters": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "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": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "noalias"
+ },
+ {
+ "type": "STRING",
+ "value": "comptime"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "builtin_type"
+ },
+ "named": true,
+ "value": "identifier"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ":"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "if_type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "comptime_type_expression"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "..."
+ }
+ ]
+ },
+ "using_namespace_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "pub"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "usingnamespace"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ";"
+ }
+ ]
+ },
+ "block": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "struct_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "extern"
+ },
+ {
+ "type": "STRING",
+ "value": "packed"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "struct"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_container_members"
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "opaque_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "extern"
+ },
+ {
+ "type": "STRING",
+ "value": "packed"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "opaque"
+ },
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_container_members"
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "enum_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "extern"
+ },
+ {
+ "type": "STRING",
+ "value": "packed"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "enum"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_container_members"
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "union_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "extern"
+ },
+ {
+ "type": "STRING",
+ "value": "packed"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "union"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "enum"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_container_members"
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "error_set_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "error"
+ },
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "statement": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "comptime_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "nosuspend_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "suspend_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "defer_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "errdefer_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression_statement"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_variable_declaration_expression_statement"
+ },
+ "named": true,
+ "value": "variable_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "if_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "for_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "while_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "labeled_statement"
+ },
+ {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SYMBOL",
+ "name": "switch_expression"
+ }
+ }
+ ]
+ },
+ "comptime_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "comptime"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_block_expr_statement"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_variable_declaration_expression_statement"
+ },
+ "named": true,
+ "value": "variable_declaration"
+ }
+ ]
+ }
+ ]
+ },
+ "nosuspend_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "nosuspend"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_block_expr_statement"
+ }
+ ]
+ },
+ "suspend_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "suspend"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_block_expr_statement"
+ }
+ ]
+ },
+ "defer_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "defer"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_block_expr_statement"
+ }
+ ]
+ },
+ "errdefer_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "errdefer"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "payload"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_block_expr_statement"
+ }
+ ]
+ },
+ "_block_expr_statement": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "block_label"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "block"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression_statement"
+ }
+ ]
+ }
+ },
+ "block_expression": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "block_label"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "block"
+ }
+ ]
+ }
+ },
+ "labeled_statement": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "block_label"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "block"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "for_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "while_statement"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "expression_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ";"
+ }
+ ]
+ },
+ "if_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_if_prefix"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_conditional_body"
+ }
+ ]
+ },
+ "_if_prefix": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "if"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "payload"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "else_clause": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "else"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "payload"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "alternative",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ }
+ ]
+ },
+ "for_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "inline"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_for_prefix"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_conditional_body"
+ }
+ ]
+ },
+ "_for_prefix": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "for"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ".."
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ".."
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "payload"
+ }
+ ]
+ },
+ "while_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "inline"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_while_prefix"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_conditional_body"
+ }
+ ]
+ },
+ "_while_prefix": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "while"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "payload"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "_conditional_body": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "block_expression"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "else_clause"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ";"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "else_clause"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "payload": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "|"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "*"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "*"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "|"
+ }
+ ]
+ },
+ "byte_alignment": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "align"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "address_space": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "addrspace"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "link_section": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "linksection"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "calling_convention": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "callconv"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "asm_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "if_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "for_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "while_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "assignment_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "unary_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "binary_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "comptime_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "async_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "await_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "nosuspend_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "continue_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "resume_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "return_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "break_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "try_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "catch_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "block"
+ }
+ ]
+ }
+ },
+ "asm_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "asm"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "volatile"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "asm_output"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "asm_output": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "asm_output_item"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "asm_output_item"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "asm_input"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "asm_output_item": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "multiline_string"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "->"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "asm_input": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "asm_input_item"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "asm_input_item"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "asm_clobbers"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "asm_input_item": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "multiline_string"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "asm_clobbers": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "multiline_string"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "multiline_string"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "if_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_if_prefix"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "else"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "payload"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "for_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "block_label"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "inline"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_for_prefix"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "else"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "while_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "block_label"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "inline"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_while_prefix"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "else"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "payload"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "assignment_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "STRING",
+ "value": "*="
+ },
+ {
+ "type": "STRING",
+ "value": "*%="
+ },
+ {
+ "type": "STRING",
+ "value": "*|="
+ },
+ {
+ "type": "STRING",
+ "value": "/="
+ },
+ {
+ "type": "STRING",
+ "value": "%="
+ },
+ {
+ "type": "STRING",
+ "value": "+="
+ },
+ {
+ "type": "STRING",
+ "value": "+%="
+ },
+ {
+ "type": "STRING",
+ "value": "+|="
+ },
+ {
+ "type": "STRING",
+ "value": "-="
+ },
+ {
+ "type": "STRING",
+ "value": "-%="
+ },
+ {
+ "type": "STRING",
+ "value": "-|="
+ },
+ {
+ "type": "STRING",
+ "value": "<<="
+ },
+ {
+ "type": "STRING",
+ "value": "<<|="
+ },
+ {
+ "type": "STRING",
+ "value": ">>="
+ },
+ {
+ "type": "STRING",
+ "value": "&="
+ },
+ {
+ "type": "STRING",
+ "value": "^="
+ },
+ {
+ "type": "STRING",
+ "value": "|="
+ }
+ ]
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ "unary_expression": {
+ "type": "PREC_LEFT",
+ "value": 8,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "!"
+ },
+ {
+ "type": "STRING",
+ "value": "~"
+ },
+ {
+ "type": "STRING",
+ "value": "-"
+ },
+ {
+ "type": "STRING",
+ "value": "-%"
+ },
+ {
+ "type": "STRING",
+ "value": "&"
+ }
+ ]
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "argument",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ "binary_expression": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PREC_LEFT",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "or"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 2,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "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": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "=="
+ }
+ },
+ {
+ "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": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "!="
+ }
+ },
+ {
+ "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": "operator",
+ "content": {
+ "type": "STRING",
+ "value": ">"
+ }
+ },
+ {
+ "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": "operator",
+ "content": {
+ "type": "STRING",
+ "value": ">="
+ }
+ },
+ {
+ "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": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "<="
+ }
+ },
+ {
+ "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": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "<"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 4,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "&"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 4,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "^"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 4,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "|"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 4,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "orelse"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 5,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "<<"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 5,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": ">>"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 5,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "<<|"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 6,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "+"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 6,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "-"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 6,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "++"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 6,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "+%"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 6,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "-%"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 6,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "+|"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 6,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "-|"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 7,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "*"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 7,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "/"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 7,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "%"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 7,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "**"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 7,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "*%"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 7,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "*|"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 7,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "||"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "comptime_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "comptime"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ },
+ "async_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "async"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ },
+ "await_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "await"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ },
+ "nosuspend_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "nosuspend"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ },
+ "continue_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "continue"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "break_label"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "resume_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "resume"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ },
+ "return_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "return"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "break_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "break"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "break_label"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "try_expression": {
+ "type": "PREC_RIGHT",
+ "value": 4,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "try"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ },
+ "catch_expression": {
+ "type": "PREC_RIGHT",
+ "value": 4,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": "catch"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "payload"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ },
+ "switch_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "block_label"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "switch"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "switch_case"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "switch_case"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "switch_case": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_switch_case_exp"
+ },
+ {
+ "type": "STRING",
+ "value": "=>"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "payload"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ ]
+ },
+ "_switch_case_exp": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "inline"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "..."
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "..."
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "else"
+ }
+ ]
+ }
+ ]
+ },
+ "type_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "anonymous_struct_initializer"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "struct_initializer"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "labeled_type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "error_set_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "primary_type_expression"
+ }
+ ]
+ }
+ },
+ "primary_type_expression": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "nullable_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "anyframe_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "slice_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "pointer_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "array_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "error_union_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "builtin_function"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "character"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "field_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "index_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "dereference_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "null_coercion_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "range_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "call_expression"
+ },
+ {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_function_prototype"
+ },
+ "named": true,
+ "value": "function_signature"
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "float"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "integer"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "boolean"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "error_type"
+ },
+ {
+ "type": "STRING",
+ "value": "anyframe"
+ },
+ {
+ "type": "STRING",
+ "value": "unreachable"
+ },
+ {
+ "type": "STRING",
+ "value": "undefined"
+ },
+ {
+ "type": "STRING",
+ "value": "null"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "multiline_string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "builtin_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "struct_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "opaque_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "enum_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "union_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "switch_expression"
+ }
+ ]
+ },
+ "nullable_type": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "?"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "if_type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "comptime_type_expression"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "anyframe_type": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "anyframe"
+ },
+ {
+ "type": "STRING",
+ "value": "->"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ }
+ ]
+ }
+ },
+ "slice_type": {
+ "type": "PREC_RIGHT",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "FIELD",
+ "name": "sentinel",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "byte_alignment"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "address_space"
+ },
+ {
+ "type": "STRING",
+ "value": "const"
+ },
+ {
+ "type": "STRING",
+ "value": "volatile"
+ },
+ {
+ "type": "STRING",
+ "value": "allowzero"
+ }
+ ]
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ }
+ ]
+ }
+ },
+ "pointer_type": {
+ "type": "PREC_RIGHT",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "*"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "STRING",
+ "value": "*"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "c"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "address_space"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "align"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "const"
+ },
+ {
+ "type": "STRING",
+ "value": "volatile"
+ },
+ {
+ "type": "STRING",
+ "value": "allowzero"
+ }
+ ]
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ }
+ ]
+ }
+ },
+ "array_type": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ }
+ ]
+ }
+ },
+ "error_union_type": {
+ "type": "PREC_RIGHT",
+ "value": 2,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "error",
+ "content": {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "!"
+ },
+ {
+ "type": "FIELD",
+ "name": "ok",
+ "content": {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ }
+ }
+ ]
+ }
+ },
+ "field_expression": {
+ "type": "PREC",
+ "value": 10,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "object",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "FIELD",
+ "name": "member",
+ "content": {
+ "type": "SYMBOL",
+ "name": "identifier"
+ }
+ }
+ ]
+ }
+ },
+ "index_expression": {
+ "type": "PREC",
+ "value": 10,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "object",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "FIELD",
+ "name": "index",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "FIELD",
+ "name": "sentinel",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ }
+ ]
+ }
+ },
+ "dereference_expression": {
+ "type": "PREC",
+ "value": 10,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ".*"
+ }
+ ]
+ }
+ },
+ "null_coercion_expression": {
+ "type": "PREC",
+ "value": 10,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ".?"
+ }
+ ]
+ }
+ },
+ "range_expression": {
+ "type": "PREC_RIGHT",
+ "value": 10,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ".."
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "call_expression": {
+ "type": "PREC",
+ "value": 10,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "function",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "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": ")"
+ }
+ ]
+ }
+ },
+ "anonymous_struct_initializer": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SYMBOL",
+ "name": "initializer_list"
+ }
+ ]
+ },
+ "struct_initializer": {
+ "type": "PREC",
+ "value": -1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "primary_type_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "initializer_list"
+ }
+ ]
+ }
+ },
+ "initializer_list": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "field_initializer"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "field_initializer"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "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_initializer": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ },
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ "labeled_type_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "block_label"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "block"
+ }
+ ]
+ },
+ "comptime_type_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "comptime"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ }
+ ]
+ },
+ "if_type_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_if_prefix"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "else"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "payload"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "parenthesized_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "block_label": {
+ "type": "PREC",
+ "value": -1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "builtin_type"
+ },
+ "named": true,
+ "value": "identifier"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ":"
+ }
+ ]
+ }
+ },
+ "break_label": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ }
+ ]
+ },
+ "arguments": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "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": ")"
+ }
+ ]
+ },
+ "builtin_function": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "builtin_identifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "arguments"
+ }
+ ]
+ },
+ "string": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "\""
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "IMMEDIATE_TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "PATTERN",
+ "value": "[^\\\\\"\\n]+"
+ }
+ }
+ },
+ "named": true,
+ "value": "string_content"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "escape_sequence"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "\""
+ }
+ ]
+ },
+ "multiline_string": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "REPEAT1",
+ "content": {
+ "type": "TOKEN",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "\\\\"
+ },
+ {
+ "type": "PATTERN",
+ "value": "[^\\n]*"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "escape_sequence": {
+ "type": "TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "\\"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[^xuU]"
+ },
+ {
+ "type": "PATTERN",
+ "value": "\\d{2,3}"
+ },
+ {
+ "type": "PATTERN",
+ "value": "x[0-9a-fA-F]{2,}"
+ },
+ {
+ "type": "PATTERN",
+ "value": "u\\{[0-9a-fA-F]{1,6}\\}"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "character": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "'"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "[^'\\n]"
+ },
+ "named": true,
+ "value": "character_content"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "escape_sequence"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "'"
+ }
+ ]
+ },
+ "integer": {
+ "type": "TOKEN",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "0x"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9A-Fa-f]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9A-Fa-f]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "0o"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-7]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-7]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "0b"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-1]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-1]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "float": {
+ "type": "TOKEN",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "0x"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9A-Fa-f]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9A-Fa-f]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9A-Fa-f]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9A-Fa-f]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[pP][+-]?"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[eE][+-]?"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "0x"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9A-Fa-f]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9A-Fa-f]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "PATTERN",
+ "value": "[pP][+-]?"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "PATTERN",
+ "value": "[eE][+-]?"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "_"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PATTERN",
+ "value": "[0-9]"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "boolean": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "true"
+ },
+ {
+ "type": "STRING",
+ "value": "false"
+ }
+ ]
+ },
+ "builtin_type": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "bool"
+ },
+ {
+ "type": "STRING",
+ "value": "f16"
+ },
+ {
+ "type": "STRING",
+ "value": "f32"
+ },
+ {
+ "type": "STRING",
+ "value": "f64"
+ },
+ {
+ "type": "STRING",
+ "value": "f128"
+ },
+ {
+ "type": "STRING",
+ "value": "void"
+ },
+ {
+ "type": "STRING",
+ "value": "type"
+ },
+ {
+ "type": "STRING",
+ "value": "anyerror"
+ },
+ {
+ "type": "STRING",
+ "value": "anyopaque"
+ },
+ {
+ "type": "STRING",
+ "value": "anytype"
+ },
+ {
+ "type": "STRING",
+ "value": "noreturn"
+ },
+ {
+ "type": "STRING",
+ "value": "isize"
+ },
+ {
+ "type": "STRING",
+ "value": "usize"
+ },
+ {
+ "type": "STRING",
+ "value": "comptime_int"
+ },
+ {
+ "type": "STRING",
+ "value": "comptime_float"
+ },
+ {
+ "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": "PATTERN",
+ "value": "(i|u)[1-9][0-9]*"
+ }
+ ]
+ },
+ "error_type": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "error"
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SYMBOL",
+ "name": "identifier"
+ }
+ ]
+ },
+ "builtin_identifier": {
+ "type": "PATTERN",
+ "value": "@[A-Za-z_][A-Za-z0-9_]*"
+ },
+ "identifier": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_identifier"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "@"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ }
+ ]
+ }
+ ]
+ },
+ "_identifier": {
+ "type": "PATTERN",
+ "value": "[A-Za-z_][A-Za-z0-9_]*"
+ },
+ "_reserved_identifier": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "undefined"
+ },
+ {
+ "type": "STRING",
+ "value": "null"
+ },
+ {
+ "type": "STRING",
+ "value": "true"
+ },
+ {
+ "type": "STRING",
+ "value": "false"
+ }
+ ]
+ },
+ "comment": {
+ "type": "TOKEN",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "//"
+ },
+ {
+ "type": "PATTERN",
+ "value": ".*"
+ }
+ ]
+ }
+ }
+ },
+ "extras": [
+ {
+ "type": "SYMBOL",
+ "name": "comment"
+ },
+ {
+ "type": "PATTERN",
+ "value": "\\s"
+ }
+ ],
+ "conflicts": [
+ [
+ "for_expression"
+ ],
+ [
+ "while_expression"
+ ],
+ [
+ "expression",
+ "_function_prototype"
+ ],
+ [
+ "expression",
+ "if_type_expression"
+ ],
+ [
+ "comptime_type_expression",
+ "expression"
+ ],
+ [
+ "comptime_type_expression",
+ "parameter"
+ ]
+ ],
+ "precedences": [
+ [
+ {
+ "type": "SYMBOL",
+ "name": "container_field"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "type_expression"
+ }
+ ]
+ ],
+ "externals": [],
+ "inline": [
+ "_reserved_identifier"
+ ],
+ "supertypes": [
+ "statement",
+ "expression",
+ "type_expression",
+ "primary_type_expression"
+ ]
+}