match_expr
alternative. Recall that it has the following structure.
| (ident "@")? ident bindeIdent* => rhs
Example:
| c@Eq _ a b => f c a b
some c
if there is a variable binding to the function symbol being matched.c
is the variable name.- funName : Ident
Function being matched.
Pattern variables. The list uses
none
for representing_
, andsome a
for pattern variablea
.- rhs : Syntax
right-hand-side for the alternative.
- k : Ident
Store the auxliary continuation function for each right-hand-side.
Actual value to be passed as an argument.
Instances For
Returns true
if there is at least one alternative whose next pattern variable is not a _
.
Equations
Instances For
Removes alternatives that do not have any pattern variable left to be matched.
For the ones that still have pattern variables, remove the first one, and
save actual
if the removed pattern variable is not a _
.
Equations
Instances For
Generates the actual arguments for invoking the auxiliary continuation function
associated with the given alternative. The arguments are the actuals stored in alt
.
discr
is also an argument if alt.var?
is not none.