Std.Text.Parse.lazy
1 declaration
fn
lazy: fn() -> fn(Std.Text.Parse.Input) -> Result[(T, Std.Text.Parse.Input), Std.Text.Parse.Problem] -> fn(Std.Text.Parse.Input) -> Result[(T, Std.Text.Parse.Input), Std.Text.Parse.Problem]This is a callable function.
What it does
A parser built only when it is run.
A recursive grammar needs this and cannot be written without it: a rule that
mentions itself would build itself forever at the moment it was defined.
Wrapping the mention defers it to the moment it is used, which is when the
input decides whether the recursion happens at all.
Read the signature
- The text after the name is the type checked by Pudu.
- Read arrows from left to right: inputs come first, and the final type is returned.
- Names inside [ ] are type arguments, such as the item type held by a collection.
- Result makes success and recoverable failure part of the function's type.
