rparse function
Parses a path specification.
Parameter names are added, in order, to parameters if provided.
Implementation
List<RToken> rparse(String path, {List<String>? parameters}) {
final matches = _parameterRegExp.allMatches(path);
final tokens = <RToken>[];
var start = 0;
for (final match in matches) {
if (match.start > start) {
tokens.add(RPathToken(path.substring(start, match.start)));
}
final name = match[1]!;
final optionalPattern = match[2];
final pattern = optionalPattern != null
? rescapeGroup(optionalPattern)
: _defaultPattern;
tokens.add(RParameterToken(name, pattern: pattern));
parameters?.add(name);
start = match.end;
}
if (start < path.length) {
tokens.add(RPathToken(path.substring(start)));
}
return tokens;
}