{
"name": "wit",
"word": "identifier",
"rules": {
"source_file": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "package",
"content": {
"type": "SYMBOL",
"name": "package_decl"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "top_level_item"
}
}
]
},
"package_decl": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "STRING",
"value": "package"
},
{
"type": "SYMBOL",
"name": "fully_qualified_package_name"
},
{
"type": "STRING",
"value": ";"
}
]
},
"fully_qualified_package_name": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "package",
"content": {
"type": "SYMBOL",
"name": "package_name"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": ":"
}
},
{
"type": "FIELD",
"name": "path",
"content": {
"type": "SYMBOL",
"name": "package_path"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "@"
}
},
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "semver"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"package_name": {
"type": "SYMBOL",
"name": "identifier"
},
"package_path": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
}
},
"top_level_item": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "top_level_use_item"
},
{
"type": "SYMBOL",
"name": "world_item"
},
{
"type": "SYMBOL",
"name": "interface_item"
}
]
},
"top_level_use_item": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "use"
},
{
"type": "SYMBOL",
"name": "use_path"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "alias",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"use_path": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "local_use_path"
},
{
"type": "SYMBOL",
"name": "fully_qualified_use_path"
}
]
},
"local_use_path": {
"type": "SYMBOL",
"name": "identifier"
},
"fully_qualified_use_path": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "package",
"content": {
"type": "SYMBOL",
"name": "package_name"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": ":"
}
},
{
"type": "FIELD",
"name": "path",
"content": {
"type": "SYMBOL",
"name": "package_path"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "@"
}
},
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "semver"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"world_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "STRING",
"value": "world"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "items",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "world_items"
}
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"world_items": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "export_item"
},
{
"type": "SYMBOL",
"name": "import_item"
},
{
"type": "SYMBOL",
"name": "use_item"
},
{
"type": "SYMBOL",
"name": "typedef_item"
},
{
"type": "SYMBOL",
"name": "include_item"
}
]
},
"export_item": {
"type": "CHOICE",
"members": [
{
"type": "PREC",
"value": 1,
"content": {
"type": "SYMBOL",
"name": "exported_item"
}
},
{
"type": "SYMBOL",
"name": "exported_path"
}
]
},
"exported_item": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "export"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "extern_type"
}
]
},
"exported_path": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "export"
},
{
"type": "SYMBOL",
"name": "fully_qualified_use_path"
},
{
"type": "STRING",
"value": ";"
}
]
},
"import_item": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "imported_item"
},
{
"type": "SYMBOL",
"name": "imported_path"
}
]
},
"imported_item": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "extern_type"
}
]
},
"imported_path": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "SYMBOL",
"name": "use_path"
},
{
"type": "STRING",
"value": ";"
}
]
},
"extern_type": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "func_type"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "interface"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "interface_items"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"use_item": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "use"
},
{
"type": "FIELD",
"name": "path",
"content": {
"type": "SYMBOL",
"name": "use_path"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "."
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "{"
}
},
{
"type": "SYMBOL",
"name": "_use_names_list"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "}"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"_use_names_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "use_names_item"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "use_names_item"
}
]
}
}
]
},
"use_names_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "alias",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"interface_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "STRING",
"value": "interface"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "items",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "interface_items"
}
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"interface_items": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "typedef_item"
},
{
"type": "SYMBOL",
"name": "use_item"
},
{
"type": "SYMBOL",
"name": "func_item"
}
]
},
"typedef_item": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "resource_item"
},
{
"type": "SYMBOL",
"name": "variant_item"
},
{
"type": "SYMBOL",
"name": "record_item"
},
{
"type": "SYMBOL",
"name": "flags_item"
},
{
"type": "SYMBOL",
"name": "enum_item"
},
{
"type": "SYMBOL",
"name": "type_item"
}
]
},
"func_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "ty",
"content": {
"type": "SYMBOL",
"name": "func_type"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"func_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "func"
},
{
"type": "FIELD",
"name": "params",
"content": {
"type": "SYMBOL",
"name": "param_list"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "->"
},
{
"type": "FIELD",
"name": "result",
"content": {
"type": "SYMBOL",
"name": "result_list"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"param_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "params",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_param_list_inner"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"_param_list_inner": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_named_type_list"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_named_type_list"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
"result_list": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ty"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "named_result_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"named_result_list": {
"type": "SYMBOL",
"name": "_named_type_list"
},
"_named_type_list": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "named_type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "named_type"
}
]
}
}
]
}
},
"named_type": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "ty",
"content": {
"type": "SYMBOL",
"name": "ty"
}
}
]
},
"include_item": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "include"
},
{
"type": "FIELD",
"name": "path",
"content": {
"type": "SYMBOL",
"name": "use_path"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "with"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "names",
"content": {
"type": "SYMBOL",
"name": "include_names_list"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
]
}
]
},
"include_names_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "include_names_item"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "include_names_item"
}
]
}
}
]
},
"include_names_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "alias",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"resource_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "STRING",
"value": "resource"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "methods",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "resource_method"
}
}
},
{
"type": "STRING",
"value": "}"
}
]
}
]
}
]
},
"resource_method": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "func_item"
},
{
"type": "SYMBOL",
"name": "static_method"
},
{
"type": "SYMBOL",
"name": "resource_constructor"
}
]
},
"static_method": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "STRING",
"value": "static"
},
{
"type": "SYMBOL",
"name": "func_type"
},
{
"type": "STRING",
"value": ";"
}
]
},
"resource_constructor": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "STRING",
"value": "constructor"
},
{
"type": "FIELD",
"name": "params",
"content": {
"type": "SYMBOL",
"name": "param_list"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"variant_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "STRING",
"value": "variant"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "cases",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "variant_case"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "variant_case"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"variant_case": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "ty",
"content": {
"type": "SYMBOL",
"name": "ty"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"record_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "STRING",
"value": "record"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "fields",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "record_field"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "record_field"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"record_field": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "ty",
"content": {
"type": "SYMBOL",
"name": "ty"
}
}
]
},
"flags_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "STRING",
"value": "flags"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "cases",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "flags_case"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "flags_case"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"flags_case": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"enum_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "STRING",
"value": "enum"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "cases",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "enum_case"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "enum_case"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"enum_case": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"type_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
}
},
{
"type": "STRING",
"value": "type"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "ty",
"content": {
"type": "SYMBOL",
"name": "ty"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"ty": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "builtins"
},
{
"type": "SYMBOL",
"name": "tuple"
},
{
"type": "SYMBOL",
"name": "list"
},
{
"type": "SYMBOL",
"name": "option"
},
{
"type": "SYMBOL",
"name": "result"
},
{
"type": "SYMBOL",
"name": "user_defined_type"
},
{
"type": "SYMBOL",
"name": "handle"
}
]
},
"builtins": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "u8"
},
{
"type": "STRING",
"value": "u16"
},
{
"type": "STRING",
"value": "u32"
},
{
"type": "STRING",
"value": "u64"
},
{
"type": "STRING",
"value": "s8"
},
{
"type": "STRING",
"value": "s16"
},
{
"type": "STRING",
"value": "s32"
},
{
"type": "STRING",
"value": "s64"
},
{
"type": "STRING",
"value": "float32"
},
{
"type": "STRING",
"value": "float64"
},
{
"type": "STRING",
"value": "char"
},
{
"type": "STRING",
"value": "bool"
},
{
"type": "STRING",
"value": "string"
}
]
},
"tuple": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "tuple"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ty"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "ty"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "list"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "ty"
},
{
"type": "STRING",
"value": ">"
}
]
},
"option": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "option"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "ty"
},
{
"type": "STRING",
"value": ">"
}
]
},
"result": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "result"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_result_list"
},
{
"type": "BLANK"
}
]
}
]
},
"_result_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "FIELD",
"name": "ok",
"content": {
"type": "SYMBOL",
"name": "ty"
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "err",
"content": {
"type": "SYMBOL",
"name": "ty"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"user_defined_type": {
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
"handle": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "borrowed_handle"
},
{
"type": "SYMBOL",
"name": "owned_handle"
}
]
},
"borrowed_handle": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "borrow"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "user_defined_type"
},
{
"type": "STRING",
"value": ">"
}
]
},
"owned_handle": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "own"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "user_defined_type"
},
{
"type": "STRING",
"value": ">"
}
]
},
"attribute": {
"type": "SYMBOL",
"name": "doc_comment"
},
"semver": {
"type": "PATTERN",
"value": "(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?"
},
"identifier": {
"type": "PATTERN",
"value": "%?[a-zA-Z][a-zA-Z0-9-]*"
},
"doc_comment": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "///"
},
{
"type": "PATTERN",
"value": "[ ]*"
},
{
"type": "SYMBOL",
"name": "docs"
}
]
},
"docs": {
"type": "PATTERN",
"value": "[^\\n]*"
},
"block_comment": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
},
{
"type": "STRING",
"value": "/"
}
]
},
"slash_comment": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": "[^/\\n][^\\n]*"
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "[\\s\\n\\t]+"
},
{
"type": "SYMBOL",
"name": "slash_comment"
},
{
"type": "SYMBOL",
"name": "block_comment"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}