Support some, ok and err wrappers and untyped function inputs

This commit is contained in:
paul committed 2026-10-18 18:18:31 -04:00
1 parent 6e4f9cd65a
commit 79533e9537
20 files changed
+36187 -35406

No files matched your search

+215 -171
View File
@@ -1742,111 +1742,103 @@
"value": "("
},
{
"type": "CHOICE",
"type": "SEQ",
"members": [
{
"type": "SEQ",
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_newline"
}
},
{
"type": "SYMBOL",
"name": "typed_tuple_component"
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_newline"
}
},
{
"type": "SYMBOL",
"name": "typed_tuple_component"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_newline"
}
}
]
},
{
"type": "SYMBOL",
"name": "_newlines"
}
]
},
{
"type": "SYMBOL",
"name": "typed_tuple_component"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_newline"
}
}
]
},
{
"type": "SYMBOL",
"name": "_newlines"
}
]
},
{
"type": "SYMBOL",
"name": "typed_tuple_component"
}
]
}
},
{
"type": "CHOICE",
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_newline"
}
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_newline"
}
"type": "SYMBOL",
"name": "_newlines"
}
]
},
{
"type": "BLANK"
"type": "SYMBOL",
"name": "typed_tuple_component"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_newline"
}
}
]
},
{
"type": "SYMBOL",
"name": "_newlines"
}
]
},
{
"type": "SYMBOL",
"name": "typed_tuple_component"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_newline"
}
}
]
},
@@ -1857,29 +1849,46 @@
]
},
"typed_parameter": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "pattern",
"content": {
"type": "SYMBOL",
"name": "binding_pattern"
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "pattern",
"content": {
"type": "SYMBOL",
"name": "binding_pattern"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_result_type"
}
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_result_type"
}
}
]
]
}
},
"typed_tuple_component": {
"type": "SEQ",
@@ -1893,16 +1902,29 @@
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type_expression"
}
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type_expression"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
@@ -2416,6 +2438,10 @@
"type": "SYMBOL",
"name": "nil_literal"
},
{
"type": "SYMBOL",
"name": "wrapper_pattern"
},
{
"type": "SYMBOL",
"name": "sum_pattern"
@@ -2742,6 +2768,40 @@
}
]
},
"wrapper_pattern": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "wrapper",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "some"
},
{
"type": "STRING",
"value": "ok"
},
{
"type": "STRING",
"value": "err"
}
]
}
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "pattern_atom"
}
}
]
},
"bits_pattern": {
"type": "SEQ",
"members": [
@@ -3115,17 +3175,8 @@
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "STRING",
"value": "!"
}
]
"type": "STRING",
"value": "?"
}
}
]
@@ -3156,17 +3207,8 @@
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "STRING",
"value": "!"
}
]
"type": "STRING",
"value": "?"
}
}
]
@@ -3191,17 +3233,8 @@
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "STRING",
"value": "!"
}
]
"type": "STRING",
"value": "?"
}
}
]
@@ -3232,17 +3265,8 @@
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "STRING",
"value": "!"
}
]
"type": "STRING",
"value": "?"
}
}
]
@@ -4293,10 +4317,6 @@
"type": "STRING",
"value": "not"
},
{
"type": "STRING",
"value": "!"
},
{
"type": "STRING",
"value": "-"
@@ -4304,6 +4324,18 @@
{
"type": "STRING",
"value": "~"
},
{
"type": "STRING",
"value": "some"
},
{
"type": "STRING",
"value": "ok"
},
{
"type": "STRING",
"value": "err"
}
]
}
@@ -4382,10 +4414,6 @@
{
"type": "STRING",
"value": "?"
},
{
"type": "STRING",
"value": "!"
}
]
}
@@ -5331,6 +5359,10 @@
}
],
"conflicts": [
[
"binding_pattern",
"pattern_atom"
],
[
"product_pattern_field",
"primary_expression"
@@ -5519,6 +5551,10 @@
"type": "STRING",
"value": "else"
},
{
"type": "STRING",
"value": "err"
},
{
"type": "STRING",
"value": "false"
@@ -5551,6 +5587,10 @@
"type": "STRING",
"value": "not"
},
{
"type": "STRING",
"value": "ok"
},
{
"type": "STRING",
"value": "or"
@@ -5563,6 +5603,10 @@
"type": "STRING",
"value": "return"
},
{
"type": "STRING",
"value": "some"
},
{
"type": "STRING",
"value": "true"
+65 -11
View File
@@ -156,6 +156,10 @@
{
"type": "unit_pattern",
"named": true
},
{
"type": "wrapper_pattern",
"named": true
}
]
},
@@ -1622,10 +1626,6 @@
"multiple": true,
"required": true,
"types": [
{
"type": "!",
"named": false
},
{
"type": ".",
"named": false
@@ -2247,7 +2247,7 @@
},
"type": {
"multiple": false,
"required": true,
"required": false,
"types": [
{
"type": "array_type",
@@ -2321,7 +2321,7 @@
},
"type": {
"multiple": false,
"required": true,
"required": false,
"types": [
{
"type": "type_expression",
@@ -2337,7 +2337,7 @@
"fields": {},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "typed_tuple_component",
@@ -2372,18 +2372,26 @@
"multiple": false,
"required": true,
"types": [
{
"type": "!",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "err",
"named": false
},
{
"type": "not",
"named": false
},
{
"type": "ok",
"named": false
},
{
"type": "some",
"named": false
},
{
"type": "~",
"named": false
@@ -2442,6 +2450,40 @@
]
}
},
{
"type": "wrapper_pattern",
"named": true,
"fields": {
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "pattern_atom",
"named": true
}
]
},
"wrapper": {
"multiple": false,
"required": true,
"types": [
{
"type": "err",
"named": false
},
{
"type": "ok",
"named": false
},
{
"type": "some",
"named": false
}
]
}
}
},
{
"type": "!",
"named": false
@@ -2655,6 +2697,10 @@
"type": "else",
"named": false
},
{
"type": "err",
"named": false
},
{
"type": "f32",
"named": false
@@ -2727,6 +2773,10 @@
"type": "nvr",
"named": false
},
{
"type": "ok",
"named": false
},
{
"type": "or",
"named": false
@@ -2739,6 +2789,10 @@
"type": "return",
"named": false
},
{
"type": "some",
"named": false
},
{
"type": "str",
"named": false
+35492 -35188
View File
File diff suppressed because it is too large. Load diff