Work on closures.

This commit is contained in:
Jesse Brault 2025-09-07 18:42:25 -05:00
parent bae90b8b80
commit 6652b9fc63
2 changed files with 22 additions and 19 deletions

View File

@ -587,3 +587,23 @@ ExpressionList:
- expressions:
rule: Expression
vec: true
# Closure
Closure:
children:
- closure_parameters:
build:
or_else_default: true
- statements:
rule: Statement
vec: true
ClosureParameters:
children:
- parameters:
rule: ClosureParameters
vec: true
ClosureParameter:
children:
- identifier
- type_use:
optional: true

View File

@ -789,13 +789,9 @@ ExpressionList = {
// Closure
Closure = {
( Cons | Mut )?
~ Move?
~ ClosureCaptures?
~ "{"
"{"
~ ( ClosureParameters? ~ "->" )?
~ Statement*
~ Expression?
~ "}"
}
@ -809,19 +805,6 @@ ClosureParameter = {
~ ( ":" ~ TypeUse )?
}
ClosureCaptures = {
"|"
~ ClosureCapture
~ ( "," ~ ClosureCapture )*
~ "|"
}
ClosureCapture = {
Borrow*
~ Mut?
~ Identifier
}
// Literals
Literal = {