A matcher that combines a pattern and a parse procedure.
class procedure matcher[readonly value element type, any value result type]
implements validatable, matcher[element type, result type]
procedure matcher(pattern[element type] the pattern, procedure[result type, readonly list[element type]] parser)
this • the pattern = the pattern
this • parser = parser
Check whether the given list can be a start of the sequence that matches this pattern.
implement boolean is viable prefix(readonly list[element type] the list)
Returns the maximum number of the elements of a given list that matches the pattern,
or null if there is no prefix match.
This is a greedy match: it mtaches the longest prefix.
implement nonnegative or null match prefix(readonly list[element type] the list)
Gets the first non-empty match for this pattern.
implement range or null find first(readonly list[element type] the list, nonnegative start index)
Parse the list and produce a result.
Assumes this pattern matches the list.
implement result type parse(readonly list[element type] the list)
return parser(the list)